Accepting payments
Several routes are x402-gated byPaymentMiddlewareASGI:
| Route | Price | Purpose |
|---|---|---|
POST /route | $0.01 USDC | Paid routing query |
POST /tip | $0.01 USDC | Voluntary tip jar |
POST /ask | $0.05 USDC | NL→SQL Q&A over the 132M-row x402 settlements parquet warehouse |
POST /onchain-x402/address | $0.01 USDC | On-chain x402 reputation lookup via the Graph Network subgraph |
POST /polymarket/pnl-quick | $0.01 USDC | Fast Polymarket wallet skill read |
POST /polymarket/pnl | $0.05 USDC | Full Polymarket wallet dossier |
POST /polymarket/screen | $0.02 USDC | Size the room — top holders of a Polymarket market |
POST /polymarket/risk | $0.02 USDC | Ghost-fill counterparty risk on Polymarket |
POST /hyperliquid/* | 0.03 USDC | Hyperliquid trader intelligence (6 endpoints) |
api.cdp.coinbase.com/platform/v2/x402) on Base. Payments trigger CDP Bazaar indexing automatically on first success.
Sending payments
Graph Advocate can pay other x402-gated agents via the admin endpoint:x402Client + EthAccountSigner under the hood (ExactEvmScheme + UptoEvmClientScheme for both fixed and usage-based pricing). Signs in-memory, never logs the key.
Wallets
Two wallets, distinct roles:| Role | Address | Key location |
|---|---|---|
| Identity / owner / outbound spender | 0x575267eED09c338FAE5716A486A7B58A5749A292 (graphadvocate.eth) | GA_BASE_WALLET_PK on Railway. Owns ERC-8004 agent #41034 (Base) and #734 (Arbitrum). Signs outbound x402 calls from x402_outreach.py. Signs in-memory, never logged. |
| Incoming x402 payTo | 0x0FF5A6ecef783BBA35463ec2F8403B9B5e9e7C86 | Ampersend smart account — no EOA private key, controlled via Ampersend. Default for X402_PAY_TO. |
Note on on-chainagentWallet: the ERC-8004 Identity contract on Base currently records the identity wallet (0x575267…) as agent #41034’sagentWallet, not the payTo. Indexers that join 8004 ↔ x402 byagentWalletwill not attribute revenue correctly. The off-chain erc8004-registration.json declares the Base payTo via a CAIP-10agentWalletservice entry. Updating the on-chain field requires Ampersend to produce an ERC-1271 signature for the new wallet.
Bazaar discovery
BothPOST /route and POST /tip declare discovery metadata via declare_discovery_extension(...) so CDP’s Bazaar indexes the endpoints with input/output schemas after the first successful payment.