Docs
A pocket is a wallet with rules on Robinhood Chain (chain id 4663). You fund it, set the rules, and hand your agent a pocket key. The agent pays; the pocket checks every payment against your rules first.
Quickstart
Make a pocket in the app or with the SDK, then give the key to your agent as an MCP server or an HTTP header.
1import { Pockets } from "@pockets/sdk";23const pockets = new Pockets({ chain: 4663 });4const pocket = await pockets.create({5 name: "research",6 agent: "claude",7 daily: 40,8 payWith: ["USDC", "NVDA"],9 approveAbove: 25,10});11agent.use(pocket.key()); // never your keys
The policy
Every pocket is one signed policy. These are the fields.
| daily | Most the pocket can spend in a day, in USD. |
| payWith | What it may spend or sell: USDC, NVDA, TSLA, AAPL, TARDI. It sells just enough to cover the bill. |
| merchants | Allowlist of hosts it may pay. Anything else is blocked. |
| approveAbove | Payments above this wait for your tap in Approvals. |
| invest | Unspent cash buys a stock token at the end of the day. |
| paused | The kill switch. True means every payment is refused. |
Paying
The agent calls pay with a merchant and an amount. Allowed and under the cap: paid in one block (about 0.1 s). Above approveAbove: it waits in your Approvals. Not on the list: blocked.
Paying with stocks
If the pocket holds stock tokens and lists them in payWith, it quotes the token, sells just enough to cover the bill and pays the merchant in USDC. The rest stays invested.
The SDK, API and MCP server shown here are the planned interface; the app runs on sample data in your browser. Not affiliated with Robinhood, Pons, NVIDIA, Tesla, Apple, Circle, Anthropic or OpenAI.
