zerotracedocs

MCP server for agents

Give an AI agent its own private ZERO account. The ZeroTrace MCP server lets agents hold, pay, sell and get paid in ZERO on Robinhood Chain, signing with their own key.

The ZeroTrace MCP server gives an AI agent its own private ZERO account. Any agent that speaks the Model Context Protocol, such as Claude Code, Claude Desktop or Cursor, can use it.

The agent holds ZERO in private notes, pays people and services without showing its address, and gets paid at a private address. It signs with its own key, locally: there is no wallet to click through. Private actions need no ETH: their network fee is paid in ZERO.

Why agents

An agent that pays on-chain today shows everything: which services it uses, how much it spends, and, for a trading agent, its strategy. With ZeroTrace:

  • Its balance and its payments stay private. A private send shows neither side nor the amount.
  • It can get paid without revealing its address, at a private address.
  • You can give it a budget without giving it a wallet: send it a payment link. It can spend what the link holds and nothing more, and you can take back what it does not claim.
  • Every payment can come with a proof: a link that shows the recipient and the amount of that one payment, for invoices and receipts.

Set it up

The server is the npm package @zerotrace/mcp. It runs with Node 22 or later, on the agent's machine: the key never leaves it.

Claude Code

claude mcp add zerotrace \
  --env ZEROTRACE_PRIVATE_KEY=0x... \
  --env ZEROTRACE_MAX_ZERO=100000 \
  -- npx -y @zerotrace/mcp

Claude Desktop, Cursor and other clients

{
  "mcpServers": {
    "zerotrace": {
      "command": "npx",
      "args": ["-y", "@zerotrace/mcp"],
      "env": {
        "ZEROTRACE_PRIVATE_KEY": "0x...",
        "ZEROTRACE_MAX_ZERO": "100000"
      }
    }
  }
}

Settings

VariableDefaultWhat it does
ZEROTRACE_PRIVATE_KEYrequiredThe agent's key. Use a key made for the agent, not your own wallet's.
ZEROTRACE_MAX_ZEROno limitThe most ZERO one action may move: send, pay, link, sell, unshield, shield.
ZEROTRACE_MAX_ETHno limitThe most ETH one purchase may spend.
ZEROTRACE_READ_ONLYoff1 allows only the reading tools: nothing is signed or sent.
ZEROTRACE_RPC_URLRobinhood Chain's public RPCAnother RPC endpoint.
ZEROTRACE_BUNDLER_URLPimlico's public bundlerAnother ERC-4337 bundler.
ZEROTRACE_INDEXER_URLthe ZeroTrace indexerAnother indexer, or empty to read the chain only.

The key derives the same private account as the app does: importing it into a browser wallet and opening zerotrace.so shows the same balance and history.

Tools

ToolWhat it does
get_statusAddress, ETH, public and private ZERO, fees earned, payments waiting, registration, the network fee, the limits.
get_historyRecent private activity, rebuilt from the agent's own notes.
refund_statusWhat the agent can still have refunded from the earlier vault, and refunds claimed but not yet paid.
claim_refundRefunds up to two of the agent's notes of the earlier vault into a private note; no ETH needed.
quoteZERO for an amount of ETH, or ETH for an amount of ZERO.
buyBuys ZERO with ETH straight into a private note.
shieldMoves public ZERO into a private note.
registerRegisters the privacy key, so others can send to the agent's address privately.
send_privateSends ZERO privately to a registered address, and returns a proof of payment.
pay_private_addressPays a private address link: from the private balance, with ETH, or with public ZERO.
create_payment_linkPays ZERO into a link anyone can claim.
payment_link_statusWhat a link holds, and whether it was claimed.
claim_payment_linkClaims a link into the private balance, or to an address. A link paid in the earlier vault is refunded into the private balance.
sellSells ZERO for ETH sent to an address.
unshieldMoves ZERO out as public ZERO.
get_private_addressThe agent's private address link and fingerprint.
collect_private_addressMoves payments waiting at the private address into the balance.
verify_paymentChecks a proof-of-payment link against the chain.

Costs

Each private action (send, payment, link, sale, unshield, claim, collection) pays the vault's flat network fee, worth 0.0002 ETH, in ZERO; get_status shows it. Refunds of the earlier vault pay no fee: the refund contract pays the gas. Purchases, shields and registration are ordinary transactions paid in ETH by the agent's address. See Fees.

Keep it safe

  • The key is the account. Whoever has it can spend everything the agent holds. Give the agent a key of its own, fund it with what it needs, and set ZEROTRACE_MAX_ZERO and ZEROTRACE_MAX_ETH.
  • Payment links are bearer instruments. The agent should send them only to the payee, never post them.
  • Sales and unshields name a recipient. To keep a sale private, the agent should send the ETH to a new address, not its own.

On this page