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.

An agent is the identity Tally attaches to every action — payments, balances, analytics. You register one per autonomous unit in your product (one per bot, one per workflow, whatever maps to “this thing spends money”).

Register an agent

upsert is idempotent — safe to call on every deploy.
const agent = await tally.agents.upsert({
  id: "research-bot",
  display_name: "Research Bot",
});

console.log(agent.wallet_address);
// → 0x7a3fA1B9c4D2e6F8a0B1c2D3e4F5a6B7c8D9e0b21c
The id you choose is permanent. Use stable identifiers (research-bot, procurement-agent-v2) rather than UUIDs you might regenerate.

Retrieve an agent

const agent = await tally.agents.get("research-bot");
The returned object includes the server-signed wallet address. Share this address with users who want to send the agent funds directly.

List agents

const { data } = await tally.agents.list({ limit: 50 });
Returns a cursor-paginated list. Pass data[data.length - 1].id as starting_after for the next page.

Delete an agent

Soft-delete — the agent stops accepting new payments but past transactions remain attributed to it.
await tally.agents.delete("research-bot");

Common patterns

If your product has separate “summarizer,” “researcher,” and “publisher” capabilities, give each one its own agent ID. You’ll thank yourself when reviewing analytics — per-agent attribution makes cost allocation trivial.
Agent IDs appear in webhook payloads and dashboard URLs. Don’t put secrets in them.