{
  "version": "2.0",
  "name": "anchor-x402",
  "description": "Eighteen x402-paid services for AI agents on three settlement rails — Base USDC, Solana USDC, and JPYC on Polygon (¥1 per anchor call). Nine commodity primitives, one async due-diligence investigator ($1.77 / ¥350), one verifiable signed RNG (drop-in VRF), and five universal LLM endpoints (roast, oracle with on-chain anchored verdict, TL;DR, aura, grade), and a two-endpoint x402 spend-accounting ledger (summary + signed anchored expense report). Plus a hosted chatbot at chat.anchor-x402.com. Pay-per-call, no API keys, no accounts.",
  "description_ja": "AIエージェント向けのx402従量課金サービス18種、3つの決済レール対応 — Baseメインネット USDC、Solanaメインネット USDC、PolygonメインネットJPYC（アンカー1回あたり¥1）。汎用プリミティブ9種、非同期デューデリジェンス調査1種（$1.77 / ¥350）、検証可能な署名付き乱数生成1種（VRF互換）、汎用LLMエンドポイント5種（roast、オンチェーンアンカー判定付きoracle、TL;DR、aura、grade）。さらにchat.anchor-x402.comではホスト型チャットボットも利用可能。コール単位の決済で、APIキー・アカウント登録ともに不要です。",
  "operator": "anchor-x402",
  "homepage": "https://anchor-x402.com",
  "trust_portal": "https://anchor-x402.com/trust/",
  "openapi_url": "https://api.anchor-x402.com/openapi.json",
  "base_url": "https://api.anchor-x402.com",
  "facilitator": "https://api.cdp.coinbase.com/platform/v2/x402",
  "x402_version": 2,
  "discovery_extension": "bazaar",
  "extensions": {
    "bazaar": {
      "name": "anchor-x402",
      "description": "x402-paid services for AI agents on Base, Solana, and Polygon (JPYC) — wallet screening & due-diligence, on-chain attestation, token price & name resolution, verifiable signed RNG, and LLM utilities. Pay-per-call, no API keys."
    }
  },
  "networks": [
    {
      "id": "eip155:8453",
      "name": "Base mainnet",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "asset_name": "USDC",
      "payment_address": "0x127462e296fAc1A7F5cF33bA57bB2f0FFf5cD0B6"
    },
    {
      "id": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "name": "Solana mainnet",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "asset_name": "USDC",
      "payment_address": "6apuZvJQ51Led9iEjnHw6f5jfnXL4qjt8S1h58PeXzuR"
    },
    {
      "id": "eip155:137",
      "name": "Polygon mainnet",
      "asset": "0x431D5dfF03120AFA4bDf332c61A6e1766eF37BDB",
      "asset_name": "JPYC",
      "asset_decimals": 18,
      "facilitator": "in-process",
      "note": "First FSA-licensed Japanese yen stablecoin. Tier mapping: $0.001=¥0.1, $0.005=¥1, $0.01=¥2, $0.05=¥10, $1.77=¥350, $5.00=¥1000. These are fixed yen amounts, not an FX conversion: they are pegged at an assumed ~¥200/USD and there is no oracle, so the USD-equivalent of a JPYC payment floats with the real rate in both directions. At a spot rate stronger than ¥200/USD a JPYC payment is worth more than the USD price (recently ~+27%); weaker than ¥200/USD it is worth less. The $0.001 tier is snapped to ¥0.1 rather than ¥0.2, so it sits below the other tiers' implied rate. Compare the two accepts entries in the 402 challenge and pay whichever rail suits you — both are honoured at face value.",
      "pricing_model": "fixed-yen-tiers",
      "implied_rate_jpy_per_usd": 200,
      "fx_oracle": false
    }
  ],
  "free_endpoints": [
    {
      "path": "/health",
      "method": "GET",
      "description": "Liveness probe — returns {status,service}",
      "description_ja": "稼働確認プローブ。{status,service}を返却します。"
    },
    {
      "path": "/openapi.json",
      "method": "GET",
      "description": "Full OpenAPI 3 spec for all 18 paid services",
      "description_ja": "18種の有料サービス全てを記述したOpenAPI 3完全仕様。"
    },
    {
      "path": "/docs",
      "method": "GET",
      "description": "Swagger UI for interactive exploration",
      "description_ja": "対話的にサービスを試せるSwagger UI。"
    },
    {
      "path": "/v1/a2a",
      "method": "POST",
      "description": "Agent-to-agent door — signed JSON-RPC 2.0, no API key or account. Methods: peer/hello, capabilities/list, peer/quote, peer/receipt. Authenticate with an Ed25519 key published in your own /.well-known/agent-card.json; see the A2A agent card for the signing recipe and required audience.",
      "description_ja": "エージェント間通信の窓口 — 署名付きJSON-RPC 2.0、APIキーやアカウント不要。自身の/.well-known/agent-card.jsonにEd25519公開鍵を掲載して認証します。",
      "protocol": "a2a",
      "agent_card": "https://anchor-x402.com/.well-known/agent-card.json",
      "a2a_protocol_version": "0.3.0"
    },
    {
      "path": "/mcp",
      "method": "POST",
      "description": "MCP (Model Context Protocol) endpoint — Streamable HTTP, stateless, no API key or account. All 18 paid services are exposed as MCP tools. server/discover, initialize and tools/list are free; tools/call settles per request in USDC on Base or Solana via x402 — call without payment and the 402 challenge comes back in structuredContent.accepts, then retry the identical call with a signed PAYMENT-SIGNATURE header (x402 V2; the deprecated V1 X-PAYMENT spelling is also accepted). An alternative stdio transport exists as the npm package anchor-x402-mcp, but that one needs a funded private key in the local process; this endpoint does not.",
      "description_ja": "MCP（Model Context Protocol）エンドポイント — Streamable HTTP、ステートレス、APIキー・アカウント不要。有料18サービスすべてをMCPツールとして公開します。server/discover・initialize・tools/listは無料。tools/callはx402によりBaseまたはSolanaのUSDCでリクエスト毎に決済します。未払いで呼び出すと402チャレンジがstructuredContent.acceptsで返るので、署名済みPAYMENT-SIGNATUREヘッダー（x402 V2の名称。非推奨のV1 X-PAYMENTも受け付けます）を付けて同じ呼び出しを再送してください。",
      "protocol": "mcp",
      "transport": "streamable-http",
      "mcp_protocol_versions": [
        "2026-07-28",
        "2025-11-25",
        "2025-06-18",
        "2025-03-26"
      ],
      "server_card": "https://anchor-x402.com/.well-known/mcp/server-card.json",
      "payment_header": "PAYMENT-SIGNATURE"
    }
  ],
  "routes": [
    {
      "path": "/v1/anchor",
      "method": "POST",
      "price_usd": 0.005,
      "price": "$0.005",
      "category": "security",
      "description": "Anchor a 32-byte hash to Base + Solana mainnet in parallel. Returns both tx URLs as cryptographic proof of when the hash existed.",
      "description_ja": "32バイトのハッシュをBaseとSolanaメインネットへ並列でアンカリング。両チェーンのtx URLを返却し、そのハッシュが存在した時点の暗号学的証明として利用できます。",
      "input_schema": {
        "properties": {
          "hash": {
            "type": "string",
            "description": "Pre-computed 32-byte hex hash (64 chars, no 0x prefix). Mutually exclusive with `data`."
          },
          "data": {
            "description": "Arbitrary JSON to be canonicalized + SHA-256'd by the server. Mutually exclusive with `hash`."
          },
          "note": {
            "type": "string",
            "maxLength": 200,
            "description": "Optional 200-char note included in the response (not on-chain)."
          }
        },
        "type": "object"
      },
      "tags": [
        "anchor",
        "merkle",
        "timestamp",
        "audit",
        "dual-chain"
      ]
    },
    {
      "path": "/v1/screen",
      "method": "GET",
      "price_usd": 0.02,
      "price": "$0.02",
      "category": "security",
      "description": "Wallet risk pre-flight for agent payments: OFAC SDN sanctions plus address-reputation (drainer, phishing, mixer, laundering) resolved to an allow / review / block recommendation with per-signal detail.",
      "description_ja": "エージェント決済向けウォレットリスク事前チェック：OFAC SDN制裁に加え、アドレス評価（ドレイナー、フィッシング、ミキサー、資金洗浄）を allow／review／block の推奨と各シグナルの詳細として返却します。",
      "params": {
        "wallet": {
          "type": "string",
          "required": true,
          "description": "EVM 0x… (40 hex) or Solana base58 pubkey"
        }
      },
      "tags": [
        "sanctions",
        "ofac",
        "aml",
        "compliance",
        "kyc"
      ],
      "input_schema": {
        "type": "object",
        "properties": {
          "wallet": {
            "type": "string",
            "description": "EVM 0x… (40 hex) or Solana base58 pubkey"
          }
        },
        "required": [
          "wallet"
        ]
      }
    },
    {
      "path": "/v1/attest",
      "method": "POST",
      "price_usd": 0.01,
      "price": "$0.010",
      "category": "security",
      "description": "Attest a decision over (input_hash, output_hash, decision) with domain separation: supply your own signature, or omit it and the treasury signs for you (for wallet-less agents), then dual-chain anchor the Merkle root. Returns the signer, on-chain proof, and a free re-verify URL (POST /v1/attest/verify).",
      "description_ja": "(input_hash, output_hash, decision) に対する判定をドメイン分離付きでアテストします：自身の署名を渡すか、署名を省略するとトレジャリーが代理署名（ウォレットを持たないエージェント向け）し、マークルルートをデュアルチェーンへアンカリング。署名者、オンチェーン証明、無料の再検証URL（POST /v1/attest/verify）を返却します。",
      "input_schema": {
        "properties": {
          "input_hash": {
            "type": "string",
            "description": "64-char hex SHA-256 of the agent's input."
          },
          "output_hash": {
            "type": "string",
            "description": "64-char hex SHA-256 of the agent's output / decision payload."
          },
          "decision": {
            "type": "string",
            "maxLength": 64,
            "description": "Free-form short label, e.g. \"APPROVED\", \"REJECTED\", \"CONFIDENCE=0.93\"."
          },
          "scheme": {
            "type": "string",
            "enum": [
              "eip191",
              "ed25519"
            ],
            "description": "Signature scheme when you supply a `signature`: \"eip191\" (EVM) or \"ed25519\" (Solana)."
          },
          "signature": {
            "type": "string",
            "description": "0x-prefixed hex (eip191) or base58 (ed25519). Omit to have the anchor-x402 treasury sign for you (hosted-signer mode, for wallet-less agents)."
          },
          "signer_pubkey": {
            "type": "string",
            "description": "Required for ed25519 (Solana base58 pubkey). Ignored for eip191 — address is recovered."
          }
        },
        "type": "object",
        "required": [
          "input_hash",
          "output_hash",
          "decision"
        ]
      },
      "tags": [
        "attestation",
        "signature",
        "audit",
        "ai-decision",
        "compliance"
      ]
    },
    {
      "path": "/v1/decode/tx",
      "method": "POST",
      "price_usd": 0.001,
      "price": "$0.001",
      "category": "web3",
      "description": "Structured decode of any mainnet transaction. EVM (Base/Ethereum): from/to/value/gas/status/calldata. Solana: slot/fee/signers/program_calls.",
      "description_ja": "任意のメインネットトランザクションを構造化デコード。EVM（Base/Ethereum）はfrom/to/value/gas/status/calldataを、Solanaはslot/fee/signers/program_callsを返却します。",
      "input_schema": {
        "properties": {
          "chain": {
            "type": "string",
            "enum": [
              "base",
              "ethereum",
              "solana"
            ]
          },
          "tx_hash": {
            "type": "string",
            "maxLength": 128,
            "minLength": 1
          }
        },
        "type": "object",
        "required": [
          "chain",
          "tx_hash"
        ]
      },
      "tags": [
        "transaction",
        "decode",
        "blockchain",
        "rpc-proxy"
      ]
    },
    {
      "path": "/v1/resolve/name",
      "method": "GET",
      "price_usd": 0.001,
      "price": "$0.001",
      "category": "web3",
      "description": "Cross-chain name resolution: ENS (.eth) and Bonfida SNS (.sol). Returns resolved address(es) per registry.",
      "description_ja": "クロスチェーンの名前解決。ENS（.eth）とBonfida SNS（.sol）に対応し、各レジストリから解決アドレスを返却します。",
      "params": {
        "name": {
          "type": "string",
          "required": true,
          "description": "Human-readable name"
        }
      },
      "tags": [
        "ens",
        "sns",
        "bonfida",
        "name-service",
        "resolver"
      ],
      "input_schema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Human-readable name"
          }
        },
        "required": [
          "name"
        ]
      }
    },
    {
      "path": "/v1/price/token",
      "method": "GET",
      "price_usd": 0.001,
      "price": "$0.001",
      "category": "finance",
      "description": "USD spot price for any major token by symbol or chain+contract. CoinGecko-backed, 60s cache.",
      "description_ja": "主要トークンのUSDスポット価格を、シンボル指定またはchain+contract指定で取得。CoinGeckoバックエンド、60秒キャッシュ。",
      "params": {
        "symbol": {
          "type": "string",
          "description": "Token symbol (BTC, ETH, etc.). Mutually exclusive with chain+contract."
        },
        "chain": {
          "type": "string",
          "description": "Chain slug: base, ethereum, solana, polygon, arbitrum, optimism, bsc, avalanche."
        },
        "contract": {
          "type": "string",
          "description": "Token contract address. Required with chain."
        }
      },
      "tags": [
        "price",
        "spot",
        "coingecko",
        "usdc",
        "tokens"
      ],
      "input_schema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Token symbol (BTC, ETH, etc.). Mutually exclusive with chain+contract."
          },
          "chain": {
            "type": "string",
            "description": "Chain slug: base, ethereum, solana, polygon, arbitrum, optimism, bsc, avalanche."
          },
          "contract": {
            "type": "string",
            "description": "Token contract address. Required with chain."
          }
        }
      }
    },
    {
      "path": "/v1/decode/calldata",
      "method": "POST",
      "price_usd": 0.001,
      "price": "$0.001",
      "category": "web3",
      "description": "Decode raw EVM calldata into function name + typed parameters via openchain.xyz signature directory + eth_abi.",
      "description_ja": "生のEVMコールデータを、openchain.xyzのシグネチャディレクトリとeth_abiを用いて関数名＋型付きパラメータにデコードします。",
      "input_schema": {
        "properties": {
          "chain": {
            "type": "string",
            "enum": [
              "ethereum",
              "solana"
            ],
            "description": "\"ethereum\" supported; \"solana\" returns 400."
          },
          "calldata_hex": {
            "type": "string",
            "minLength": 8,
            "description": "Raw EVM calldata (>=4-byte selector), with or without 0x prefix."
          },
          "contract_address": {
            "type": "string",
            "description": "Optional. Reserved for future on-chain ABI lookups; currently unused."
          }
        },
        "type": "object",
        "required": [
          "chain",
          "calldata_hex"
        ]
      },
      "tags": [
        "calldata",
        "abi",
        "4byte",
        "openchain",
        "decode"
      ]
    },
    {
      "path": "/v1/parse/datetime",
      "method": "POST",
      "price_usd": 0.001,
      "price": "$0.001",
      "category": "ai",
      "description": "Parse any freeform datetime string into structured ISO 8601 + components + relative time + confidence.",
      "description_ja": "任意の自由形式の日時文字列を、構造化されたISO 8601、各構成要素、相対時間、信頼度にパースします。",
      "input_schema": {
        "properties": {
          "input": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "description": "Freeform datetime string in any format."
          },
          "base_time": {
            "type": "string",
            "description": "ISO 8601 reference; defaults to now UTC."
          },
          "timezone": {
            "type": "string",
            "description": "IANA tz name (e.g. 'America/New_York').",
            "default": "UTC"
          }
        },
        "type": "object",
        "required": [
          "input"
        ]
      },
      "tags": [
        "datetime",
        "iso8601",
        "parser",
        "natural-language"
      ]
    },
    {
      "path": "/v1/intel/wallet",
      "method": "GET",
      "price_usd": 0.005,
      "price": "$0.005",
      "category": "security",
      "description": "Unified wallet intelligence bundle. ONE call returns balances on Base + Ethereum + Solana, USDC across chains, tx counts, ENS/SNS reverse, sanctions verdict — aggregated from 8-10 parallel sources.",
      "description_ja": "統合ウォレットインテリジェンスバンドル。1回のコールで、Base/Ethereum/Solanaの残高、チェーン横断のUSDC残高、tx数、ENS/SNS逆引き、制裁判定を返却。8〜10件のソースから並列で集約します。",
      "params": {
        "wallet": {
          "type": "string",
          "required": true,
          "description": "EVM 0x… or Solana base58 pubkey"
        }
      },
      "tags": [
        "wallet-intel",
        "balances",
        "kyb",
        "counterparty",
        "aggregator"
      ],
      "input_schema": {
        "type": "object",
        "properties": {
          "wallet": {
            "type": "string",
            "description": "EVM 0x… or Solana base58 pubkey"
          }
        },
        "required": [
          "wallet"
        ]
      }
    },
    {
      "path": "/v1/investigate",
      "method": "POST",
      "price_usd": 1.77,
      "price": "$1.77",
      "category": "security",
      "description": "Agent-driven wallet due diligence. Multi-step LLM investigation: sanctions screen, on-chain history, identity correlation, counterparty graph. Delivered as signed markdown report + JSON sidecar with dual-chain anchor proof on Base + Solana. Async — returns job_id, poll /v1/investigate/status/{job_id}. ETA 5-10 min.",
      "description_ja": "エージェント駆動型のウォレット・デューデリジェンス。複数ステップのLLM調査として、制裁スクリーニング、オンチェーン履歴、アイデンティティ相関、カウンターパーティグラフを実行。署名済みmarkdownレポート＋JSONサイドカー＋Base/Solanaへのデュアルチェーンアンカー証明として納品します。非同期実行のため、job_idを返却し、/v1/investigate/status/{job_id}でポーリング。完了目安は5〜10分。",
      "input_schema": {
        "properties": {
          "address": {
            "type": "string",
            "description": "EVM 0x... or Solana base58 address to investigate."
          }
        },
        "type": "object",
        "required": [
          "address"
        ]
      },
      "tags": [
        "due-diligence",
        "kyb",
        "compliance",
        "agent",
        "async",
        "anchored-report"
      ]
    },
    {
      "path": "/v1/roast",
      "method": "POST",
      "price_usd": 0.05,
      "price": "$0.05",
      "category": "ai",
      "description": "Witty roast of any target — wallet, tweet, idea, code, anything. Powered by Claude on AWS Bedrock. Universal text input.",
      "description_ja": "任意のターゲット（ウォレット、ツイート、アイデア、コード、何でも）に対する辛口ロースト。AWS Bedrock上のClaudeで生成。任意のテキスト入力に対応します。",
      "input_schema": {
        "properties": {
          "target": {
            "type": "string",
            "maxLength": 8000,
            "minLength": 1,
            "description": "Anything to roast: wallet, tweet, idea, code, etc."
          }
        },
        "type": "object",
        "required": [
          "target"
        ]
      },
      "tags": [
        "roast",
        "llm",
        "viral",
        "shareable",
        "agent-flair"
      ]
    },
    {
      "path": "/v1/oracle",
      "method": "POST",
      "price_usd": 0.05,
      "price": "$0.05",
      "category": "ai",
      "description": "Yes/no oracle with dual-chain anchored verdict on Base + Solana. Returns MAYBE/YES/NO + explanation + on-chain proof (merkle_root, base_tx, solana_tx).",
      "description_ja": "Base＋Solanaへのデュアルチェーンアンカー判定付きYes/Noオラクル。MAYBE/YES/NO、説明、オンチェーン証明（merkle_root、base_tx、solana_tx）を返却します。",
      "input_schema": {
        "properties": {
          "question": {
            "type": "string",
            "maxLength": 1000,
            "minLength": 1,
            "description": "A yes/no question for the oracle."
          }
        },
        "type": "object",
        "required": [
          "question"
        ]
      },
      "tags": [
        "oracle",
        "llm",
        "anchored-verdict",
        "dual-chain",
        "decision"
      ]
    },
    {
      "path": "/v1/tldr",
      "method": "POST",
      "price_usd": 0.01,
      "price": "$0.01",
      "category": "content-extraction",
      "description": "Summarize a URL (fetched server-side) or pasted text into 3-5 concise bullets. Powered by Claude on AWS Bedrock.",
      "description_ja": "URL（サーバ側で取得）またはペースト済みテキストを、3〜5項目の簡潔な箇条書きに要約。AWS Bedrock上のClaudeで生成します。",
      "input_schema": {
        "properties": {
          "text": {
            "type": "string",
            "maxLength": 200000,
            "description": "Pasted text to summarize. Provide either text or url."
          },
          "url": {
            "type": "string",
            "maxLength": 2048,
            "description": "URL to fetch and summarize. Provide either text or url."
          }
        },
        "type": "object"
      },
      "tags": [
        "tldr",
        "summarization",
        "llm",
        "url-fetch"
      ]
    },
    {
      "path": "/v1/aura",
      "method": "POST",
      "price_usd": 0.01,
      "price": "$0.01",
      "category": "ai",
      "description": "Aura read of any target. Returns color (free-form), tier (S/A/B/C/D/F), score (0-9999), description. Screenshot-friendly viral output.",
      "description_ja": "任意のターゲットに対するオーラ判定。色（自由形式）、ティア（S/A/B/C/D/F）、スコア（0〜9999）、説明文を返却。スクリーンショット拡散に最適なフォーマット。",
      "input_schema": {
        "properties": {
          "target": {
            "type": "string",
            "maxLength": 4000,
            "minLength": 1,
            "description": "Anything to read the aura of."
          }
        },
        "type": "object",
        "required": [
          "target"
        ]
      },
      "tags": [
        "aura",
        "llm",
        "viral",
        "shareable",
        "vibe-check"
      ]
    },
    {
      "path": "/v1/grade",
      "method": "POST",
      "price_usd": 0.01,
      "price": "$0.01",
      "category": "ai",
      "description": "Academic letter grade with red-pen marginalia for anything. Returns letter_grade (A-F), marginalia bullets, summary.",
      "description_ja": "任意の対象に対する学業評価風レターグレード＋赤ペン批評。letter_grade（A〜F）、批評の箇条書き、サマリーを返却します。",
      "input_schema": {
        "properties": {
          "target": {
            "type": "string",
            "maxLength": 6000,
            "minLength": 1,
            "description": "Anything to grade."
          }
        },
        "type": "object",
        "required": [
          "target"
        ]
      },
      "tags": [
        "grade",
        "llm",
        "critique",
        "feedback"
      ]
    },
    {
      "path": "/v1/roll",
      "method": "POST",
      "price_usd": 0.001,
      "price": "$0.001",
      "category": "gaming",
      "description": "Cryptographically-random integer(s) over a caller-chosen range, signed by the treasury EOA (EIP-191). Drop-in VRF for game studios, raffles, DAO voter selection, NFT mint reveals. Optional 32-byte pre-commitment binds inputs into the signed payload to close front-running windows.",
      "description_ja": "呼び出し側が指定した範囲内の暗号学的乱数を、トレジャリーEOAでEIP-191署名のうえ返却。ゲームスタジオ、抽選、DAO投票者選定、NFTミントの結果生成向けのVRF互換実装です。オプションの32バイト事前コミットメントを署名ペイロードへ組み込むことで、フロントランニングの攻撃面を閉じます。",
      "input_schema": {
        "properties": {
          "low": {
            "type": "integer",
            "description": "Inclusive low bound of the integer range."
          },
          "high": {
            "type": "integer",
            "description": "Inclusive high bound. Must be >= low."
          },
          "count": {
            "type": "integer",
            "maximum": 100,
            "minimum": 1,
            "description": "How many integers to sample. 1-100.",
            "default": 1
          },
          "commitment": {
            "type": "string",
            "description": "Optional 32-byte hex pre-commitment from the caller. Included in the signed payload, so the server cannot have chosen the result after seeing the caller's downstream intent."
          },
          "label": {
            "type": "string",
            "maxLength": 200,
            "description": "Optional caller-defined tag (e.g. 'treasure_drop_42'). Included verbatim in the signed payload."
          }
        },
        "type": "object",
        "required": [
          "low",
          "high"
        ]
      },
      "tags": [
        "vrf",
        "rng",
        "randomness",
        "gaming",
        "raffle",
        "signed",
        "verifiable"
      ]
    },
    {
      "path": "/v1/ledger/summary",
      "method": "POST",
      "price_usd": 0.01,
      "price": "$0.01",
      "category": "finance",
      "description": "x402 spend accounting for any Base wallet — totals, per-service breakdown, and daily series reconstructed from on-chain USDC transfers at request time. Services labeled via a versioned registry; unregistered x402 payments detected by EIP-3009 calldata.",
      "description_ja": "任意のBaseウォレットのx402支出会計 — オンチェーンのUSDC送金からリクエスト時に集計・サービス別内訳・日次推移を再構築します。サービス名はバージョン管理されたレジストリで判別し、未登録のx402支払いはEIP-3009コールデータで検出します。",
      "input_schema": {
        "properties": {
          "wallet": {
            "type": "string",
            "description": "EVM address (Base) whose x402 spend to reconstruct."
          },
          "from": {
            "type": "string",
            "description": "ISO date or datetime, start of range. Default: 30 days before `to`."
          },
          "to": {
            "type": "string",
            "description": "ISO date or datetime, end of range. Default: now."
          },
          "direction": {
            "type": "string",
            "enum": [
              "outbound",
              "inbound",
              "both"
            ],
            "description": "outbound = spend, inbound = revenue.",
            "default": "outbound"
          },
          "min_amount": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Minimum USDC per transfer, e.g. 0.001."
          },
          "group_by": {
            "type": "string",
            "enum": [
              "service",
              "recipient",
              "day"
            ],
            "default": "service"
          },
          "include_unfiltered": {
            "type": "boolean",
            "description": "Include non-x402 USDC transfers as category=other_transfer.",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "wallet"
        ]
      },
      "tags": [
        "accounting",
        "expenses",
        "x402",
        "usdc",
        "ledger"
      ]
    },
    {
      "path": "/v1/ledger/report",
      "method": "POST",
      "price_usd": 0.35,
      "price": "$0.35",
      "category": "finance",
      "description": "Signed x402 expense report (markdown + CSV) for any Base wallet — deterministic, EIP-191 signed, SHA-256 anchored to Base + Solana mainnet. Async: returns job_id, poll /v1/ledger/report/{job_id}. Audit artifact, not just a CSV export.",
      "description_ja": "任意のBaseウォレットの署名付きx402経費レポート（markdown + CSV）— 決定論的生成、EIP-191署名、SHA-256をBaseとSolanaメインネットにアンカー。非同期：job_idを返却し /v1/ledger/report/{job_id} をポーリング。単なるCSV出力ではなく監査アーティファクトです。",
      "input_schema": {
        "properties": {
          "wallet": {
            "type": "string",
            "description": "EVM address (Base) whose x402 spend to reconstruct."
          },
          "from": {
            "type": "string",
            "description": "ISO date or datetime, start of range. Default: 30 days before `to`."
          },
          "to": {
            "type": "string",
            "description": "ISO date or datetime, end of range. Default: now."
          },
          "direction": {
            "type": "string",
            "enum": [
              "outbound",
              "inbound",
              "both"
            ],
            "description": "outbound = spend, inbound = revenue.",
            "default": "outbound"
          },
          "min_amount": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Minimum USDC per transfer, e.g. 0.001."
          },
          "group_by": {
            "type": "string",
            "enum": [
              "service",
              "recipient",
              "day"
            ],
            "default": "service"
          },
          "include_unfiltered": {
            "type": "boolean",
            "description": "Include non-x402 USDC transfers as category=other_transfer.",
            "default": false
          },
          "format": {
            "type": "string",
            "enum": [
              "markdown",
              "csv",
              "both"
            ],
            "description": "Which report files to produce. Default both.",
            "default": "both"
          },
          "title": {
            "type": "string",
            "description": "Report title; appears in the markdown header."
          },
          "prepared_for": {
            "type": "string",
            "description": "Optional client name for the report header."
          }
        },
        "type": "object",
        "required": [
          "wallet"
        ]
      },
      "tags": [
        "accounting",
        "expenses",
        "report",
        "signed",
        "anchored",
        "audit"
      ]
    }
  ],
  "discovery": {
    "mcp_server": "https://www.npmjs.com/package/anchor-x402-mcp",
    "github": {
      "server": "https://github.com/hypeprinter007-stack/anchor-x402",
      "mcp": "https://github.com/hypeprinter007-stack/anchor-x402-mcp"
    },
    "trust_portal": "https://anchor-x402.com/trust/",
    "status_page": "https://anchor-x402.betteruptime.com",
    "agent_card": "https://anchor-x402.com/.well-known/agent-card.json",
    "llms_txt": "https://anchor-x402.com/llms.txt"
  },
  "contact": {
    "general": "hello@anchor-x402.com",
    "security": "security@anchor-x402.com"
  }
}
