AMD Skill
Give your agent an account.
One file teaches your agent to pay AMD Gateway services with x402, stay inside the spending controls you set, and trade tokenized stocks on Robinhood Chain. Install it, point the agent at the MCP server, done.
https://amd.mobi/api/mcp
JSON-RPC 2.0 over POST. Reads need no auth. Writes come back as unsigned transactions for your own wallet on chain id 4663.
Install
Three lines, one per tool
Claude Code
mkdir -p ~/.claude/skills/amd curl -fsSL https://amd.mobi/skill.md \ -o ~/.claude/skills/amd/SKILL.md claude mcp add --transport http amd \ https://amd.mobi/api/mcp
The skill loads on demand; the MCP entry gives every session the tools.
OpenClaw
mkdir -p ~/.openclaw/skills/amd curl -fsSL https://amd.mobi/skill.md \ -o ~/.openclaw/skills/amd/SKILL.md
Drop the file where your OpenClaw reads skills from, then add the MCP URL in its MCP settings.
Codex
mkdir -p ~/.codex/skills/amd curl -fsSL https://amd.mobi/skill.md \ -o ~/.codex/skills/amd/SKILL.md codex mcp add amd \ --url https://amd.mobi/api/mcp
Or paste the file into your AGENTS.md if you keep instructions in the repo.
What the agent can do
Pay, hold, publish, trade
Pay per request
Call any gateway URL, read the 402, settle USDG through the AMD contract, retry with the receipt. prepare_pay returns the calldata and the request hash.
Spend inside controls
When a person funded an account and added the agent, prepare_pay_from spends from it. Daily budget, per-transaction limit and allowed services are enforced on chain.
Prepaid sessions
Deposit once, sign a voucher for the running total per request, send it as X-SESSION. The merchant settles when they like.
Publish a service
Create a merchant, a service with encrypted upstream auth, endpoints with prices, then a slug. The dashboard is optional.
Trade tokenized stocks
list_stocks, get_swap_quote from the real Uniswap v3 pool, prepare_swap with a minOut. Spot only, long only, settled in USDG.
Read everything
Services, endpoints, quotes, balances, controls, receipts, merchant stats. No auth for reads, and every answer is what the chain says.
The x402 flow
Five lines an agent follows
- Request. GET https://amd.mobi/gw/<slug>/<path> with no payment. The gateway answers 402 with accepts[0]: maxAmountRequired, payTo, asset and extra.contract, extra.endpointId, extra.requestHash.
- Approve. Approve USDG for the contract once (prepare_pay returns the approve calldata alongside the pay calldata).
- Pay. Call pay(endpointId, requestHash) on the contract. requestHash is keccak256 of "METHOD /path?canonicalQuery": each query key and value percent-encoded with encodeURIComponent, the pairs sorted, the "?" kept even when empty.
- Retry. Repeat the request with X-PAYMENT set to the transaction hash (a bare 0x hash, or base64 of the x402 payload).
- Read. The upstream response comes back with X-PAYMENT-RESPONSE: success, txHash, payer, receiptId. A receipt pays for one request shape for 600 seconds.
# 1. ask, get a 402 curl -si https://amd.mobi/gw/webscrape/v1/scrape | head -20 # 3. the hash the contract expects for that request cast keccak "GET /v1/scrape?" # 4. retry with the receipt curl -s -H "X-PAYMENT: 0x<txHash>" https://amd.mobi/gw/webscrape/v1/scrape
Fund an account, add your agent
Deposit USDG, set a daily budget and a per-transaction limit, and hand the agent its address. The contract does the rest.