Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.tallyforagents.com/llms.txt

Use this file to discover all available pages before exploring further.

The tally.permissions resource exposes the active (agent, wallet, policy) grants in your account — what each agent is permitted to spend, on which wallet, with what caps, and how much daily allowance remains right now. See Permissions (concept) for the model.

Types

Permission

type Permission = {
  /** Stable cuid for this grant. */
  id: string;
  /** Agent's externalId. */
  agent_id: string;
  wallet_address: string;
  wallet_display_name: string;
  /** "active" once the wallet owner has authorized the signer on-chain;
   *  "pending" before that. */
  status: "active" | "pending";
  max_per_tx_usdc: string;
  daily_cap_usdc: string | null;
  /** USDC moved by this grant today (UTC). */
  used_today_usdc: string;
  /** daily_cap_usdc minus used_today_usdc, or null if uncapped. */
  remaining_today_usdc: string | null;
  recipient_allowlist: string[];
  contract_allowlist: string[];
  expires_at: string | null;
  created_at: string;
  activated_at: string | null;
};

PermissionListFilters

type PermissionListFilters = {
  /** Filter by agent externalId. */
  agent_id?: string;
  /** Max items per page. Default 50, max 100. */
  limit?: number;
};

Methods

permissions.list(filters?)

Returns an auto-paginating list of active grants. The result is an AsyncResourcePage<Permission> — iterate it with for await, or call .toArray(n) for a bounded read.
// Iterate every grant in the account
for await (const p of tally.permissions.list()) {
  console.log(`${p.agent_id}${p.wallet_display_name}: $${p.remaining_today_usdc} left`);
}

// Filter by agent + cap the read
const grants = await tally.permissions.list({
  agent_id: "research-bot",
}).toArray(20);
Returns: AsyncResourcePage<Permission>. Each row includes today’s usage so agent code can preflight a payment without re-fetching the policy bounds.

Use cases

  • Preflight a payment before submitting: check remaining_today_usdc to decide whether to attempt or skip.
  • Inventory which agents have spending power on which wallets, e.g. for a setup script.
  • Compliance / audit: surface all active grants in the account in one place.

Limitations

  • Revoked grants are excluded. Permission history is in the dashboard’s per-agent audit log (or via webhooks: subscribe to permission.revoked).
  • Revoke and update via SDK are on the roadmap. Both require a wallet-owner passkey signature, so the eventual SDK shape will be “server prepares → dashboard finishes,” not a fully programmatic flow.

See also