{"openapi":"3.1.0","info":{"title":"TWZRD Agent Intel","version":"0.5.13","summary":"Pre-spend trust for AI agents on Solana x402: free allow|warn|block ReadinessCard; first paid hop GET /v1/intel/quick 0.001 USDC; optional V7 /trust 0.05; opt-in settle-rail attach.","description":"Pre-spend trust layer for AI agents paying over x402 on Solana. Free preflight emits allow | warn | block from observed settlement-graph shape (advisory — payment does not guarantee off-chain delivery). First paid hop is GET /v1/intel/quick/{seller_payTo} at 0.001 USDC (score-only teaser). Optional portable V7 receipt is GET /v1/intel/trust/{seller_payTo} at 0.05 USDC. Resource discovery and optional gas-sponsored settlement when clients pin feePayer from GET /supported (GWRLgRB6diC2zG9BaoGJsan9T8JvJCk7usFruiefnfMP). Not a wallet or payment network. Path A: bind the accepts[] entry you pay, starting at /quick. Settle rail: opt-in /supported feePayer. Path B = buyer AutoGate refuse (signer=0). Buyer gate package: twzrd-x402-gate@0.12.0. Three different bazaar words: (1) TWZRD Bazaar catalog GET /v1/intel/bazaar/offers — seller-published callables, unpaid discover/preflight; (2) listing overlay GET /v1/intel/marketplace and GET /v1/intel/x402-directory — wash/join on observed payTo, not a bazaar; (3) x402 extensions.bazaar on a 402 — routeTemplate metadata, not the catalog.","first_paid_hop":{"method":"GET","path":"/v1/intel/quick/{seller_payTo}","price_usdc":0.001,"note":"Own-wallet smoke uses GFpLvoc; real pays put the seller payTo in the path. The selected accepts[] entry determines the network and receiving payTo.","url":"https://intel.twzrd.xyz/v1/intel/quick/GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"contact":{"name":"TWZRD","url":"https://twzrd.xyz","email":"support@twzrd.xyz"},"x-guidance":"TWZRD is pre-spend trust (horizontal); opt-in settle-rail is secondary — not a wallet or payment network. Free preflight: allow|warn|block (advisory). Path B = buyer AutoGate refuse (pre-sign); settle rail = /supported facilitator (not Path B). Recommended sequence: (1) GET /v1/intel/resources (SOT) + merchant_card + POST /v1/intel/preflight; (2) Path A first paid hop GET /v1/intel/quick/{pubkey} (0.001 USDC, multi-rail 402); (3) optional portable V7 GET /v1/intel/trust/{pubkey} (0.05 USDC); (4) settle-rail opt-in: GET /supported (feePayer GWRLgRB6diC2zG9BaoGJsan9T8JvJCk7usFruiefnfMP) then POST /verify + /settle for twzrd_receipt + merchant_attach; (5) POST /v1/receipts/verify. Install buyer gate: npm i twzrd-x402-gate@0.12.0. Payer leaderboard is secondary research, not the default buying path."},"tags":[{"name":"x402 Facilitator (Path B)","description":"Opt-in settle-through-TWZRD: /supported feePayer GWRLgRB6diC2zG9BaoGJsan9T8JvJCk7usFruiefnfMP, /verify, /settle with V7 receipt + merchant_attach."},{"name":"Paid Trust Intel (Path A)","description":"First paid hop GET /v1/intel/quick 0.001 USDC; optional V7 /trust 0.05 and merchant mint. Each 402 accepts[] entry names its own extra.feePayer. Down-only screening evidence."},{"name":"Free Preflight Screening","description":"Free allow/warn/block preflight and merchant_card wash/conformance."},{"name":"Resource Directory (SOT)","description":"Resource join single source of truth: listed | live_402 callables."},{"name":"Solana Market Intel","description":"x402-paid market intel routes (free over MCP)."},{"name":"Receipts","description":"V7 receipt example + offline verify of V5, V6, and V7."},{"name":"Discovery & Ops","description":"Health, descriptors, badges, secondary research."}],"servers":[{"url":"https://intel.twzrd.xyz"}],"components":{"securitySchemes":{"twzrdReceipt":{"type":"apiKey","in":"header","name":"X-TWZRD-Receipt","description":"Marker for routes gated by an active TWZRD Receipt (Silver+). Inference resolves entitlement from requestBody.wallet via the receipt resolver."},"twzrdCaller":{"type":"apiKey","in":"header","name":"X-Twzrd-Caller","description":"Required for the legacy refuse-receipt mint (202). Integration token <name>@<version>. Not an account login. Signed-refusal bodies (challenge_hash + signature) do not need this header."}}},"x402":{"version":2,"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","accepts":[{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","pay_to":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","pay_to":"0xfB9819456bd9248A9D3c9E12F4cb7bBda5fc2578"}],"path_b_fee_payer":"GWRLgRB6diC2zG9BaoGJsan9T8JvJCk7usFruiefnfMP","descriptor":"https://intel.twzrd.xyz/.well-known/x402","receipt":{"type":"twzrd.receipt.v7","supported_leaf_versions":["v5","v6","v7"],"kind":"portable-signed","verifiable":true,"leaf_hash":"keccak256","signature":{"algorithm":"ed25519","key_id":"twzrd-receipt-ed25519-v2","public_key":"Ak5SQwHpuQAqU7ty7ZWX7qgF39A9yi72c22KNn8sHzvS","public_key_encoding":"base58","signed_message":"raw 32 bytes of the keccak256 leaf"},"legacy_verification":{"key_ids":["twzrd-receipt-ed25519-v1"],"public_keys":["9V6Pn19kiUA5Rn6JpQfNduanvGt2aXGwsarosNfa2Ldf","96X11cfazxwYpg2g1UodocVX9ZYpXEowDZNtKv2xRVhc"],"mode":"verify-only"},"note":"Portable keccak256 leaf (tamper-evidence) PLUS an Ed25519 signature over the leaf bytes (authenticity). Verify OFFLINE: recompute the keccak leaf from the preimage AND check the signature against the published public_key above. Unsigned or wrong-key receipts are rejected. The settlement_tx anchor remains independently checkable on-chain.","verify_endpoint":"https://intel.twzrd.xyz/v1/receipts/verify","pubkey_endpoint":"https://intel.twzrd.xyz/.well-known/twzrd-receipt-pubkey"}},"paths":{"/v1/intel/quick/{pubkey}":{"get":{"operationId":"get_v1_intel_quick_pubkey","summary":"Fetch a quick seller risk score by pubkey","description":"Seller wash risk and wallet reputation for a Solana x402 merchant: wash label, fleet %, payer count, plus tier + score. Cheap $0.001 entry before a larger payment. No signed V7 receipt. x402-paid: 0.001 USDC (1000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported.","tags":["Paid Trust Intel (Path A)"],"responses":{"200":{"description":"Paid response (JSON) including settlement tx.","content":{"application/json":{"schema":{"type":"object","description":"What the agent receives for the 0.001 USDC payment.","properties":{"pubkey":{"type":"string"},"tier":{"type":"string","description":"Bronze|Silver|Gold|Platinum."},"score":{"type":"number"},"wash_label":{"type":"string","description":"Seller wash risk label (e.g. wash_shaped, organic)."},"fleet_pct":{"type":"number","description":"Share of revenue from heavy-fleet payers."},"active_payers":{"type":"integer","description":"Distinct observed payers in the corpus window."}}}}}},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"1000","price_usdc":0.001,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}],"offers":[{"intent":"charge","method":"x402","amount":"1000","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","description":"USDC (base units, Solana mainnet mint) via x402; challenge served as HTTP 402."}]},"parameters":[{"name":"pubkey","in":"path","required":true,"description":"CRITICAL: Do NOT send the literal strings ':pubkey', '{pubkey}', ':solana_address', or '{wallet}'. You MUST substitute a valid base58 Solana wallet address (32-44 chars). Source it from accepts[].payTo on a 402 challenge or from free preflight seller_wallet.","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","minLength":32,"maxLength":44,"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]},"post":{"operationId":"post_v1_intel_quick_pubkey","summary":"Fetch quick seller risk score by pubkey","description":"Seller wash risk and wallet reputation for a Solana x402 merchant: wash label, fleet %, payer count, plus tier + score. Cheap $0.001 entry before a larger payment. No signed V7 receipt. x402-paid: 0.001 USDC (1000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported. POST is accepted as a method alias; a JSON body is ignored. x402 payment must still be supplied in the X-Payment header.","tags":["Paid Trust Intel (Path A)"],"responses":{"200":{"description":"Paid response (JSON) including settlement tx.","content":{"application/json":{"schema":{"type":"object","description":"What the agent receives for the 0.001 USDC payment.","properties":{"pubkey":{"type":"string"},"tier":{"type":"string","description":"Bronze|Silver|Gold|Platinum."},"score":{"type":"number"},"wash_label":{"type":"string","description":"Seller wash risk label (e.g. wash_shaped, organic)."},"fleet_pct":{"type":"number","description":"Share of revenue from heavy-fleet payers."},"active_payers":{"type":"integer","description":"Distinct observed payers in the corpus window."}}}}}},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"1000","price_usdc":0.001,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}],"offers":[{"intent":"charge","method":"x402","amount":"1000","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","description":"USDC (base units, Solana mainnet mint) via x402; challenge served as HTTP 402."}]},"parameters":[{"name":"pubkey","in":"path","required":true,"description":"CRITICAL: Do NOT send the literal strings ':pubkey', '{pubkey}', ':solana_address', or '{wallet}'. You MUST substitute a valid base58 Solana wallet address (32-44 chars). Source it from accepts[].payTo on a 402 challenge or from free preflight seller_wallet.","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","minLength":32,"maxLength":44,"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/trust/{pubkey}":{"get":{"operationId":"get_v1_intel_trust_pubkey","summary":"Fetch paid counterparty trust by pubkey","description":"If 0.05 USDC is too much, first paid hop is GET /v1/intel/quick/{pubkey} at 0.001 USDC (score-only). This route is the portable V7 receipt: x402 counterparty trust, a live reputation check before payment for any Solana wallet, scored from observed wallet age, payment history, execution evidence, and counterparty breadth. Proven on mainnet. Optional query: seller_wallet (the seller you are about to pay; arms the settle-time trust gate -- settlement is refused, charged:false, if that seller scores below threshold; the scored pubkey itself is never gated). x402-paid: 0.05 USDC (50000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported.","tags":["Paid Trust Intel (Path A)"],"responses":{"200":{"description":"Paid response (JSON) including settlement tx.","content":{"application/json":{"schema":{"type":"object","description":"What the agent receives for the 0.05 USDC payment.","properties":{"pubkey":{"type":"string","description":"The scored wallet (base58)."},"score":{"type":"number","description":"Renormalized 0-100 trust score (the value the V7 receipt attests)."},"score_raw":{"type":"number","description":"Canonical pre-renormalization score."},"score_version":{"type":"string","description":"Scoring model version, e.g. intel_renorm_v1_1."},"confidence":{"type":"number","description":"0..1 share of axis weight backed by evidence."},"breadth_factor":{"type":"number","description":"Counterparty-breadth multiplier."},"wash_factor":{"type":"number","description":"Circular-flow wash discount (1.0 clean)."},"components":{"type":"object","description":"Per-axis trust components."},"twzrd_receipt":{"type":"object","description":"Portable Ed25519-signed V7 receipt (verify offline at /v1/receipts/verify).","properties":{"leaf":{"type":"string","description":"Hex keccak256 receipt leaf."},"preimage":{"type":"object","description":"Fields that hash to the leaf."},"signature":{"type":"string","description":"Ed25519 signature over the leaf."},"signing_pubkey":{"type":"string","description":"Signer pubkey (base58)."}}}}}}}},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"50000","price_usdc":0.05,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}],"offers":[{"intent":"charge","method":"x402","amount":"50000","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","description":"USDC (base units, Solana mainnet mint) via x402; challenge served as HTTP 402."}]},"parameters":[{"name":"pubkey","in":"path","required":true,"description":"CRITICAL: Do NOT send the literal strings ':pubkey', '{pubkey}', ':solana_address', or '{wallet}'. You MUST substitute a valid base58 Solana wallet address (32-44 chars). Source it from accepts[].payTo on a 402 challenge or from free preflight seller_wallet. Score this seller's accepts[].payTo, not identity proof.","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","minLength":32,"maxLength":44,"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},{"name":"seller_wallet","in":"query","required":false,"schema":{"type":"string"},"description":"Optional seller counterparty (base58) you are about to pay -- distinct from the scored {pubkey}. When set (or sent as the X-TWZRD-Seller-Wallet header), the settle-time trust gate evaluates this wallet and refuses to settle (402, charged:false, no on-chain tx) if it scores below threshold. The scored subject itself is never gated."}]},"post":{"operationId":"post_v1_intel_trust_pubkey","summary":"Fetch paid counterparty trust by pubkey","description":"If 0.05 USDC is too much, first paid hop is GET /v1/intel/quick/{pubkey} at 0.001 USDC (score-only). This route is the portable V7 receipt: x402 counterparty trust, a live reputation check before payment for any Solana wallet, scored from observed wallet age, payment history, execution evidence, and counterparty breadth. Proven on mainnet. Optional query: seller_wallet (the seller you are about to pay; arms the settle-time trust gate -- settlement is refused, charged:false, if that seller scores below threshold; the scored pubkey itself is never gated). x402-paid: 0.05 USDC (50000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported. POST is accepted as a method alias; a JSON body is ignored. x402 payment must still be supplied in the X-Payment header.","tags":["Paid Trust Intel (Path A)"],"responses":{"200":{"description":"Paid response (JSON) including settlement tx.","content":{"application/json":{"schema":{"type":"object","description":"What the agent receives for the 0.05 USDC payment.","properties":{"pubkey":{"type":"string","description":"The scored wallet (base58)."},"score":{"type":"number","description":"Renormalized 0-100 trust score (the value the V7 receipt attests)."},"score_raw":{"type":"number","description":"Canonical pre-renormalization score."},"score_version":{"type":"string","description":"Scoring model version, e.g. intel_renorm_v1_1."},"confidence":{"type":"number","description":"0..1 share of axis weight backed by evidence."},"breadth_factor":{"type":"number","description":"Counterparty-breadth multiplier."},"wash_factor":{"type":"number","description":"Circular-flow wash discount (1.0 clean)."},"components":{"type":"object","description":"Per-axis trust components."},"twzrd_receipt":{"type":"object","description":"Portable Ed25519-signed V7 receipt (verify offline at /v1/receipts/verify).","properties":{"leaf":{"type":"string","description":"Hex keccak256 receipt leaf."},"preimage":{"type":"object","description":"Fields that hash to the leaf."},"signature":{"type":"string","description":"Ed25519 signature over the leaf."},"signing_pubkey":{"type":"string","description":"Signer pubkey (base58)."}}}}}}}},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"50000","price_usdc":0.05,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}],"offers":[{"intent":"charge","method":"x402","amount":"50000","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","description":"USDC (base units, Solana mainnet mint) via x402; challenge served as HTTP 402."}]},"parameters":[{"name":"pubkey","in":"path","required":true,"description":"CRITICAL: Do NOT send the literal strings ':pubkey', '{pubkey}', ':solana_address', or '{wallet}'. You MUST substitute a valid base58 Solana wallet address (32-44 chars). Source it from accepts[].payTo on a 402 challenge or from free preflight seller_wallet. Score this seller's accepts[].payTo, not identity proof.","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","minLength":32,"maxLength":44,"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},{"name":"seller_wallet","in":"query","required":false,"schema":{"type":"string"},"description":"Optional seller counterparty (base58) you are about to pay -- distinct from the scored {pubkey}. When set (or sent as the X-TWZRD-Seller-Wallet header), the settle-time trust gate evaluates this wallet and refuses to settle (402, charged:false, no on-chain tx) if it scores below threshold. The scored subject itself is never gated."}]}},"/v1/intel/merchant/{pubkey}":{"get":{"operationId":"get_v1_intel_merchant_pubkey","summary":"Fetch paid merchant track record by pubkey","description":"Is this seller safe to pay? Signed merchant track-record receipt for a Solana receive wallet (pay_to): evidence for that counterparty risk call, not a safety verdict. Attests observed receive-side graph quality (unique payers, tx volume, wash labels) plus a portable V7 receipt. attestation_kind=merchant_track_record - NOT a payer trust score. Zero inbound -> 422 charged:false (settle-when-deliverable). Free teaser: GET /v1/intel/merchant_card/{wallet}. x402-paid: 0.05 USDC (50000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported.","tags":["Paid Trust Intel (Path A)"],"responses":{"200":{"description":"Paid response (JSON) including settlement tx.","content":{"application/json":{"schema":{"type":"object","description":"What the agent receives for the 0.05 USDC payment.","properties":{"pubkey":{"type":"string"},"attestation_kind":{"type":"string","description":"Always merchant_track_record."},"merchant_track_record":{"type":"object","description":"Full provider_reputation_v1 inbound track record."},"demand_quality_snapshot":{"type":"object","description":"Compatibility field containing the observed inbound payment-graph snapshot at mint time; not customer demand proof."},"twzrd_receipt":{"type":"object","description":"Portable Ed25519-signed V7 receipt (verify offline)."}}}}}},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"50000","price_usdc":0.05,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"offers":[{"intent":"charge","method":"x402","amount":"50000","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","description":"0.05 USDC (base units, Solana mainnet mint) via x402."}]},"parameters":[{"name":"pubkey","in":"path","required":true,"description":"CRITICAL: Do NOT send the literal strings ':pubkey', '{pubkey}', ':solana_address', or '{wallet}'. You MUST substitute a valid base58 Solana wallet address (32-44 chars). Source it from accepts[].payTo on a 402 challenge or from free preflight seller_wallet. Merchant accepts[].payTo (not a mint or program id).","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","minLength":32,"maxLength":44,"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]},"post":{"operationId":"post_v1_intel_merchant_pubkey","summary":"Fetch paid merchant track record by pubkey","description":"Is this seller safe to pay? Signed merchant track-record receipt for a Solana receive wallet (pay_to): evidence for that counterparty risk call, not a safety verdict. Attests observed receive-side graph quality (unique payers, tx volume, wash labels) plus a portable V7 receipt. attestation_kind=merchant_track_record - NOT a payer trust score. Zero inbound -> 422 charged:false (settle-when-deliverable). Free teaser: GET /v1/intel/merchant_card/{wallet}. x402-paid: 0.05 USDC (50000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported. POST is accepted as a method alias; a JSON body is ignored. x402 payment must still be supplied in the X-Payment header.","tags":["Paid Trust Intel (Path A)"],"responses":{"200":{"description":"Paid response (JSON) including settlement tx.","content":{"application/json":{"schema":{"type":"object","description":"What the agent receives for the 0.05 USDC payment.","properties":{"pubkey":{"type":"string"},"attestation_kind":{"type":"string","description":"Always merchant_track_record."},"merchant_track_record":{"type":"object","description":"Full provider_reputation_v1 inbound track record."},"demand_quality_snapshot":{"type":"object","description":"Compatibility field containing the observed inbound payment-graph snapshot at mint time; not customer demand proof."},"twzrd_receipt":{"type":"object","description":"Portable Ed25519-signed V7 receipt (verify offline)."}}}}}},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"50000","price_usdc":0.05,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"pubkey","in":"path","required":true,"description":"CRITICAL: Do NOT send the literal strings ':pubkey', '{pubkey}', ':solana_address', or '{wallet}'. You MUST substitute a valid base58 Solana wallet address (32-44 chars). Source it from accepts[].payTo on a 402 challenge or from free preflight seller_wallet. Merchant accepts[].payTo (not a mint or program id).","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","minLength":32,"maxLength":44,"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/reality-check":{"get":{"operationId":"get_v1_intel_reality_check","summary":"Fetch the x402 Reality Check PDF","description":"TWZRD x402 Reality Check market-intelligence PDF (Aug 2026). Self-serve 0.05 USDC download settling to the TWZRD intel payTo. x402-paid: 0.05 USDC (50000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported.","tags":["Paid Trust Intel (Path A)"],"responses":{"200":{"description":"Paid Reality Check PDF stream after x402 settlement.","content":{"application/pdf":{"schema":{"type":"string","format":"binary","description":"application/pdf — TWZRD_Reality_Check_Aug2026.pdf"}}}},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"50000","price_usdc":0.05,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}],"offers":[{"intent":"charge","method":"x402","amount":"50000","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","description":"USDC (base units, Solana mainnet mint) via x402; challenge served as HTTP 402."}]}}},"/v1/intel/verify-endpoint":{"post":{"operationId":"post_v1_intel_verify_endpoint","summary":"Verify a seller x402 endpoint with a signed receipt","description":"SELLER-SIDE endpoint verification with a portable signed receipt. Probes your x402 surface (discovery docs, unpaid-402 conformance, wash screen on each resolved payTo) and returns an Ed25519 AgentReadinessReceipt of what was observed - including a failing result. The payment buys the work and the artifact, never the verdict: basis is endpoint_conformance and not_a_trust_vouch is always true, so a 'ready' card is not a recommendation to pay the seller and does not affect any ranking. Free unsigned equivalent: POST /v1/agent-readiness. Verify offline with npm/PyPI twzrd-receipt-verifier. x402-paid: 0.05 USDC (50000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported.","tags":["Discovery & Ops"],"responses":{"200":{"description":"Paid response (JSON) including settlement tx."},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"50000","price_usdc":0.05,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]}}},"/v1/intel/delivery-watch":{"post":{"operationId":"post_v1_intel_delivery_watch","summary":"Create a paid 30-day delivery watch on your resource","description":"SELLER-FUNDED delivery watch. Pay once (from 1.00 USDC, quoted from your live 402: 30 x your unit price x 1.5, min 1.00) and TWZRD's house buyer PAYS YOUR resource once a day for 30 days with a real x402 settlement, publishing every outcome at GET /v1/intel/delivery-watch/{order_id} with an embeddable badge 'N of M paid probes delivered'. Money buys the probes and the public record, never the verdict: a failing watch is published as-is, and it is not delivery_verified, not a trust vouch, not a ranking input. Free peek first: no 402, no unit price, or a price above the 0.25 USDC probe cap is refused unpaid. x402-paid: 1.0 USDC (1000000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported.","tags":["Discovery & Ops"],"responses":{"200":{"description":"Paid response (JSON) including settlement tx."},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"1000000","price_usdc":1.0,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]}}},"/v1/intel/read-page":{"post":{"operationId":"post_v1_intel_read_page","summary":"Fetch a URL as Markdown with a signed receipt","description":"Signed page read. Returns the URL as clean Markdown plus an Ed25519 receipt binding the Markdown's SHA-256, the fetching provider, and the observation time, so an agent can later prove what it read. The receipt attests the provider's observation (origin_signed=false), not the page's truth. A fetch that fails is not charged. Verify the receipt against the published TWZRD receipt key. x402-paid: 0.005 USDC (5000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported.","tags":["Discovery & Ops"],"responses":{"200":{"description":"Paid response (JSON) including settlement tx."},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"5000","price_usdc":0.005,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/v1/intel/checkout-brief":{"get":{"operationId":"get_v1_intel_checkout_brief","summary":"Fetch a listing checkout brief","description":"Checkout brief for the one published listing. 0.001 USDC. Query product must be that card's next_hop URL. Requires cart_hash; declared_unit_price is required when the card advertises a price. Does not pay the merchant. After payment, open next_hop for Shop Pay. x402-paid: 0.001 USDC (1000 base units) on Solana mainnet. Path A: bind to the accepts[] entry whose extra.feePayer you intend to pay; settle-rail settlement requires that feePayer to match GET /supported.","tags":["Discovery & Ops"],"responses":{"200":{"description":"Paid response (JSON) including settlement tx."},"402":{"description":"Payment required (x402). Returns payment-required header."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}},"x402":{"amount":"1000","price_usdc":0.001,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","scheme":"exact","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}],"offers":[{"intent":"charge","method":"x402","amount":"1000","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","description":"USDC (base units, Solana mainnet mint) via x402; challenge served as HTTP 402."}]},"parameters":[{"name":"product","in":"query","required":true,"schema":{"type":"string"},"description":"https URL of the product page named by the published card's next_hop."},{"name":"cart_hash","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{64}$"},"description":"64 lowercase hex chars the caller computes over its own cart. Copied into the paid body; not verified against any cart."},{"name":"declared_unit_price","in":"query","required":false,"schema":{"type":"string"},"description":"Unit price in USD the caller was quoted. Required when the card advertises a price; above it is 409 before any 402."}]}},"/v1/intel/marketplace":{"get":{"operationId":"get_v1_intel_marketplace","summary":"List indexed x402 services with wash risk","description":"Free wash overlay on Solana payTo wallets TWZRD has joined to ingested listings (PayAI pager first_accept_solana, CDP, Agentic). status=not_indexed; coverage_complete=false. Not a bazaar and not GET /v1/intel/bazaar/offers. Official third-party listing indexes remain their own source of truth. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"flagged_only","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Return only wash-flagged listings."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100},"description":"Max directory rows to return (1-200)."}]}},"/v1/intel/bazaar/offers":{"get":{"operationId":"get_v1_intel_bazaar_offers","summary":"Fetch TWZRD Bazaar catalog offers","description":"TWZRD Bazaar v0 catalog: seller-published callables (aisles data/compute/shop/attest). Unpaid discover + cart preflight. Not GET /v1/intel/marketplace and not x402 extensions.bazaar on a 402. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"aisle","in":"query","required":false,"schema":{"type":"string"},"description":"Optional aisle filter: data, compute, shop, or attest."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size. Server clamps via the bazaar listing surface."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0},"description":"Pagination offset."}]}},"/v1/intel/bazaar/schema":{"get":{"operationId":"get_v1_intel_bazaar_schema","summary":"Fetch TWZRD Bazaar offer JSON Schema","description":"JSON Schema for a TWZRD Bazaar v0 offer. Distinct from the marketplace overlay. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}}}},"/v1/intel/sellers":{"get":{"operationId":"get_v1_intel_sellers","summary":"List observed Solana x402 sellers","description":"Free corpus seller directory: paginated list of scoreable Solana receive wallets from the live x402_solana_events settlement graph (90d). Each row carries wash_label, wash_flagged, provider_reputation_tier, demand_shape, and links to preflight/merchant_card/trust. Ranking is unique_payers DESC - wash flags are always present and never hidden. Query: min_payers, limit, offset, wash_flagged_only. Distinct from the TWZRD Bazaar catalog (/v1/intel/bazaar/offers) and from listing overlays (marketplace / x402-directory). Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"min_payers","in":"query","required":false,"schema":{"type":"integer","default":1},"description":"Minimum distinct payers in the 90d corpus window (scoreable floor)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50},"description":"Page size (1-200)."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0},"description":"Pagination offset."},{"name":"wash_flagged_only","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Return only wash_flagged=true rows (post-enrich filter)."}]}},"/v1/intel/resources":{"get":{"operationId":"get_v1_intel_resources","summary":"List callable x402 resources with seller risk","description":"Free resource join SOT: one row per callable x402 resource_url from the persisted service catalog, joined to 90d settlement-graph reputation on pay_to when present. Discovery claims (listed|live_402) are separate from counterparty payment trust and from delivery verification (delivery is not_verified until a paid proof exists). Query: limit, offset, live_402_only, include_inactive, min_unique_payers. Use this for discover-then-preflight; use /v1/intel/sellers for wallet-only inventory. Free, no payment, no auth.","tags":["Resource Directory (SOT)"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50},"description":"Page size (1-200)."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0},"description":"Pagination offset."},{"name":"live_402_only","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Only resources with an independently observed live 402 probe."},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Include inactive catalog rows."},{"name":"min_unique_payers","in":"query","required":false,"schema":{"type":"integer","default":0},"description":"Post-filter: require settlement-graph unique_payers_90d >= N on pay_to."},{"name":"delivered_only","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Only resources whose latest REAL paid house probe delivered (paid AND 200 AND settlement_tx). Unprobed rows are excluded, never assumed ok."}]}},"/v1/intel/x402-directory":{"get":{"operationId":"get_v1_intel_x402_directory","summary":"List ingested x402 services with wash risk","description":"Free wash overlay on ingested PayAI/CDP/Agentic listings, indexed by payTo. PayAI pager walks official pagination; status=not_indexed; coverage_complete=false. Not a complete catalog. query params: flagged_only, limit (1-500), source. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"flagged_only","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Return only wash-flagged listings."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100},"description":"Max directory rows to return (1-500)."},{"name":"source","in":"query","required":false,"schema":{"type":"string"},"description":"Source filter: payai_bazaar, cdp_bazaar, agentic_market, or omit for all."},{"name":"network","in":"query","required":false,"schema":{"type":"string"},"description":"Chain-family filter, applied BEFORE limit: 'base' or 'eip155:8453', 'solana' or the CAIP-2 genesis. Testnets stay distinct ('base-sepolia' never matches 'base'). Omit for all. The snapshot is ordered Solana-first, so without this a default-limit caller sees an all-Solana catalog."}]}},"/v1/intel/x402-demo":{"get":{"operationId":"get_v1_intel_x402_demo","summary":"Run the sample x402 trust flow","description":"Free, sample-only homepage demo: GET opens a default bundle; POST accepts a custom preflight payload. Composes a LIVE preflight ReadinessCard + a SAMPLE signed V7 receipt in one call. charged:false, settles nothing, receipt_scope:sample_only. Pointers to the real paid trust endpoint + verify endpoint included. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}}}},"/v1/intel/demo-gate":{"get":{"operationId":"get_v1_intel_demo_gate","summary":"Run the no-spend buyer gate demo","description":"Free no-spend transcript of the buyer-side x402 trust gate for HTTP agents: a deterministic recorded example, not a live run, where the block path aborts and a wallet/signer is never contacted (ok:true, mode:no_spend). Spends nothing, contacts no wallet, needs no human. Optional query/body: integration, run_id (echo them in your own transcript). HTTP twin of the twzrd_demo_gate MCP tool.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}}}},"/v1/intel/preflight":{"post":{"operationId":"post_v1_intel_preflight","summary":"Run an x402 seller preflight","description":"Free check before paying an x402 resource: preflight ReadinessCard with can_spend / trust_score / proof / caveats / decision for the seller you are about to pay. Down-only signal: it flags risky counterparties, it does not vouch for good ones. The one-command demo. Free, no payment, no auth.","tags":["Free Preflight Screening"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Resource an agent is about to pay, plus its intent.","properties":{"resource_name":{"type":"string","description":"Human name of the x402 resource."},"resource_url":{"type":"string","description":"URL of the x402 resource."},"seller_wallet":{"type":"string","description":"Seller (payTo) wallet, base58."},"buyer_wallet":{"type":"string","description":"The paying agent's wallet, base58."},"price_usdc":{"type":"number","description":"Quoted price in USDC."},"agent_intent":{"type":"string","description":"What the agent wants to do (e.g. swap_quote)."},"marketplace_score":{"type":"integer","description":"Optional self-reported marketplace quality 0-100."}}}}}}}},"/v1/intel/merchant_card/{wallet}":{"get":{"operationId":"get_v1_intel_merchant_card_wallet","summary":"Fetch a merchant risk card by wallet","description":"Free merchant card, the first-pass counterparty risk check before paying a Solana seller: observed receive-side graph quality around a wallet (not identity or demand proof). Path key is pay_to wallet or registry resource_id (PR-3). wash_flagged for AutoGate refuse; catalog join; resource map claim resource_listing_only. Wash label, fleet %, and payer counts are GET /v1/intel/quick ($0.001). Paid twin: GET /v1/intel/merchant. Optional X-Twzrd-Caller (<integration>@<version> or <package>/<version>) is recorded for later refuse attribution; ack is caller_recorded plus X-Twzrd-Caller-Recorded: 1 (raw token is not echoed).","tags":["Free Preflight Screening"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"wallet","in":"path","required":true,"description":"CRITICAL: Do NOT send the literal strings ':wallet', '{wallet}', ':solana_address', or '{wallet}'. You MUST substitute a valid base58 Solana wallet address (32-44 chars). Source it from accepts[].payTo on a 402 challenge or from free preflight seller_wallet.","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","minLength":32,"maxLength":44,"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},{"name":"resource_id","in":"query","required":false,"schema":{"type":"string"},"description":"Registry resource_id to score instead of the path value. Overrides the path key when set; the path itself also accepts a Solana pay_to, a Base 0x address, or a resource_id."},{"name":"full","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"If true, include catalog services. Default is wash_flagged + decision only."},{"name":"X-Twzrd-Caller","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Opt-in self-declared caller identity so a later client-side wash refuse can be joined. Preferred: <integration>@<version> (e.g. clawrouter@0.9.4) or <package>/<version> (e.g. twzrd-x402-gate/0.8.6). Control characters stripped; empty/whitespace ignored. Fallback: X-TWZRD-Client only when this header is absent. Free; no auth. A well-formed token is recorded and acknowledged as caller_recorded=true plus response header X-Twzrd-Caller-Recorded: 1. The raw token is never echoed."}]}},"/v1/intel/score_wallet_for_intel":{"get":{"operationId":"get_v1_intel_score_wallet_for_intel","summary":"Score a wallet from observed x402 history","description":"Free discovery: 0-100 intel score for a wallet from its on-chain x402 payment history (query param: wallet). Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"wallet","in":"query","required":true,"schema":{"type":"string","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"description":"Wallet to score: Solana base58 pubkey or Base 0x address.","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/get_poec_score":{"get":{"operationId":"get_v1_intel_get_poec_score","summary":"Fetch a wallet PoEC preview","description":"Free preview: PoEC v0 (Proof of Economic Contribution) for a wallet from its observed x402 history - floors, components, eligible_v0. claimable is always false; poec_score reads 0.0 until success_quality has a live source (query param: wallet). Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"wallet","in":"query","required":true,"schema":{"type":"string","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"description":"Payer wallet (Solana base58 or Base 0x) to score for PoEC v0.","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/get_top_intel_agents":{"get":{"operationId":"get_v1_intel_get_top_intel_agents","summary":"List observed x402 payer agents","description":"Free discovery (secondary corpus signal): leaderboard of observed x402 payers with intel scores. Qualify a specific seller first via POST /v1/intel/preflight and GET /v1/intel/merchant_card/{wallet}; use this to explore the corpus, not as the primary spend gate. limit=1 returns top_agent plus total_payers_observed, corpus_slices, and leaderboard_note from a single self-consistent source. Observed payers are ECOSYSTEM behavior TWZRD scores (not calls or revenue to TWZRD); the raw count includes the April-2026 onboarding/demo faucet wave, so the durable graph is reported via corpus_slices (pre_spike_base, multi_merchant_ge2). Query params: limit, min_paid_calls, max_days_since_last.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10},"description":"Max rows to return."},{"name":"min_paid_calls","in":"query","required":false,"schema":{"type":"integer","default":0},"description":"Suppress one-shot wallets: minimum observed paid x402 calls for a wallet to appear."},{"name":"max_days_since_last","in":"query","required":false,"schema":{"type":"number"},"description":"Suppress dormant wallets: max days since the wallet's last observed paid x402 call."}]}},"/v1/intel/get_facilitator_footprint":{"get":{"operationId":"get_v1_intel_get_facilitator_footprint","summary":"Fetch a payer facilitator footprint","description":"Free discovery: which x402 facilitators a Solana payer has settled through, from the observed on-chain payer graph (query param: wallet). Use it to qualify a counterparty before paying. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"wallet","in":"query","required":true,"schema":{"type":"string","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"description":"CRITICAL: substitute a real base58 payTo. Do not paste this description as a path. Wallet whose facilitator footprint to look up.","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/get_counterparties":{"get":{"operationId":"get_v1_intel_get_counterparties","summary":"List a payer's x402 counterparties","description":"Free discovery (capped teaser): the top distinct merchants/resources a Solana wallet pays, from the observed x402 payer graph (query params: wallet, limit<=25). Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"wallet","in":"query","required":true,"schema":{"type":"string","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"description":"CRITICAL: substitute a real base58 payTo. Do not paste this description as a path. Wallet whose counterparties to list.","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"maximum":25},"description":"Max counterparties to return (capped at 25)."}]}},"/v1/intel/compare_wallets":{"get":{"operationId":"get_v1_intel_compare_wallets","summary":"Compare two wallets before payment","description":"Free discovery: side-by-side observed intel for two Solana wallets (score + counterparty breadth) before paying either one; not identity proof (query params: wallet_a, wallet_b). Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"wallet_a","in":"query","required":true,"schema":{"type":"string"},"description":"CRITICAL: substitute a real base58 payTo. Do not paste this description as a path. First wallet to compare."},{"name":"wallet_b","in":"query","required":true,"schema":{"type":"string"},"description":"CRITICAL: substitute a real base58 payTo. Do not paste this description as a path. Second wallet to compare."}]}},"/v1/intel/score_wallets_batch":{"post":{"operationId":"post_v1_intel_score_wallets_batch","summary":"Score a batch of Solana wallets","description":"Free discovery: 0-100 intel score for up to 25 Solana wallets in one call, from their observed on-chain x402 payment history. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Wallets to score in one batch.","properties":{"wallets":{"type":"array","items":{"type":"string"},"maxItems":25,"description":"CRITICAL: array of real base58 payTos. Do not paste this description as a path. Max 25."}},"required":["wallets"]}}}}}},"/v1/receipts/example":{"get":{"operationId":"get_v1_receipts_example","summary":"Fetch a sample signed V7 receipt","description":"Free no-wallet SAMPLE signed V7 receipt (illustrative score, null address). Verify offline via /v1/receipts/verify before paying for live trust. Free, no payment, no auth.","tags":["Receipts"],"security":[],"responses":{"200":{"description":"OK (JSON)."}}}},"/v1/receipts/verify":{"post":{"operationId":"post_v1_receipts_verify","summary":"Verify a portable V7 receipt","description":"Free local receipt verifier: recompute the keccak256 leaf from a portable receipt preimage and compare. Accepts V7 receipts; earlier formats (V5, V6) still verify. Rejects TWZRD:REFUSE_RECEIPT_V0 on kind/domain: that object is a caller-local deny, not a Path A trust receipt. Free, no payment, no auth.","tags":["Receipts"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"A full PaidReceipt or a bare {leaf, preimage}. Signature is always enforced.","properties":{"leaf":{"type":"string","description":"Hex keccak256 receipt leaf."},"preimage":{"type":"object","description":"Receipt preimage fields that hash to the leaf."},"signature":{"type":"string","description":"Ed25519 signature over the leaf (base58/hex)."},"signing_pubkey":{"type":"string","description":"Signer pubkey (base58)."}},"required":["leaf"]}}}}}},"/v1/intel/payto-feed":{"get":{"operationId":"get_v1_intel_payto_feed","summary":"Fetch wash/payTo diffs for a local deny list","description":"Free compact wash/payTo diffs for a router's local deny list (e.g. SpendControl blockedPayees). Solana is the only wash graph. Requires X-Twzrd-Caller <integration>@<version>. Not a directory dump. Empty first snapshot is not 'all clean'. Unwarmed / no DATABASE_URL returns 503, not a fake empty list. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["solana","base","polygon"]},"description":"solana is the only wash graph. base/polygon return wash_graph=false."},{"name":"since_seq","in":"query","required":false,"schema":{"type":"integer","default":0},"description":"Diff cursor. 0 = snapshot. Do not page snapshots with this."},{"name":"snapshot_cursor","in":"query","required":false,"schema":{"type":"integer","default":0},"description":"Exclusive seq among currently-flagged rows. Snapshot mode only."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200},"description":"Page size 1-500."},{"name":"include","in":"query","required":false,"schema":{"type":"string","default":"flagged"},"description":"flagged or flagged,cleared."},{"name":"X-Twzrd-Caller","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Opt-in self-declared caller identity so a later client-side wash refuse can be joined. Preferred: <integration>@<version> (e.g. clawrouter@0.9.4) or <package>/<version> (e.g. twzrd-x402-gate/0.8.6). Control characters stripped; empty/whitespace ignored. Fallback: X-TWZRD-Client only when this header is absent. Free; no auth. A well-formed token is recorded and acknowledged as caller_recorded=true plus response header X-Twzrd-Caller-Recorded: 1. The raw token is never echoed."}]}},"/v1/intel/refuse-receipt":{"post":{"operationId":"post_v1_intel_refuse_receipt","summary":"Create a caller-local deny receipt","description":"Notarize a caller's own local deny (e.g. spend_policy_denied). This is not a TWZRD wash verdict. Domain TWZRD:REFUSE_RECEIPT_V0; same Ed25519 v2 key as V6, different domain. Replay of the same natural key returns the same signed object for 90 days; after that a remint gets a new issued_at_unix and a new leaf. Requires X-Twzrd-Caller matching body.caller_id for the legacy format (202). Alternatively submit challenge_hash, issued_at_unix, resource, reason, payer_pubkey, signature for a free caller-signed declaration (200 logged, receipt_id, witness_signature). No caller header or payment required for this format. Ed25519 base58 signature over UTF-8 TWZRD:SIGNED_REFUSAL_V1 + LF + compact, sorted-key, ensure_ascii JSON of all five non-signature fields. issued_at_unix must be within 300s of server time. Optionally include quoted_price: this selects TWZRD:SIGNED_REFUSAL_V2 and signs all six non-signature fields, including the complete quote object. The witness receipt adds ingested_at_unix, the server ingestion time, bound into the witness leaf and distinct from the caller-signed issued_at_unix. Reasons and challenge provenance are caller claims. Invalid or stale signature returns 422 INVALID_REFUSAL_SIGNATURE.","tags":["Discovery & Ops"],"security":[{"twzrdCaller":[]}],"responses":{"200":{"description":"OK (JSON)."},"202":{"description":"Legacy caller-local deny receipt."},"401":{"description":"Legacy mint missing/invalid X-Twzrd-Caller (error=caller_missing). Signed-refusal bodies without that header are not this response."},"422":{"description":"INVALID_REFUSAL_SIGNATURE or INVALID_REFUSAL_PAYLOAD."},"429":{"description":"Rate limited; retry after Retry-After."},"503":{"description":"Signing or persistent storage unavailable; not logged."}},"parameters":[{"name":"X-Twzrd-Caller","in":"header","required":true,"schema":{"type":"string","maxLength":128},"description":"Opt-in self-declared caller identity so a later client-side wash refuse can be joined. Preferred: <integration>@<version> (e.g. clawrouter@0.9.4) or <package>/<version> (e.g. twzrd-x402-gate/0.8.6). Control characters stripped; empty/whitespace ignored. Fallback: X-TWZRD-Client only when this header is absent. Free; no auth. A well-formed token is recorded and acknowledged as caller_recorded=true plus response header X-Twzrd-Caller-Recorded: 1. The raw token is never echoed. Required for the legacy refuse-receipt mint; omit only when posting a signed-refusal body."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Legacy caller-local deny or caller-signed refusal declaration. No payment authorization.","properties":{"caller_id":{"type":"string","description":"Must match X-Twzrd-Caller."},"pay_to":{"type":"string","description":"Counterparty payTo."},"chain":{"type":"string","enum":["solana","base","polygon"]},"rule_id":{"type":"string"},"policy_hash":{"type":"string","description":"0x + 64 hex of their policy blob."},"denied_at_unix":{"type":"integer"},"challenge_hash":{"type":"string","description":"0x-prefixed lowercase SHA-256 of exact decoded 402 challenge JSON bytes, before parsing."},"issued_at_unix":{"type":"integer","description":"UNIX seconds at which the caller formed the declaration; must be within 300s of server time."},"resource":{"type":"string","format":"uri","maxLength":4096},"reason":{"type":"string","enum":["BUDGET_EXCEEDED","UNTRUSTED_MERCHANT","STALE_CORPUS","UNSUPPORTED_CHAIN"]},"payer_pubkey":{"type":"string","description":"Base58 Ed25519 declaration signer. No payer externality or payment claim."},"signature":{"type":"string","description":"Base58 Ed25519 signature over the domain-separated declaration."},"quoted_price":{"type":"object","additionalProperties":false,"description":"Caller-asserted offer, not independently authenticated seller pricing. Selects signed refusal V2.","required":["amount_atomic","asset","network","pay_to"],"properties":{"amount_atomic":{"type":"string","pattern":"^(0|[1-9][0-9]{0,38})$","description":"Unsigned integer less than 2^128 in the asset's smallest units; not necessarily USDC micro-units."},"asset":{"type":"string","minLength":1,"maxLength":256},"network":{"type":"string","minLength":1,"maxLength":256},"pay_to":{"type":"string","minLength":1,"maxLength":256}}}},"oneOf":[{"required":["caller_id","pay_to","chain","rule_id","policy_hash","denied_at_unix"]},{"required":["challenge_hash","issued_at_unix","resource","reason","payer_pubkey","signature"]}]}}}}}},"/v1/intel/refuse-receipt/verify":{"post":{"operationId":"post_v1_intel_refuse_receipt_verify","summary":"Verify a refuse-receipt (not V6)","description":"Free offline-equivalent verify of a refuse-receipt. Checks kind, domain TWZRD:REFUSE_RECEIPT_V0, leaf, and Ed25519 against the published v2 key. Rejects V6 trust receipts on kind/domain. Also verifies both signatures and all bound fields of twzrd_signed_refusal_v1/v2. Does not need a DB row. Does not attest wash or the truth of a caller's reason. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"The legacy 202 or caller-signed 200 refuse-receipt object."}}}}}},"/health":{"get":{"operationId":"get_health","summary":"Fetch TWZRD service health","description":"Service health + active network / pay_to / signal source. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}}}},"/supported":{"get":{"operationId":"get_supported","summary":"Fetch supported x402 payment schemes","description":"Path B facilitator /supported: Solana exact scheme + feePayer GWRLgRB6diC2zG9BaoGJsan9T8JvJCk7usFruiefnfMP + settlement_policy + twzrd.merchant_attach. Pin payment extra.feePayer to this value before POST /verify + /settle.","tags":["x402 Facilitator (Path B)"],"security":[],"responses":{"200":{"description":"OK (JSON).","content":{"application/json":{"schema":{"type":"object","properties":{"kinds":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string","const":"exact"},"network":{"type":"string"},"x402Version":{"type":"integer"},"extra":{"type":"object","properties":{"feePayer":{"type":"string","description":"Path B sponsor; pin to GWRLgRB6diC2zG9BaoGJsan9T8JvJCk7usFruiefnfMP"}}}}}},"signers":{"type":"object"},"twzrd":{"type":"object","properties":{"pitch":{"type":"string"},"merchant_attach":{"type":"boolean"},"settlement_policy":{"type":"object","description":"Sponsor-cost caps: min amount, CU, fee lamports, required_signatures=2, no ALTs, no Lighthouse."}}}}}}}}}}},"/verify":{"post":{"operationId":"post_verify","summary":"Verify an x402 payment payload","description":"Path B facilitator /verify: validate payment payload against requirements with no chain write (strict template + reservation lookup). Policy failures usually return HTTP 200 with isValid=false; malformed body is 400.","tags":["x402 Facilitator (Path B)"],"security":[],"responses":{"200":{"description":"Verify result. isValid=true when policy+payload OK; isValid=false with invalidReason for policy/replay rejects (still HTTP 200 for scheme outcomes).","content":{"application/json":{"schema":{"type":"object","required":["isValid"],"properties":{"isValid":{"type":"boolean"},"invalidReason":{"type":["string","null"],"description":"Set when isValid=false. Examples: policy:* reasons, duplicate_settlement, policy:reservation_unavailable, bad_request:…"},"invalidMessage":{"type":["string","null"]},"payer":{"type":["string","null"],"description":"Base58 payer pubkey when known."},"extensions":{},"extra":{},"detail":{"type":"string"}},"examples":[{"isValid":true,"invalidReason":null,"payer":"64NsKhbNGZCEj6sgTtjzscfuXSZSEpD1GoBXbT45yv4J"},{"isValid":false,"invalidReason":"duplicate_settlement","payer":"64NsKhbNGZCEj6sgTtjzscfuXSZSEpD1GoBXbT45yv4J"}]}}}},"400":{"description":"Malformed body (missing paymentPayload/paymentRequirements).","content":{"application/json":{"schema":{"type":"object","properties":{"isValid":{"type":"boolean","const":false},"invalidReason":{"type":"string"}}}}}},"503":{"description":"Facilitator unavailable or agent_intel_disabled."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["paymentPayload","paymentRequirements"],"properties":{"x402Version":{"type":"integer","description":"x402 v2; may also appear only on paymentPayload."},"paymentPayload":{"type":"object","description":"x402 PaymentPayload (includes partially-signed SVM tx)."},"paymentRequirements":{"type":"object","description":"Must equal payload.accepted under strict policy; extra.feePayer must be GWRLgRB6diC2zG9BaoGJsan9T8JvJCk7usFruiefnfMP."}}}}}}}},"/settle":{"post":{"operationId":"post_settle","summary":"Create an x402 payment settlement on Solana","description":"Path B facilitator /settle: permanent message-hash reservation, cosign feePayer, submit, fail-closed confirm. Returns twzrd_receipt (V7) + merchant_attach for payTo. Gas-sponsored settle + trust memory in one hop. Attach is best-effort - never voids on-chain settle. Policy/replay failures usually HTTP 200 with success=false. Not Path A multi-rail paid-trust 402. settle_gate_enabled does not gate this rail when false (current prod default).","tags":["x402 Facilitator (Path B)"],"security":[],"responses":{"200":{"description":"Settle result. success=true includes transaction + best-effort twzrd_receipt/merchant_attach; success=false with errorReason for policy/replay (e.g. duplicate_settlement) still HTTP 200.","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"},"errorReason":{"type":["string","null"],"description":"Set when success=false. Examples: duplicate_settlement, policy:reservation_unavailable, settle_error:*, bad_request:…"},"transaction":{"type":"string","description":"Solana tx signature when success=true; empty on reject."},"network":{"type":"string"},"payer":{"type":"string"},"settlement_recorded":{"type":"string","description":"Durable ledger status: recorded | replay | error | …"},"twzrd_receipt":{"type":"object","description":"Portable V7 Ed25519 receipt (leaf/preimage/signature). Best-effort; may be absent with twzrd_receipt_note.","properties":{"version":{"type":"string","description":"v6"},"leaf":{"type":"string"},"preimage":{"type":"object"},"signature":{"type":"string"},"signing_pubkey":{"type":"string"},"signing_alg":{"type":"string"},"key_id":{"type":"string"}}},"twzrd_receipt_note":{"type":"string","description":"Why receipt was omitted (best-effort attach)."},"merchant_attach":{"type":"object","description":"Best-effort payTo track-record attach. Never voids chain success. Down-only graph snapshot — not identity or delivery vouch.","properties":{"attached":{"type":"boolean"},"seller":{"type":"string"},"payer":{"type":"string"},"settlement_tx":{"type":"string"},"amount_micro":{"type":"integer"},"facilitator":{"type":"string","const":"twzrd"},"signed":{"type":"boolean"},"reason":{"type":["string","null"]},"demand_quality_snapshot":{"type":"object"}}},"ack_pay_credential":{"type":"object","description":"Optional ACK-Pay VC transform of twzrd_receipt (best-effort)."}},"examples":[{"success":true,"transaction":"<solana-sig>","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payer":"<base58>","settlement_recorded":"recorded","twzrd_receipt":{"version":"v6"},"merchant_attach":{"attached":true,"facilitator":"twzrd","signed":true}},{"success":false,"errorReason":"duplicate_settlement","transaction":"","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payer":"<base58>"}]}}}},"400":{"description":"Malformed body (missing paymentPayload/paymentRequirements).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":false},"errorReason":{"type":"string"}}}}}},"503":{"description":"Facilitator unavailable or agent_intel_disabled."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["paymentPayload","paymentRequirements"],"properties":{"x402Version":{"type":"integer"},"paymentPayload":{"type":"object","description":"Same envelope accepted by POST /verify."},"paymentRequirements":{"type":"object","description":"extra.feePayer must be GWRLgRB6diC2zG9BaoGJsan9T8JvJCk7usFruiefnfMP."}}}}}}}},"/.well-known/x402":{"get":{"operationId":"get__well_known_x402","summary":"Fetch the x402 service descriptor","description":"x402 service descriptor (this document). Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}}}},"/openapi.json":{"get":{"operationId":"get_openapi_json","summary":"Fetch the TWZRD OpenAPI document","description":"OpenAPI 3.1 description of the public routes with x402 payment annotations on paid paths. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}}}},"/llms.txt":{"get":{"operationId":"get_llms_txt","summary":"Fetch agent-facing TWZRD guidance","description":"Plain-text agent-facing pointer to the trust surface, discovery endpoints, and the live mainnet proof. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}}}},"/.well-known/agent-card.json":{"get":{"operationId":"get__well_known_agent_card_json","summary":"Fetch the TWZRD A2A agent card","description":"A2A agent card: endpoints, pricing, x402 + MCP capabilities for orchestrators and registries. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}}}},"/v1/compute/inference":{"post":{"operationId":"post_v1_compute_inference","summary":"Run receipt-gated model inference","description":"Receipt-gated inference proxy (no x402 charge, but not open access). Wallet must hold an active TWZRD Receipt (Silver+). Checks resolver -> verifies cnft_minted -> proxies to model backend. 402 if no receipt or tier too low. Live x402 inference is POST https://api.twzrd.xyz/v1/chat/completions ($0.01).","tags":["Discovery & Ops"],"security":[{"twzrdReceipt":[]}],"responses":{"200":{"description":"OK (JSON)."},"400":{"description":"Missing required wallet or prompt field. Body also names the live x402 completions SKU on api.twzrd.xyz."},"402":{"description":"Active TWZRD Receipt required, or wallet receipt tier is below Silver."},"502":{"description":"Receipt resolver or inference backend unavailable."}},"x-access-gate":{"type":"receipt","required_receipt":"twzrd.receipt","minimum_tier":"Silver","wallet_source":"requestBody.wallet","resolver":"https://api.twzrd.xyz/v1/receipts/r/{wallet}","failure_status":402},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","description":"CRITICAL: substitute a real base58 payTo. Do not paste this description as a path. Wallet whose receipt tier to check."},"prompt":{"type":"string","description":"Prompt to send to the inference model"}},"required":["wallet","prompt"]}}}}}},"/v1/intel/badge/{pubkey}":{"get":{"operationId":"get_v1_intel_badge_pubkey","summary":"Fetch an intel badge by pubkey","description":"Free SVG intel badge for any Solana pubkey. Returns coarse trust tier (Bronze/Silver/Gold/Platinum) from the live x402 payer graph. Embed in marketplaces with <img>. Cacheable (1h). Exact score + receipt are the paid GET /v1/intel/quick ($0.001) and /v1/intel/trust ($0.05). Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"pubkey","in":"path","required":true,"description":"CRITICAL: Do NOT send the literal strings ':pubkey', '{pubkey}', ':solana_address', or '{wallet}'. You MUST substitute a valid base58 Solana wallet address (32-44 chars). Source it from accepts[].payTo on a 402 challenge or from free preflight seller_wallet.","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","minLength":32,"maxLength":44,"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/watch":{"post":{"operationId":"post_v1_intel_watch","summary":"Register a seller re-call watch","description":"Register a re-call watch on a seller wallet: TWZRD re-checks the seller when recheck_after_unix elapses and POSTs event twzrd.watch.recheck_due to your webhook when the score/decision materially changes. webhook_url optional (omit for poll-only); public HTTPS only. Max 25 active watches per payer_wallet. twzrd-watch/v1 control proof required (signature + timestamp).","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"x-twzrd-control-proof":{"version":"twzrd-watch/v1","signer":"payer_wallet","algorithm":"ed25519","freshness_seconds":300},"parameters":[{"name":"payer_wallet","in":"query","required":true,"schema":{"type":"string"},"description":"Solana payer wallet (base58) whose active watches to list."},{"name":"signature","in":"query","required":true,"schema":{"type":"string"},"description":"base58 ed25519 proof by payer_wallet over the twzrd-watch/v1 message for action=list (required)."},{"name":"timestamp","in":"query","required":true,"schema":{"type":"string"},"description":"Unix seconds used in the signed message, within 300s of now (required)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Watch registration: payer + seller wallets, optional webhook, plus the twzrd-watch/v1 control proof (signature + timestamp).","properties":{"payer_wallet":{"type":"string","description":"Your agent wallet (the watcher), base58."},"seller_wallet":{"type":"string","description":"The seller/merchant wallet to watch, base58."},"webhook_url":{"type":"string","description":"Optional public HTTPS URL to POST when intel materially changes. Omit for poll-only."},"signature":{"type":"string","description":"base58 ed25519 signature by payer_wallet over the twzrd-watch/v1 message for action=register (see GET /v1/intel/watch self-description)."},"timestamp":{"type":"string","description":"Unix seconds used in the signed message, within 300s of now."}},"required":["payer_wallet","seller_wallet","signature","timestamp"]}}}}},"get":{"operationId":"get_v1_intel_watch","summary":"List active seller re-call watches","description":"List active re-call watches for a payer wallet with current score/decision and recheck_after_unix (query params: payer_wallet, signature, timestamp - twzrd-watch/v1 control proof required; webhook URLs masked to host).","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"x-twzrd-control-proof":{"version":"twzrd-watch/v1","signer":"payer_wallet","algorithm":"ed25519","freshness_seconds":300},"parameters":[{"name":"payer_wallet","in":"query","required":true,"schema":{"type":"string"},"description":"Solana payer wallet (base58) whose active watches to list."},{"name":"signature","in":"query","required":true,"schema":{"type":"string"},"description":"base58 ed25519 proof by payer_wallet over the twzrd-watch/v1 message for action=list (required)."},{"name":"timestamp","in":"query","required":true,"schema":{"type":"string"},"description":"Unix seconds used in the signed message, within 300s of now (required)."}]}},"/v1/intel/watch/{watch_id}":{"delete":{"operationId":"delete_v1_intel_watch_watch_id","summary":"Delete a seller re-call watch","description":"Deactivate a re-call watch by ID (query params: payer_wallet must match the watch owner, plus signature and timestamp - twzrd-watch/v1 control proof required).","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"x-twzrd-control-proof":{"version":"twzrd-watch/v1","signer":"payer_wallet","algorithm":"ed25519","freshness_seconds":300},"parameters":[{"name":"watch_id","in":"path","required":true,"schema":{"type":"integer","example":9,"minimum":1},"description":"Integer watch id from POST /v1/intel/watch (e.g. 9).","example":9}]}},"/v1/chat/completions":{"post":{"operationId":"post_v1_chat_completions","summary":"Run paid OpenAI-compatible inference","description":"WZRD OpenAI-compatible chat completions on api.twzrd.xyz. Session/Bearer or $0.01 Solana USDC. Not an intel-settled route and not a Monid provider. Hosted and settled on api.twzrd.xyz (payTo DB2s5PeotN1zwb9WpLQMAYqdHnf86SfjYUhbe1Nm8D1e, 0.01 USDC). This intel origin 307s the path to that host. Not an intel-settled route.","tags":["API Hosted Inference"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"model":{"type":"string","default":"auto","description":"Model slug, or auto to let the server pick the model."},"messages":{"type":"array","items":{"type":"object","required":["role","content"],"properties":{"role":{"type":"string"},"content":{"type":"string"}}}},"stream":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"OpenAI-compatible chat.completion JSON.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"choices":{"type":"array"}}}}}},"402":{"description":"Payment required (x402). Returns payment-required header."}},"x402":{"amount":"10000","price_usdc":0.01,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"DB2s5PeotN1zwb9WpLQMAYqdHnf86SfjYUhbe1Nm8D1e","scheme":"exact","extra":{"feePayer":"DB2s5PeotN1zwb9WpLQMAYqdHnf86SfjYUhbe1Nm8D1e"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"servers":[{"url":"https://api.twzrd.xyz"}]}},"/v1/agent-readiness":{"post":{"operationId":"post_v1_agent_readiness","summary":"Verify x402 seller endpoint readiness","description":"Direct probes only (SSRF-guarded HTTPS-only, no search in the hot path). Hard axes are commerce (unpaid 402 truth) and trust (TWZRD preflight + merchant_card judgment per resolved payTo — not a checkbox). Soft axes: discovery, capability, proof. Free, no payment, no auth. Not listed in /.well-known/x402 free_resources or llms primary path until marketing is intentionally un-gated.","tags":["Free Preflight Screening"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"HTTPS origin of the agent/service under audit."},"resource_urls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":5,"description":"Optional explicit payable resource URLs to probe when the origin does not advertise them (max 5)."},"max_resources":{"type":"integer","minimum":1,"maximum":5,"default":3,"description":"Cap on discovered resources to probe (clamped 1-5, default 3)."}}}}}},"responses":{"200":{"description":"AgentReadinessCard with per-axis findings and a verdict.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Missing/invalid url (HTTPS required), or the audit could not resolve a card."},"503":{"description":"Surface disabled (WZRD_AGENT_INTEL_ENABLED=false)."}}}}}}