anchor-x402 · OpenAPI Overlay 1.0.0

anchor-x402 API Evangelist enhancement overlay

25 actions 25 updates servers extends openapi/anchor-x402-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for anchor-x402's API. It is a proposal applied on top of the contract, not a document anchor-x402 publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

tagsx-price-usdsecurityx-mcp-toolx-reversiblex-undocumented-siblingx-reversibility-notex-free

Targets 25 · first 16 shown; the file carries all of them

$
$.info
$.components
$.components.schemas
$.tags
$.paths./v1/anchor.post
$.paths./v1/attest.post
$.paths./v1/attest/verify.post
$.paths./v1/screen.post
$.paths./v1/intel/wallet.post
$.paths./v1/investigate.post
$.paths./v1/decode/tx.post
$.paths./v1/decode/calldata.post
$.paths./v1/resolve/name.post
$.paths./v1/price/token.post
$.paths./v1/ledger/summary.post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: anchor-x402 API Evangelist enhancement overlay
  version: 1.0.0
x-generated: '2026-09-11'
x-method: generated
x-source: >-
  openapi/anchor-x402-openapi.json, enriched from well-known/anchor-x402-x402.json,
  a2a/anchor-x402-agent-card.json, well-known/anchor-x402-mcp-server-card.json and a live 402 challenge
x-note: >-
  Captures the API Evangelist enhancements to the provider's published spec without mutating it. Every value
  below was harvested from a document the provider itself publishes or from an observed live response - the
  overlay adds nothing about this API that anchor-x402 has not already stated somewhere else. The three
  substantive additions are the missing servers[] block, the missing securitySchemes for the x402
  PAYMENT-SIGNATURE header, and a content schema for the 402 challenge, which 20 operations declare with no
  body shape at all.
extends: openapi/anchor-x402-openapi.json
actions:
- target: $
  description: >-
    Add the servers[] block. The published spec has no servers key whatsoever, so a generated client has no
    base URL. The host is stated as base_url in /.well-known/x402.json and as the skill URL prefix in the
    agent card.
  update:
    servers:
    - url: https://api.anchor-x402.com
      description: Production. The only host; there is no sandbox or staging environment.
- target: $.info
  description: Add license, terms and provider contact surfaces the spec omits but the provider publishes.
  update:
    license:
      name: MIT
      url: https://github.com/hypeprinter007-stack/anchor-x402/blob/main/LICENSE
    contact:
      name: anchor-x402
      url: https://anchor-x402.com
      email: hello@anchor-x402.com
- target: $.components
  description: >-
    Add the x402 security scheme. The provider models it this way itself in the A2A agent card's
    securitySchemes and in the MCP server card's authentication block; the OpenAPI declares no
    securitySchemes at all, so the contract currently reads as an entirely open API.
  update:
    securitySchemes:
      x402:
        type: apiKey
        in: header
        name: PAYMENT-SIGNATURE
        description: >-
          x402 v2 pay-per-call. No account and no API key exists. Request without payment to receive a 402
          challenge carrying the accepted rails and exact amounts, then retry the identical request with the
          signed EIP-3009 payment payload in this header. The deprecated x402 V1 X-PAYMENT spelling is also
          accepted.
- target: $.components.schemas
  description: >-
    Add a schema for the x402 PaymentRequired challenge body. Twenty operations declare a 402 response with
    a description and no content block, leaving the single response every caller must parse in order to pay
    with no shape in the contract. Shape taken verbatim from an observed live 402.
  update:
    X402PaymentRequired:
      type: object
      title: X402PaymentRequired
      required: [x402Version, error, resource, accepts]
      properties:
        x402Version:
          type: integer
          const: 2
        error:
          type: string
          example: Payment required
        resource:
          type: object
          properties:
            url: {type: string, format: uri}
            description: {type: string}
            mimeType: {type: string}
            serviceName: {type: string}
            tags: {type: array, items: {type: string}}
            iconUrl: {type: string, format: uri}
        accepts:
          type: array
          description: One entry per settlement rail the caller may choose from.
          items:
            type: object
            required: [scheme, network, asset, amount, payTo]
            properties:
              scheme: {type: string, example: exact}
              network:
                type: string
                description: CAIP-2 chain id.
                examples: ['eip155:8453', 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp', 'eip155:137']
              asset: {type: string, description: Token contract address or mint.}
              amount: {type: string, description: Amount in the asset's smallest unit, as a decimal string.}
              payTo: {type: string}
              maxTimeoutSeconds: {type: integer, example: 300}
              extra: {type: object}
        extensions:
          type: object
          description: >-
            Carries the CDP Bazaar discovery extension - bazaar.info.input, bazaar.info.output.example and a
            2020-12 JSON Schema for the route, plus a builder-code block.
- target: $.tags
  description: >-
    Add the category taxonomy. All 24 operations are untagged in the published spec; the provider's own
    x402 discovery catalog assigns every route one of six categories.
  update:
  - name: security
    description: On-chain anchoring, attestation, wallet sanctions screening and due diligence.
  - name: web3
    description: Transaction and calldata decoding, ENS and SNS name resolution.
  - name: finance
    description: Token pricing and x402 spend accounting.
  - name: ai
    description: LLM-backed content analysis - oracle, roast, aura, grade, datetime parsing.
  - name: gaming
    description: Verifiable signed randomness.
  - name: content-extraction
    description: Summarization.
- target: $.paths./v1/anchor.post
  description: Tag, price and payment metadata for the anchoring service.
  update:
    tags: [security]
    security: [{x402: []}]
    x-price-usd: 0.005
    x-mcp-tool: anchor_hash
    x-a2a-skill: anchor_hash
    x-reversible: false
    x-reversibility-note: Writes a 32-byte hash to Base and Solana mainnet. There is no undo.
- target: $.paths./v1/attest.post
  update:
    tags: [security]
    security: [{x402: []}]
    x-price-usd: 0.010
    x-mcp-tool: attest_decision
    x-reversible: false
- target: $.paths./v1/attest/verify.post
  update:
    tags: [security]
    x-price-usd: 0
    x-free: true
    x-note: Free re-verification of a previously anchored attestation. No MCP tool exposes this.
- target: $.paths./v1/screen.post
  update:
    tags: [security]
    security: [{x402: []}]
    x-price-usd: 0.020
    x-mcp-tool: screen_wallet
    x-undocumented-sibling: GET /v1/screen?wallet= is live (402 observed) but absent from this spec.
- target: $.paths./v1/intel/wallet.post
  update:
    tags: [security]
    security: [{x402: []}]
    x-price-usd: 0.005
    x-mcp-tool: intel_wallet
    x-undocumented-sibling: GET /v1/intel/wallet?wallet= is live (402 observed) but absent from this spec.
- target: $.paths./v1/investigate.post
  update:
    tags: [security]
    security: [{x402: []}]
    x-price-usd: 1.770
    x-mcp-tool: investigate_wallet
    x-async: true
    x-eta: 5-10 minutes
    x-reversible: false
- target: $.paths./v1/decode/tx.post
  update:
    tags: [web3]
    security: [{x402: []}]
    x-price-usd: 0.001
    x-mcp-tool: decode_tx
- target: $.paths./v1/decode/calldata.post
  update:
    tags: [web3]
    security: [{x402: []}]
    x-price-usd: 0.001
    x-mcp-tool: decode_calldata
- target: $.paths./v1/resolve/name.post
  update:
    tags: [web3]
    security: [{x402: []}]
    x-price-usd: 0.001
    x-mcp-tool: resolve_name
    x-undocumented-sibling: GET /v1/resolve/name?name= is live (402 observed) but absent from this spec.
- target: $.paths./v1/price/token.post
  update:
    tags: [finance]
    security: [{x402: []}]
    x-price-usd: 0.001
    x-mcp-tool: token_price
    x-undocumented-sibling: GET /v1/price/token?symbol= is live (402 observed) but absent from this spec.
- target: $.paths./v1/ledger/summary.post
  update:
    tags: [finance]
    security: [{x402: []}]
    x-price-usd: 0.010
    x-mcp-tool: ledger_summary
- target: $.paths./v1/ledger/report.post
  update:
    tags: [finance]
    security: [{x402: []}]
    x-price-usd: 0.350
    x-mcp-tool: ledger_report
    x-async: true
- target: $.paths./v1/parse/datetime.post
  update:
    tags: [ai]
    security: [{x402: []}]
    x-price-usd: 0.001
    x-mcp-tool: parse_datetime
- target: $.paths./v1/oracle.post
  update:
    tags: [ai]
    security: [{x402: []}]
    x-price-usd: 0.050
    x-mcp-tool: oracle_verdict
    x-reversible: false
    x-reversibility-note: Anchors the verdict and question hash to Base and Solana mainnet.
- target: $.paths./v1/roast.post
  update:
    tags: [ai]
    security: [{x402: []}]
    x-price-usd: 0.050
    x-mcp-tool: roast_target
- target: $.paths./v1/tldr.post
  update:
    tags: [content-extraction]
    security: [{x402: []}]
    x-price-usd: 0.010
    x-mcp-tool: tldr_text
- target: $.paths./v1/aura.post
  update:
    tags: [ai]
    security: [{x402: []}]
    x-price-usd: 0.010
    x-mcp-tool: aura_read
- target: $.paths./v1/grade.post
  update:
    tags: [ai]
    security: [{x402: []}]
    x-price-usd: 0.010
    x-mcp-tool: grade_target
- target: $.paths./v1/roll.post
  update:
    tags: [gaming]
    security: [{x402: []}]
    x-price-usd: 0.001
    x-mcp-tool: roll_random
- target: $.paths./health.get
  update:
    x-free: true
    x-note: Liveness probe. Free and unmetered.