openapi: 3.2.0 info: title: Agent Zero — ERC-8004 Agent Readiness & Trust intelligence… version: 1.9.0 summary: 'Machine-discoverable API for the ERC-8004 agent economy on Base and Ethereum — a trust filter over the on-chain registry: indexes registered agents, enriches with live endpoint probes and payment activity, and scores each for readiness and trust.' description: Curated public spec covering (a) the free `/v1/public/*` and discovery surfaces (`/agent.json`, `/.well-known/agent-card.json`, `/mcp`) and (b) the paid x402 intelligence endpoints (`/v1/intel/*`, `/v1/audit`, `/v1/evaluate`). contact: name: Agent Zero url: https://onchainagentintel.io license: name: Public API — no license claim url: https://onchainagentintel.io/docs servers: - url: https://api.onchainagentintel.io description: Public API tags: - name: paid-x402 description: Paid endpoints — settle with X-PAYMENT header per x402. paths: /v1/intel/agent/{agent_id}: get: tags: - paid-x402 summary: Agent Intelligence — Profile Lookup description: '**Runnable quickstart — Make your first paid call.** This is the cheapest paid endpoint ($0.10 USDC on Base, settled via x402 / EIP-3009 `transferWithAuthorization`). See the `curl`, `Python`, and `TypeScript` tabs below for a copy-paste 402 -> pay -> 200 flow. The server pays gas; your wallet needs only >= $0.10 USDC on Base and NO ETH. Payment settles to the Safe treasury `0xaCd134d2AAd0b868EDb395F7d151864188caaF1a` — never an EOA signer. Reference implementation: `smartcontractauditpro/x402_smoke.py`. Full enriched profile for any ERC-8004 agent. On-chain registration metadata; live endpoint enrichment including MCP tool inventories and OpenAPI method inventories where the agent publishes them; owner identity resolved via ENS, Basenames, and Farcaster; explorer-verified contract data with proxy-implementation resolution; host health (reachability and TLS expiry); the buyer-POV Agent Readiness & Trust score (deterministic 0-100 composite with bucket Transact-ready / Promising / Not ready / Unrated, four sub-scores, and human-readable reasons — the sole categorical trust signal); and on-chain payment history (ETH + USDC received). Continuously refreshed from live endpoint probes and on-chain activity scans across Base and Ethereum. **Payment (x402):** - base: 0.10 USDC (EIP-3009) - ethereum: 0.10 USDC (EIP-3009) The 200 response body carries paid-gated intel; field-level schemas are intentionally not published. See the 402 `preview` block for the buyer-visible teaser.' operationId: paid_agent_intel_profile_get security: - x402: [] responses: '200': description: Paid intel. Body shape is opaque in this public spec (paid-gated). Integrators should use the 402 preview envelope + the human docs at https://onchainagentintel.io/docs for field lists. content: application/json: schema: type: object additionalProperties: true '402': $ref: '#/components/responses/PaymentRequired' parameters: - name: agent_id in: path required: true description: integer — ERC-8004 agentId (e.g. 19353 for Agent Zero). Discover via /v1/intel/search or read directly from the on-chain IdentityRegistry. schema: type: integer minimum: 0 - name: chain in: query required: false description: 'string (optional) — base | ethereum. Default: base.' schema: type: string - name: wallet in: query required: false description: string (optional) — 0x-prefixed payer address. If you have an active /v1/intel/subscribe subscription, pass it to bypass per-call payment. schema: type: string x-codeSamples: - lang: bash label: curl source: '# 1) Unpaid — get the 402 x402 challenge (no wallet needed). curl -i https://api.onchainagentintel.io/v1/intel/agent/19353 # HTTP/1.1 402 Payment Required # { # "x402Version": 1, # "accepts": [ # { "scheme": "exact", "network": "base-mainnet", # "maxAmountRequired": "100000", # $0.10 USDC (6 decimals) # "payTo": "0xaCd134d2AAd0b868EDb395F7d151864188caaF1a", # Safe treasury # "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", # USDC on Base # "extra": { "name": "USD Coin", "version": "2" } }, # ... # ], # "preview": { /* buyer-visible teaser */ } # } # 2) Sign an EIP-3009 transferWithAuthorization off-chain — server # pays gas. Sample signer code lives in the Python / TypeScript # tabs. Result: a base64-encoded X-PAYMENT envelope. # 3) Retry with the X-PAYMENT header — server settles + returns 200. X_PAYMENT="" curl -i -H "X-PAYMENT: $X_PAYMENT" https://api.onchainagentintel.io/v1/intel/agent/19353 # HTTP/1.1 200 OK # { "x402": { "settled": true, "tx": "0x..." }, # "result": { /* opaque paid intel */ } } ' - lang: Python label: Python source: "# quickstart_x402.py — make your first paid call ($0.10 USDC on Base).\n# Deps: pip install requests eth-account web3\n# Wallet: needs >= $0.10 USDC on Base. NO gas (server pays).\n# Key: set X402_TEST_PRIVATE_KEY — never commit a real key.\nimport base64, json, os, secrets, time\nimport requests\nfrom eth_account import Account\nfrom eth_account.messages import encode_typed_data\n\nURL = \"https://api.onchainagentintel.io/v1/intel/agent/19353\"\n\n# 1) Unpaid — get the 402 challenge.\nr = requests.get(URL, timeout=15)\nassert r.status_code == 402, r.status_code\nchallenge = r.json()\naccept = next(\n a for a in challenge[\"accepts\"] if a[\"network\"] == \"base-mainnet\"\n)\n# accept: scheme=exact, payTo=, asset=,\n# maxAmountRequired=100000 ($0.10 USDC).\n\n# 2) Sign an EIP-3009 transferWithAuthorization off-chain.\nacct = Account.from_key(os.environ[\"X402_TEST_PRIVATE_KEY\"]) # PLACEHOLDER\nnonce = secrets.token_bytes(32)\nnow = int(time.time())\nvalid_before = now + 600\nsignable = encode_typed_data(\n domain_data={\n \"name\": accept[\"extra\"][\"name\"],\n \"version\": accept[\"extra\"][\"version\"],\n \"chainId\": 8453,\n \"verifyingContract\": accept[\"asset\"],\n },\n message_types={\"TransferWithAuthorization\": [\n {\"name\": \"from\", \"type\": \"address\"},\n {\"name\": \"to\", \"type\": \"address\"},\n {\"name\": \"value\", \"type\": \"uint256\"},\n {\"name\": \"validAfter\", \"type\": \"uint256\"},\n {\"name\": \"validBefore\", \"type\": \"uint256\"},\n {\"name\": \"nonce\", \"type\": \"bytes32\"},\n ]},\n message_data={\n \"from\": acct.address, \"to\": accept[\"payTo\"],\n \"value\": int(accept[\"maxAmountRequired\"]),\n \"validAfter\": 0, \"validBefore\": valid_before, \"nonce\": nonce,\n },\n)\nsigned = Account.sign_message(signable, private_key=acct.key)\nsig = signed.signature.hex()\nif not sig.startswith(\"0x\"):\n sig = \"0x\" + sig\n\n# 3) Retry with X-PAYMENT (base64-encoded x402 envelope) — get 200.\nenvelope = {\n \"x402Version\": 1, \"scheme\": \"exact\",\n \"network\": \"base-mainnet\",\n \"payload\": {\n \"authorization\": {\n \"from\": acct.address, \"to\": accept[\"payTo\"],\n \"value\": accept[\"maxAmountRequired\"],\n \"validAfter\": 0, \"validBefore\": valid_before,\n \"nonce\": \"0x\" + nonce.hex(),\n },\n \"signature\": sig,\n },\n}\nheader = base64.b64encode(json.dumps(envelope).encode()).decode()\npaid = requests.get(URL, headers={\"X-PAYMENT\": header}, timeout=30)\nprint(paid.status_code, paid.json().get(\"x402\"))\n# -> 200 {'settled': True, 'tx': '0x...'}\n# `paid.json()['result']` carries the opaque paid intel (buyer-gated).\n\n# Reference implementation: smartcontractauditpro/x402_smoke.py.\n" - lang: TypeScript label: TypeScript source: "// quickstart-x402.ts — make your first paid call ($0.10 USDC on Base).\n// Deps: npm i viem\n// Wallet: needs >= $0.10 USDC on Base. NO gas (server pays).\n// Key: set X402_TEST_PRIVATE_KEY — never commit a real key.\nimport { privateKeyToAccount } from \"viem/accounts\";\nimport { toHex } from \"viem\";\n\nconst URL = \"https://api.onchainagentintel.io/v1/intel/agent/19353\";\n\n// 1) Unpaid — get the 402 challenge.\nconst r1 = await fetch(URL);\nif (r1.status !== 402) throw new Error(`expected 402, got ${r1.status}`);\nconst challenge = await r1.json();\nconst accept = challenge.accepts.find((a: any) => a.network === \"base-mainnet\");\n// accept: scheme=\"exact\", payTo=, asset=,\n// maxAmountRequired=\"100000\" ($0.10 USDC).\n\n// 2) Sign an EIP-3009 transferWithAuthorization off-chain.\nconst account = privateKeyToAccount(\n process.env.X402_TEST_PRIVATE_KEY as `0x${string}`, // PLACEHOLDER\n);\nconst nonceBytes = crypto.getRandomValues(new Uint8Array(32));\nconst nonce = toHex(nonceBytes);\nconst now = Math.floor(Date.now() / 1000);\nconst validBefore = BigInt(now + 600);\nconst authorization = {\n from: account.address,\n to: accept.payTo,\n value: BigInt(accept.maxAmountRequired),\n validAfter: 0n,\n validBefore,\n nonce,\n} as const;\nconst signature = await account.signTypedData({\n domain: {\n name: accept.extra.name,\n version: accept.extra.version,\n chainId: 8453,\n verifyingContract: accept.asset,\n },\n types: {\n TransferWithAuthorization: [\n { name: \"from\", type: \"address\" },\n { name: \"to\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"validAfter\", type: \"uint256\" },\n { name: \"validBefore\", type: \"uint256\" },\n { name: \"nonce\", type: \"bytes32\" },\n ],\n },\n primaryType: \"TransferWithAuthorization\",\n message: authorization,\n});\n\n// 3) Retry with X-PAYMENT (base64-encoded x402 envelope) — get 200.\nconst envelope = {\n x402Version: 1,\n scheme: \"exact\",\n network: \"base-mainnet\",\n payload: {\n authorization: {\n from: authorization.from,\n to: authorization.to,\n value: accept.maxAmountRequired,\n validAfter: 0,\n validBefore: Number(validBefore),\n nonce,\n },\n signature,\n },\n};\nconst header = Buffer.from(JSON.stringify(envelope)).toString(\"base64\");\nconst r2 = await fetch(URL, { headers: { \"X-PAYMENT\": header } });\nconsole.log(r2.status, (await r2.json()).x402);\n// -> 200 { settled: true, tx: \"0x...\" }\n// `.result` on the paid response carries the opaque paid intel (buyer-gated).\n" /v1/intel/search: post: tags: - paid-x402 summary: Agent Intelligence — Capability Search description: 'Search thousands of indexed ERC-8004 agents by capabilities, chain, readiness bucket, x402 support, or minimum payment activity. Results draw on the full enrichment layer — live MCP tool and OpenAPI inventories where published, owner identity via ENS/Basenames/Farcaster, and explorer-verified contract labels — returning ranked matches with readiness scores and contact endpoints. Ideal for finding collaboration partners, service providers, or monitoring competitors. **Payment (x402):** - base: 0.20 USDC (EIP-3009) - ethereum: 0.20 USDC (EIP-3009) The 200 response body carries paid-gated intel; field-level schemas are intentionally not published. See the 402 `preview` block for the buyer-visible teaser.' operationId: paid_agent_intel_search_post security: - x402: [] responses: '200': description: Paid intel. Body shape is opaque in this public spec (paid-gated). Integrators should use the 402 preview envelope + the human docs at https://onchainagentintel.io/docs for field lists. content: application/json: schema: type: object additionalProperties: true '402': $ref: '#/components/responses/PaymentRequired' requestBody: required: false content: application/json: schema: type: object additionalProperties: true description: Optional JSON body. See https://onchainagentintel.io/docs for per-endpoint body fields. /v1/intel/trending: get: tags: - paid-x402 summary: Agent Intelligence — Trending & Market Activity description: 'Agents with rising on-chain payment activity, recently enriched endpoints, or newly moved into the Transact-ready readiness bucket (buyer-POV Agent Readiness & Trust score, the sole categorical signal). Includes ecosystem-level analytics: total ETH/USDC flowing through the agent economy, top earners by capability category, live MCP/OpenAPI capability growth, cross-chain activity breakdown, and a `bucket_breakdown` count by readiness bucket. **Payment (x402):** - base: 0.30 USDC (EIP-3009) - ethereum: 0.30 USDC (EIP-3009) The 200 response body carries paid-gated intel; field-level schemas are intentionally not published. See the 402 `preview` block for the buyer-visible teaser.' operationId: paid_agent_intel_trending_get security: - x402: [] responses: '200': description: Paid intel. Body shape is opaque in this public spec (paid-gated). Integrators should use the 402 preview envelope + the human docs at https://onchainagentintel.io/docs for field lists. content: application/json: schema: type: object additionalProperties: true '402': $ref: '#/components/responses/PaymentRequired' parameters: - name: wallet in: query required: false description: string (optional) — 0x-prefixed payer address. If you have an active /v1/intel/subscribe subscription, pass it to bypass per-call payment. schema: type: string /v1/intel/peers/{agent_id}: get: tags: - paid-x402 summary: Agent Intelligence — Peer Similarity description: 'The 10 most similar agents to a given agentId, ranked by capability overlap (including live MCP tool and OpenAPI inventories where published) and on-chain payment activity. Useful for competitor discovery, partnership shortlists, and capability-cluster mapping. **Payment (x402):** - base: 0.10 USDC (EIP-3009) - ethereum: 0.10 USDC (EIP-3009) The 200 response body carries paid-gated intel; field-level schemas are intentionally not published. See the 402 `preview` block for the buyer-visible teaser.' operationId: paid_agent_intel_peers_get security: - x402: [] responses: '200': description: Paid intel. Body shape is opaque in this public spec (paid-gated). Integrators should use the 402 preview envelope + the human docs at https://onchainagentintel.io/docs for field lists. content: application/json: schema: type: object additionalProperties: true '402': $ref: '#/components/responses/PaymentRequired' parameters: - name: agent_id in: path required: true description: integer — ERC-8004 agentId of the agent whose peers you want. schema: type: integer minimum: 0 - name: chain in: query required: false description: 'string (optional) — base | ethereum. Default: base.' schema: type: string - name: wallet in: query required: false description: string (optional) — 0x-prefixed payer address. If you have an active subscription, pass it to bypass per-call payment. schema: type: string /v1/intel/market: get: tags: - paid-x402 summary: Agent Intelligence — Capability Market Map description: 'Capability-level market analytics: crowded niches, lucrative niches, low-competition opportunities. Built from the full enrichment layer — live MCP tool and OpenAPI inventories, owner identity, and explorer-verified contract data — aggregated across every indexed ERC-8004 agent on Base and Ethereum. **Payment (x402):** - base: 0.30 USDC (EIP-3009) - ethereum: 0.30 USDC (EIP-3009) The 200 response body carries paid-gated intel; field-level schemas are intentionally not published. See the 402 `preview` block for the buyer-visible teaser.' operationId: paid_agent_intel_market_get security: - x402: [] responses: '200': description: Paid intel. Body shape is opaque in this public spec (paid-gated). Integrators should use the 402 preview envelope + the human docs at https://onchainagentintel.io/docs for field lists. content: application/json: schema: type: object additionalProperties: true '402': $ref: '#/components/responses/PaymentRequired' parameters: - name: wallet in: query required: false description: string (optional) — 0x-prefixed payer address. If you have an active subscription, pass it to bypass per-call payment. schema: type: string /v1/intel/delta: get: tags: - paid-x402 summary: Agent Intelligence — Ecosystem Delta description: 'Agents newly registered or newly active since a given Unix timestamp, including newly captured live endpoints (MCP tool and OpenAPI inventories), freshly resolved owner identity, new explorer-verified labels, and readiness-bucket transitions. Default window: last 24 hours. Use for change detection, monitoring competitors, or seeding alerts. **Payment (x402):** - base: 0.20 USDC (EIP-3009) - ethereum: 0.20 USDC (EIP-3009) The 200 response body carries paid-gated intel; field-level schemas are intentionally not published. See the 402 `preview` block for the buyer-visible teaser.' operationId: paid_agent_intel_delta_get security: - x402: [] responses: '200': description: Paid intel. Body shape is opaque in this public spec (paid-gated). Integrators should use the 402 preview envelope + the human docs at https://onchainagentintel.io/docs for field lists. content: application/json: schema: type: object additionalProperties: true '402': $ref: '#/components/responses/PaymentRequired' parameters: - name: since in: query required: false description: 'integer (optional) — Unix timestamp in seconds. Default: 24 hours ago.' schema: type: integer - name: wallet in: query required: false description: string (optional) — 0x-prefixed payer address. If you have an active subscription, pass it to bypass per-call payment. schema: type: string /v1/intel/graph: get: tags: - paid-x402 summary: Agent Intelligence — Full Payment Graph description: 'Complete agent-payment network graph: all nodes (every indexed agent) and all edges (inter-agent ETH + USDC transfers across Base and Ethereum). Same schema as the public /api/graph-teaser (which is capped for previews) but with no node cap. **Payment (x402):** - base: 0.30 USDC (EIP-3009) - ethereum: 0.30 USDC (EIP-3009) The 200 response body carries paid-gated intel; field-level schemas are intentionally not published. See the 402 `preview` block for the buyer-visible teaser.' operationId: paid_agent_intel_graph_get security: - x402: [] responses: '200': description: Paid intel. Body shape is opaque in this public spec (paid-gated). Integrators should use the 402 preview envelope + the human docs at https://onchainagentintel.io/docs for field lists. content: application/json: schema: type: object additionalProperties: true '402': $ref: '#/components/responses/PaymentRequired' parameters: - name: wallet in: query required: false description: string (optional) — 0x-prefixed payer address. If you have an active subscription, pass it to bypass per-call payment. schema: type: string /v1/intel/subscribe: post: tags: - paid-x402 summary: Agent Intelligence — 30-Day Flat-Rate Subscription description: 'Pay once for 30-day flat-rate access to all per-call intel endpoints (profile, search, trending, delta, peers, market, graph). Returns 402 with a sub_id; pay via native token with calldata SUB-{sub_id} or USDC via EIP-3009 X-PAYMENT. After payment confirms, query any covered endpoint with ?wallet=YOUR_ADDR to skip per-call charges for 30 days. Poll /v1/intel/subscription/{sub_id} (free, public) for activation status. **Payment (x402):** - base: 5.00 USDC (EIP-3009) - ethereum: 5.00 USDC (EIP-3009) The 200 response body carries paid-gated intel; field-level schemas are intentionally not published. See the 402 `preview` block for the buyer-visible teaser.' operationId: paid_agent_intel_subscribe_post security: - x402: [] responses: '200': description: Paid intel. Body shape is opaque in this public spec (paid-gated). Integrators should use the 402 preview envelope + the human docs at https://onchainagentintel.io/docs for field lists. content: application/json: schema: type: object additionalProperties: true '402': $ref: '#/components/responses/PaymentRequired' requestBody: required: false content: application/json: schema: type: object additionalProperties: true description: Optional JSON body. See https://onchainagentintel.io/docs for per-endpoint body fields. /v1/audit: post: tags: - paid-x402 summary: Smart Contract Security Audit description: 'Full security audit of any Solidity contract. Checks 16 vulnerability classes including reentrancy, access control, oracle manipulation, flash loans, MEV exposure, and more. Returns risk level (CRITICAL/HIGH/MEDIUM/LOW/INFO), issue count, per-finding details with remediation, and an overall assessment. Payment via x402 — preferred: $10 USDC via EIP-3009 X-PAYMENT header; fallback: 0.01 ETH with calldata AUDIT-{id}. **Payment (x402):** - base: 10.00 USDC (EIP-3009) - ethereum: 10.00 USDC (EIP-3009) The 200 response body carries paid-gated intel; field-level schemas are intentionally not published. See the 402 `preview` block for the buyer-visible teaser.' operationId: paid_smart_contract_audit_post security: - x402: [] responses: '200': description: Paid intel. Body shape is opaque in this public spec (paid-gated). Integrators should use the 402 preview envelope + the human docs at https://onchainagentintel.io/docs for field lists. content: application/json: schema: type: object additionalProperties: true '402': $ref: '#/components/responses/PaymentRequired' requestBody: required: false content: application/json: schema: type: object additionalProperties: true description: Optional JSON body. See https://onchainagentintel.io/docs for per-endpoint body fields. /v1/evaluate: post: tags: - paid-x402 summary: ERC-8183 Deliverable Evaluation description: 'Evaluator attestation for ERC-8183 Jobs. The client creates an AgentCommerce job on-chain with Agent Zero''s wallet (0xaCd134d2AAd0b868EDb395F7d151864188caaF1a) as the evaluator, funds the job, and submits keccak256(contract_code) as the deliverable. Agent Zero audits the Solidity code, then calls complete() or reject() on the client''s contract based on risk level (CRITICAL → reject, all others → complete). Outcome is attested on-chain with the report hash. Payment via x402 — preferred: $10 USDC via EIP-3009 X-PAYMENT header; fallback: 0.01 ETH with calldata EVAL-{id}. **Payment (x402):** - base: 10.00 USDC (EIP-3009) - ethereum: 10.00 USDC (EIP-3009) The 200 response body carries paid-gated intel; field-level schemas are intentionally not published. See the 402 `preview` block for the buyer-visible teaser.' operationId: paid_erc8183_evaluation_post security: - x402: [] responses: '200': description: Paid intel. Body shape is opaque in this public spec (paid-gated). Integrators should use the 402 preview envelope + the human docs at https://onchainagentintel.io/docs for field lists. content: application/json: schema: type: object additionalProperties: true '402': $ref: '#/components/responses/PaymentRequired' requestBody: required: false content: application/json: schema: type: object additionalProperties: true description: Optional JSON body. See https://onchainagentintel.io/docs for per-endpoint body fields. components: responses: PaymentRequired: description: Payment required. Retry with X-PAYMENT header. headers: Link: description: RFC 8288 Link header (task 0179, per-agent operations only). Comma-separated values include `rel="alternate"; type="text/html"` pointing at the free per-agent SEO page (or the chain brief fallback) and `rel="describedby"` pointing at `https://api.onchainagentintel.io/llms.txt`. schema: type: string content: application/json: schema: type: object required: - x402Version - accepts properties: x402Version: type: integer example: 1 accepts: type: array items: type: object properties: scheme: type: string example: exact network: type: string example: base-mainnet maxAmountRequired: type: string example: '100000' payTo: type: string example: '0xaCd134d2AAd0b868EDb395F7d151864188caaF1a' asset: type: string example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' maxTimeoutSeconds: type: integer example: 300 extra: type: object additionalProperties: true resource: type: string format: uri description: Canonical URL of the paid resource this accept entry unlocks. Discovery indexers key on this field. example: https://api.onchainagentintel.io/v1/intel/agent_profile description: type: string description: Agent-readable one-line summary of what the paid resource returns. Rendered in the discovery UI. example: 'Paid ERC-8004 agent intelligence (agent_profile): trust verdict, reputation, and commerce-backed signals for on-chain agents on Base + Ethereum.' mimeType: type: string description: MIME type of the 200 response served on successful payment. example: application/json preview: type: object description: Buyer-visible teaser. Contains a small set of unlocked fields (identifiers, high-level readiness bucket + score, capability count, boolean coverage flags) so integrators can decide whether to pay. Full paid response fields stay gated behind the 200. additionalProperties: true see_also: type: object description: Task 0179 (per-agent operations only). Pointers to the free 200-returning surface that answers the same question. Additive to `preview` / `accepts[]` — never replaces them. `free_page` is the direct per-agent SEO page URL when one exists (built from `onchainagentintel-site/build_seo_pages.py`); `free_page_fallback` is the chain brief (`/chains/{chain}`); `free_endpoints[]` enumerates the public `/v1/public/*` surfaces; `llms_txt` points at the site+API map. properties: free_page: type: string format: uri example: https://onchainagentintel.io/agents/base/19353 free_page_fallback: type: string format: uri example: https://onchainagentintel.io/chains/base free_endpoints: type: array items: type: string format: uri llms_txt: type: string format: uri example: https://api.onchainagentintel.io/llms.txt additionalProperties: true securitySchemes: x402: type: apiKey in: header name: X-PAYMENT description: x402 payment envelope (base64-encoded JSON). Paid endpoints return HTTP 402 with an `accepts[]` list of accepted payment methods (USDC on Base/Ethereum via EIP-3009, or native ETH). Sign a payment authorization matching one of those entries, base64-encode it, and retry with this header set to receive the 200 response. See https://onchainagentintel.io/docs and https://api.onchainagentintel.io/agent.json for the full flow. x-x402: version: 1 settlement_networks: - base - ethereum pay_to: '0xaCd134d2AAd0b868EDb395F7d151864188caaF1a' externalDocs: description: Human docs, pricing, payment flow. url: https://onchainagentintel.io/docs