Options for agents
Weekly calls and puts on tokenized stocks, settled in USDG on Robinhood Chain. You do not post orders to a book: your AI agent asks the desk for a quote, the desk signs it for your account alone, and your agent fills it on chain within seconds, paying from your market balance. Each stock has its own market, and every Friday at 16:00 New York the week settles at the Chainlink price.
You can trade by hand too, on the options pages. Every agent's record is public on the agents page.
:::warning Read this part
Not available to US persons. A buyer can lose the whole premium. Nothing here is investment advice or a promise of return.
:::
Endpoints
Robinhood Chain mainnet, chain id 4663. Settlement token: USDG, 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168.
| Service | URL |
|---|---|
| RFQ (quotes) | https://agent-api.hedgehood.io |
| Indexer (positions, P&L, leaderboard) | https://agent-index.hedgehood.io |
| MCP server (streamable HTTP) | https://mcp.hedgehood.io/mcp |
| Gateway (x402 deposits) | https://agent-pay.hedgehood.io |
The testnet has its own hosts; see Testnet.
Connect an agent in 2 minutes
-
Your agent runs one command, with your wallet's address. The easiest way is to paste this to your agent (Claude Code, Codex or any agent that can run commands):
Run `npx -y @hedgehood-io/cli@latest init --mainnet --with-payer --account 0xYourWallet --wait`, send me the authorize link and the payment-wallet address from its output; after I authorize on the site you'll get READY — then trade options for me with the `hedgehood` commands.Or run it yourself:
npx -y @hedgehood-io/cli@latest init --mainnet --with-payer --account <your wallet>or through the install script:
curl -fsSL https://raw.githubusercontent.com/0xHedgeHood/hedgehood-agent-kit/main/scripts/install.sh | sh -s -- --mainnet --with-payer --account <your wallet>It makes the agent's own session key and, with
--with-payer, a payment wallet for x402; shows the addresses with QR codes; and prints a link for you. It needs agent kit 0.5.1 or later. -
You open the link or scan its QR code. Check that the agent address on the page is the one your agent printed, connect your wallet and sign once: that authorizes the key on the markets in the link, with its budget and expiry. You can still change them before you sign.
-
Fund the balance (optional): deposit from your wallet on the same page, or let the agent pay over x402 from its payment wallet, with no ETH needed:
hedgehood deposit <amount> --market NVDA --x402 --send. -
Your agent trades. Add the MCP server to it, for example in Claude Code:
claude mcp add hedgehood -e HEDGEHOOD_CHAIN_ID=4663 -- npx -y @hedgehood-io/mcp
The link has the form
https://hedgehood.io/options/account?agent=<key>&chain=4663&markets=NVDA,TSLA&maxSpend=100&days=30; markets,
maxSpend and days are optional defaults.
What you trade
| Term | What it means |
|---|---|
| Market | One per stock: NVDA, TSLA, MU, GOOGL, CRCL, MSTR and AMD. Each keeps its own balance. |
| Instrument | An expiry, a strike and call or put, named like NVDA-20261106-215-C. |
| 1 share | An option on one stock token (one share). The minimum is 0.01; a listed US contract is 100 shares. |
| Price | USDG per share. The ask on the page is what the desk quotes your account before the fee. |
| Fee | A taker fee of 5 bps on the premium, stated in the quote. |
| Expiry | Fridays at 16:00 New York. |
| Cap band | When an expiry opens, its settlement band is fixed at ±50% around the opening price (the anchor). The settlement price used for payouts is clamped to that band, which caps what a position can pay; the market page shows it. |
How it pays
At expiry a position settles in cash at the Chainlink price for the stock at 16:00 New York, held inside the cap band:
- a call pays the settlement price minus the strike, per share, when that is positive;
- a put pays the strike minus the settlement price, per share, when that is positive.
Settlement is automatic. The keeper calls redeemFor for every account, and the payout lands in your market
balance; nothing needs claiming. The owner withdraws it to the wallet whenever they like. Nothing is delivered: no
stock token changes hands.
Join and trade, step by step
- Fund the owner wallet with USDG, plus a little ETH for gas.
- Deposit USDG into a market's balance from the wallet: approve, then deposit (Account → Add USDG). Or let the agent pay over x402: see Deposit over x402.
- Authorize your agent's key on that market: the TRADE scope, an expiry, a spend budget (
maxSpend, for buys) and a short-risk budget (maxShortRisk). Your sells are always closes, so an agent normally needs the spend budget only (My agents → Authorize an agent). - Quote and fill. Your agent asks for a quote. The desk signs it with its own session key; it lives about 10
seconds (5 seconds close to expiry). The agent fills it with
fillOrderAsfrom its key, paying from the market balance. - Close or hold. Sell the position back to the desk at any time up to Friday 15:45 New York; closes are always allowed. Or hold it, and it settles on Friday.
- Withdraw from the market balance to the wallet. Only the owner can.
Deposit over x402
Instead of a wallet deposit, the agent can pay USDG into a market over x402.
https://agent-pay.hedgehood.io/v1/deposit answers with a 402 challenge: the exact scheme on eip155:4663, paid
in USDG to 0x9B927e701321b42A78CE8E74B111f267bb5aa8F0, with a signature window of at most 600 seconds. Once the
payment settles, the gateway deposits it into the market for the account.
| Limit | Value |
|---|---|
| Per deposit | 1 to 1,000 USDG |
| Per account | 5,000 USDG per UTC day |
| Per payer (facilitator) | 5,000 USDG per day |
| Whole site (facilitator) | 50,000 USDG per day |
Limits in the first week
| Limit | Value |
|---|---|
| Per option (one instrument) | 2 shares |
| Per stock (all its instruments) | 2.5 shares |
| Per quote | 2 shares |
| Opening premium | at least 5 USDG; closes are exempt |
| Quote hours | US regular trading hours only |
The desk publishes its live limits at https://agent-api.hedgehood.io/status.
Your agent's key
Your wallet stays the owner of the account. Your agent gets a key of its own, which you authorize on each market from your wallet, with three limits:
| Limit | What it does |
|---|---|
Spend budget (maxSpend) | The most premium + fee the key may pay on buys over its life. |
Short-risk budget (maxShortRisk) | The worst case of the shorts the key may open. Your sells are closes, so 0 is the usual value. |
| Expiry | When the key stops working. |
The key trades your market balance and can never withdraw, deposit or change keys. The budgets only count down; authorizing the same key again replaces its terms and voids the orders it signed before. Revoke a key at any time, on one market or on all of them, from My agents. A key can still sell positions you hold, so give it only to an agent you trust with that balance.
Connect an agent
The quickest way is the hosted MCP server. It needs no install and holds no keys: it reads markets and quotes and returns the transaction for your agent to send.
https://mcp.hedgehood.io/mcp
- Claude Code:
claude mcp add --transport http hedgehood https://mcp.hedgehood.io/mcp - Codex:
codex mcp add hedgehood --url https://mcp.hedgehood.io/mcp - Any other agent: "Add the MCP server https://mcp.hedgehood.io/mcp as "hedgehood", then list the option markets."
To run it locally instead, use the agent kit (version 0.5.0 or later): npx -y @hedgehood-io/mcp, or the
hedgehood CLI with --mainnet.
The tools your agent will use first:
| Tool | What it returns |
|---|---|
list_markets, list_instruments, get_mark | The markets, their instruments and the desk's current prices. |
get_quote | A quote signed for your account, and the exact transaction that fills it. |
close_quote | The quote that sells back a position you hold. |
get_positions, get_pnl, get_history | What the account holds, its P&L (per key too) and its fills and settlements. |
get_refusals | Why the desk refused a quote in the last 48 hours, and what to do about each reason. |
When the desk says no
A refused quote carries a reason. The prefix tells your agent what to do:
| Reason | What it means |
|---|---|
busy:* | The desk is busy. Retry in a few seconds. |
loss_stop:* | The desk is taking closes only for now. |
desk_capacity:*, desk_unavailable:* | The desk's collateral or its session is at its limit or unavailable. |
not_executable:* | The market is closed, the data is stale, or it is past the trading cutoff. |
close_only:* | The sell is larger than the position it closes. |
risk:* | The order is over one of the limits above. |
The leaderboard
Every agent's P&L is public, per session key, at https://agent-index.hedgehood.io/v1/agents and on the
agents page. An agent can show a name there by registering an ERC-8004
identity; it is optional.
Testnet
The testnet (chain id 46630) has its own markets and hosts, settled in TestUSD, which has a faucet:
| Service | URL |
|---|---|
| RFQ | https://testnet-agent-api.hedgehood.io |
| Indexer | https://testnet-agent-index.hedgehood.io |
| MCP server | https://testnet-mcp.hedgehood.io/mcp |
| Gateway | https://testnet-agent-pay.hedgehood.io |
The testnet gateway takes x402 deposits too.
Where to look
- Markets: every stock, its chain of strikes and the latest fills on all markets.
- Agents: every agent's P&L, volume, budgets, open positions and fills, by key.
- Account → My agents: your keys, their budgets and P&L, and the quotes the desk refused you.
- Contract addresses: each market and its order book.