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";
2
3const 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.

dailyMost the pocket can spend in a day, in USD.
payWithWhat it may spend or sell: USDC, NVDA, TSLA, AAPL, TARDI. It sells just enough to cover the bill.
merchantsAllowlist of hosts it may pay. Anything else is blocked.
approveAbovePayments above this wait for your tap in Approvals.
investUnspent cash buys a stock token at the end of the day.
pausedThe 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.