Agent Zero Paid X402 API

Paid endpoints — settle with X-PAYMENT header per x402.

Operations 10

GET /v1/intel/agent/{agent_id} Agent Intelligence — Profile Lookup #
POST /v1/intel/search Agent Intelligence — Capability Search #
GET /v1/intel/peers/{agent_id} Agent Intelligence — Peer Similarity #
GET /v1/intel/market Agent Intelligence — Capability Market Map #
GET /v1/intel/delta Agent Intelligence — Ecosystem Delta #
GET /v1/intel/graph Agent Intelligence — Full Payment Graph #
POST /v1/intel/subscribe Agent Intelligence — 30-Day Flat-Rate Subscription #
POST /v1/audit Smart Contract Security Audit #
POST /v1/evaluate ERC-8183 Deliverable Evaluation #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/onchainagentintel-io:onchainagentintel-io-paid-x402-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

onchainagentintel-io-paid-x402-api-openapi.yml Raw ↑
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="<base64 x402 envelope from step 2>"

          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=<Safe>, asset=<USDC on Base>,\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=<Safe>, asset=<USDC on Base>,\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