Payments infrastructure for AI agents on Robinhood Chain.
Website · Documentation · Live console · X
A Model Context Protocol server + TypeScript SDK that lets autonomous agents:
- settle payments in USDG on Robinhood Chain (4663) — with local policy checks before any key material is touched
- pay for HTTP resources through the HTTP 402 flow (
pons_pay_resource) - research pons launches — v1 metadata, v2 bonding-curve quotes, snipe-tax reads, launch feed, fee-escrow balances
14 tools. Zero runtime dependencies. Keccak, RLP, and secp256k1 are implemented in-repo and validated against standard vectors. The npm tarball is byte-identical to this source.
npm install -g @ponsmcp/sdk
ponsmcp # stdio MCP server — plug into Claude, Cursor, or any MCP hostquote → policy → sign (local, EIP-155) → broadcast → receipt → decoded transfers
A payment is done only when the receipt is 0x1 and the decoded USDG transfer matches token, recipient, and amount. Merchants re-verify with pons_tx_status — a client's hash is a claim, not proof.
| Repo | What's inside |
|---|---|
ponsmcp-sdk |
The server + client. Zero-dep crypto, policy engine, RPC failover, 14 tools |
ponsmcp-docs |
concepts / guides / api — mirrored live at ponsmcp.com/docs |
presentation-layer |
ponsmcp.com — landing, Mission Control console, merchant registry API |
ponsmcp-examples |
5 runnable examples — all executed against live chain before publishing |
ponsmcp-contracts |
Empty by design until a contract is actually deployed. No vaporware |
- Keys never leave the runtime. Browsers and consoles create and inspect intents — they never sign.
- Policy before signature. Per-tx (100 USDG) and daily (1,000 USDG) caps are enforced before key material is used.
- Proof over claims. Success = on-chain receipt with the exact transfer. Everything else is pending.
- No fabricated status. The public status page runs live checks from the viewer's browser — including the failures.
- Honesty about the token. $MCP is announced only with a contract address. Anything before that is fake by definition.
import { PonsMCPClient } from "@ponsmcp/sdk";
const client = new PonsMCPClient({
privateKey: process.env.PONSMCP_PRIVATE_KEY,
policy: { maxPerTx: 100_000_000n, dailyLimit: 1_000_000_000n },
});
const r = await client.pay({ payTo: "0x…", amountUsd: "5.00" });
// r.ok → r.txHash, r.explorer, r.transfersSee ponsmcp-examples for the full loop, including a 402 merchant server in ~40 lines.
- Live on-chain status: ponsmcp.com/status (real checks, from your browser)
- All payment examples enforce policy caps — read-only tools never need a key
- The bundler-style launch/snipe execution is deliberately out of scope; launch tools are read-only intelligence
Settle in USDG · Chain 4663 · Keys stay local