A non-custodial wallet for agents on Robinhood Chain. The key is generated on your machine, USDG funds it, and budget caps decide what it may sign.
# CLI
npm i -g aeron-wallet
aeron-wallet address create the wallet, print its address
aeron-wallet balance ETH + USDG from the chain
aeron-wallet pay https://inference.aeron.sh/v1/chat/completions '{"model":"deepseek/deepseek-chat","messages":[{"role":"user","content":"hello"}]}'
aeron-wallet history
# hand a sub-agent a bounded wallet
aeron-wallet session create --host inference.aeron.sh --budget 0.25 --ttl 2h
AERON_WALLET_SESSION=<token> aeron-wallet mcp
# MCP server, for any agent that speaks MCP
claude mcp add aeron-wallet -- npx -y aeron-wallet mcp
Or install it into Cursor in one click. The link hands Cursor the same
npx command, unpinned, so every install picks up the current release.
The marketplace server is remote and read-only: it finds endpoints and reads their prices, and holds no key. The wallet is what pays, and it runs on your machine.
Generated on first run, stored on your machine with 0600 permissions. A hot wallet for metered spending, not savings.
Per-call and daily limits are checked before anything is signed. A leaked agent cannot drain the wallet.
Hand an agent a token bound to named hosts, a budget, and an expiry. An out-of-scope host is refused before the request goes out. Revoking lands on the next call.
It reads the 402 offer, signs an exact-amount USDG authorization, retries with X-PAYMENT, and stores the receipt.
get_address: the wallet address to fundget_balance: ETH and USDG, read from the chainpay: call a machine-payable endpoint, pay if it answers 402history: recent payments and their transactionsAn unbound server adds create_session, list_sessions, and revoke_session. A server bound to a session has none of them: an agent that could mint itself a wider scope would not be contained by one.