DOCS / GIVE YOUR AGENT HANDS

Give your agent hands

Every agent framework is bolting on a wallet. None of them want to carry the liability of letting a language model write calldata. Pantessa already solved that — so connect your agent over MCP and it gets money-hands that can't steal: it plans in plain sentences, deterministic guarded builders write every transaction, and a human (or the agent's own key, under caps) is the only signer. Nothing this surface hands your agent can execute by itself.

A real desk session — two agents, one human signature

Two doors

Both talk in sentences and links — never calldata, typed data, or deposit addresses. Pick by whether your agent needs to hear back.

  • The hands MCP — fire-and-forget. Your agent scans a wallet, plans an action, and mints one sign link to hand its human. Free, no key, instant. Best when a human is in the loop and your agent just needs to produce the link.
  • The desk MCP — stateful. Your agent opens an intent, negotiates funding routes, hands off, and then polls back (broker_status) to learn whether its human actually signed — the feedback loop the fire-and-forget hands lacks. It also carries the agent-signed path (broker_execute) for sequenced flows the agent drives with its own key, and broker_send to address an intent straight to a wallet or @handle's inbox (they open it and sign — no link to pass, they never had to ask).

Connect in five minutes

The hands MCP — one line in Claude Code (or any MCP client that speaks Streamable HTTP):

claude mcp add --transport http pantessa-hands https://hands-mcp.yeetful.com/mcp

The desk MCP — the stateful sibling:

claude mcp add --transport http pantessa-desk https://www.pantessa.com/api/broker/mcp

Any MCP client works — point it at the same URLs. Start by calling what_pantessa_can_do (hands) or broker_capabilities (desk): each returns the capability map and the handoff contract before you do anything else.

The loop

  1. Scanscan_walletreads a wallet's movable money across Base, Arbitrum, and Ethereum (gas-reserve aware), so your plan is grounded in what the human actually holds.
  2. Plan — decide what should happen and phrase it as one plain sentence (“Buy $12 of AAPL”, “Swap $5 of ETH to USDC on Base”, “Protect my HYPE long with a 5% stop”). See what Pantessa can build.
  3. Hand offprepare_handoff (hands) or broker_handoff (desk) mints a /i/<slug> sign link. Give it to your human: they connect their own wallet, Pantessa rebuilds and guard-checks the ask from scratch, and only their signature moves anything.
  4. Hear back (desk only) — poll broker_status for the server-truth funnel: opened → connected → built → signed → settled, with the signed USD. Or skip the poll: pass a callback_url to broker_open and Pantessa POSTs you a signed webhook the moment your human signs or the move settles (X-Pantessa-Signature = HMAC-SHA256 of the body under a secret returned once at open). broker_status stays the fallback.

The agent-signed path

When your agent holds the funds and the key, broker_execute compiles a sequenced ask (fund → wait for settlement → act) into a job the agent drives leg by leg: it fetches each leg from the job API as the runner builds it (guarded, policy-checked, one at a time), signs and broadcasts with its own key, and posts completion — wait legs verify on-chain arrival before the next leg builds. No transaction material ever travels through the MCP surface.

Because this path has no human in the loop, it runs under a tighter fence: it requires a bound identity (agent_key, refused by name without one), a per-intent notional cap, and a desk-level kill switch. The agent-signed path is rolling out — the human-handoff loop above is the front door, and it is live today.

What it costs

The desk is free to call by default — Pantessa earns the link-tier fee on the signed volume it clears, not on the calls. When an operator turns on the paid door, the value tools (broker_open, broker_execute, broker_send, broker_tile) cost a few cents in USDC per call over x402, while capabilities, status, and close stay free. broker_capabilities always advertises the current price, so an agent knows before it calls. Your x402 payer address is your desk identity — the same address that carries your caps and your track record.

The safety contract

This is the whole point, so it is mechanical, not a promise: the desk re-checks that no reply carries transaction bytes, and the deterministic guarded builders — not any model — write every transaction on the sign side. Read the trust model for how a build is guarded, priced, capped, and receipted before anyone signs.