{"openapi":"3.1.0","info":{"title":"TWZRD Agent Intel","version":"0.5.7","summary":"Pre-spend trust for AI agents on Solana x402: free allow|warn|block ReadinessCard, paid V6 receipts; 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). Resource discovery, paid renorm trust + V6 signed receipts, and optional gas-sponsored settlement when clients pin feePayer from GET /supported (4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE). Not a wallet or payment network. Path A: paid trust intel 402 — bind the accepts[] entry you pay. Settle rail: opt-in /supported feePayer. Path B = buyer AutoGate refuse (signer=0). Buyer gate package: twzrd-x402-gate@0.8.14.","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 optional paid GET /v1/intel/trust/{pubkey} (multi-rail 402); (3) settle-rail opt-in: GET /supported (feePayer 4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE) then POST /verify + /settle for twzrd_receipt + merchant_attach; (4) POST /v1/receipts/verify. Install buyer gate: npm i twzrd-x402-gate@0.8.14. Payer leaderboard is secondary research, not the default buying path."},"tags":[{"name":"x402 Facilitator (Path B)","description":"Opt-in settle-through-TWZRD: /supported feePayer 4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE, /verify, /settle with V6 receipt + merchant_attach."},{"name":"Paid Trust Intel (Path A)","description":"Paid trust / merchant mint / quick - 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":"V6 receipt example + offline verify."},{"name":"Discovery & Ops","description":"Health, descriptors, badges, secondary research."}],"servers":[{"url":"https://intel.twzrd.xyz"}],"x402":{"version":2,"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","path_b_fee_payer":"4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE","descriptor":"https://intel.twzrd.xyz/.well-known/x402","receipt":{"type":"twzrd.receipt.v6","supported_leaf_versions":["v5","v6"],"kind":"portable-signed","verifiable":true,"leaf_hash":"keccak256","signature":{"algorithm":"ed25519","key_id":"twzrd-receipt-ed25519-v1","public_key":"9V6Pn19kiUA5Rn6JpQfNduanvGt2aXGwsarosNfa2Ldf","public_key_encoding":"base58","signed_message":"raw 32 bytes of the keccak256 leaf"},"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/trust/{pubkey}":{"get":{"operationId":"get_v1_intel_trust_pubkey","summary":"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, plus a portable V6 receipt. 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).","description":"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, plus a portable V6 receipt. 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 V6 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 V6 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":"Solana wallet address (base58) to score; not identity proof. CRITICAL: Do NOT send the literal strings ':pubkey', '{pubkey}', or ':solana_address' — substitute a real base58 Solana wallet (example: GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs).","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":"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 V6 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}.","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 V6 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 V6 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":"Merchant (pay_to) Solana wallet address (base58). CRITICAL: Do NOT send the literal strings ':pubkey', '{pubkey}', or ':solana_address' — substitute a real base58 Solana wallet (example: GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs).","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","minLength":32,"maxLength":44,"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/quick/{pubkey}":{"get":{"operationId":"get_v1_intel_quick_pubkey","summary":"Cheap $0.001 quick reputation check before paying a Solana x402 counterparty: basic tier + score only. Entry point for agents to qualify a counterparty before a larger payment.","description":"Cheap $0.001 quick reputation check before paying a Solana x402 counterparty: basic tier + score only. Entry point for agents to qualify a counterparty before a larger payment. 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."},"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/verify-endpoint":{"post":{"operationId":"post_v1_intel_verify_endpoint","summary":"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.","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/solana_market_orderbook_depth":{"get":{"operationId":"get_v1_intel_solana_market_orderbook_depth","summary":"Solana Market normalized orderbook depth and liquidity profile for a ticker (query: ticker, optional merchant = provider_reputation sidecar + settle-time trust-gate counterparty).","description":"Solana Market normalized orderbook depth and liquidity profile for a ticker (query: ticker, optional merchant = provider_reputation sidecar + settle-time trust-gate counterparty).","tags":["Solana Market Intel"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string"},"description":"Market ticker symbol."},{"name":"merchant","in":"query","required":false,"schema":{"type":"string","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"description":"Optional seller pubkey; when set and corpus has inbound payers, paid response includes data.provider_reputation (fail-open). Also the settle-time trust-gate counterparty: when the gate is enabled and this wallet scores below threshold, the server refuses to settle (402, charged:false, no on-chain tx) BEFORE your payment broadcasts. Omit it and the gate has nothing to evaluate.","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/solana_market_shape":{"get":{"operationId":"get_v1_intel_solana_market_shape","summary":"Solana market structure signals for a ticker (concentration, venue fragmentation, settlement patterns). Query: ticker, optional merchant (provider_reputation sidecar + settle-time trust-gate counterparty).","description":"Solana market structure signals for a ticker (concentration, venue fragmentation, settlement patterns). Query: ticker, optional merchant (provider_reputation sidecar + settle-time trust-gate counterparty).","tags":["Solana Market Intel"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string"},"description":"Market ticker symbol."},{"name":"merchant","in":"query","required":false,"schema":{"type":"string","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"description":"Optional seller pubkey; when set and corpus has inbound payers, paid response includes data.provider_reputation (fail-open). Also the settle-time trust-gate counterparty: when the gate is enabled and this wallet scores below threshold, the server refuses to settle (402, charged:false, no on-chain tx) BEFORE your payment broadcasts. Omit it and the gate has nothing to evaluate.","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/solana_market_onchain_trades_summary":{"get":{"operationId":"get_v1_intel_solana_market_onchain_trades_summary","summary":"Solana Market recent on-chain trade activity: per-ticker via the by-market feed, or a global summary when no ticker is given. Optional query: ticker, merchant (provider_reputation sidecar + settle-time trust-gate counterparty).","description":"Solana Market recent on-chain trade activity: per-ticker via the by-market feed, or a global summary when no ticker is given. Optional query: ticker, merchant (provider_reputation sidecar + settle-time trust-gate counterparty).","tags":["Solana Market Intel"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"ticker","in":"query","required":false,"schema":{"type":"string"},"description":"Optional market ticker filter."},{"name":"merchant","in":"query","required":false,"schema":{"type":"string","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"description":"Optional seller pubkey; when set and corpus has inbound payers, paid response includes data.provider_reputation (fail-open). Also the settle-time trust-gate counterparty: when the gate is enabled and this wallet scores below threshold, the server refuses to settle (402, charged:false, no on-chain tx) BEFORE your payment broadcasts. Omit it and the gate has nothing to evaluate.","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/solana_market_visibility_map":{"get":{"operationId":"get_v1_intel_solana_market_visibility_map","summary":"Solana Market visibility map: which markets have meaningful on-chain settlement activity and liquidity. Optional query: merchant (provider_reputation sidecar + settle-time trust-gate counterparty).","description":"Solana Market visibility map: which markets have meaningful on-chain settlement activity and liquidity. Optional query: merchant (provider_reputation sidecar + settle-time trust-gate counterparty).","tags":["Solana Market Intel"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"merchant","in":"query","required":false,"schema":{"type":"string","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"},"description":"Optional seller pubkey; when set and corpus has inbound payers, paid response includes data.provider_reputation (fail-open). Also the settle-time trust-gate counterparty: when the gate is enabled and this wallet scores below threshold, the server refuses to settle (402, charged:false, no on-chain tx) BEFORE your payment broadcasts. Omit it and the gate has nothing to evaluate.","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/marketplace":{"get":{"operationId":"get_v1_intel_marketplace","summary":"Free Solana x402 service directory: PayAI Bazaar listings overlaid with the cross-facilitator corpus wash/sybil flag per provider, plus a corpus-wide flagged-seller avoid-list and stats. The only x402 directory that flags which listings to avoid before paying.","description":"Free Solana x402 service directory: PayAI Bazaar listings overlaid with the cross-facilitator corpus wash/sybil flag per provider, plus a corpus-wide flagged-seller avoid-list and stats. The only x402 directory that flags which listings to avoid before paying. 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/sellers":{"get":{"operationId":"get_v1_intel_sellers","summary":"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 bazaar directories (marketplace / x402-directory) which list advertised services, not observed merchants.","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 bazaar directories (marketplace / x402-directory) which list advertised services, not observed merchants. 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":"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.","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."}]}},"/v1/intel/x402-directory":{"get":{"operationId":"get_v1_intel_x402_directory","summary":"Free combined three-bazaar x402 service directory: merges PayAI Bazaar, CDP Bazaar (Coinbase), and Agentic Market into a unified view indexed by payTo wallet with source tags, TWZRD wash overlay, cross-chain caveats. query params: flagged_only (bool), limit (1-500), source (payai_bazaar|cdp_bazaar|agentic_market).","description":"Free combined three-bazaar x402 service directory: merges PayAI Bazaar, CDP Bazaar (Coinbase), and Agentic Market into a unified view indexed by payTo wallet with source tags, TWZRD wash overlay, cross-chain caveats. query params: flagged_only (bool), limit (1-500), source (payai_bazaar|cdp_bazaar|agentic_market). 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."}]}},"/v1/intel/x402-demo":{"get":{"operationId":"get_v1_intel_x402_demo","summary":"Free, sample-only homepage demo: GET opens a default bundle; POST accepts a custom preflight payload. Composes a LIVE preflight ReadinessCard + a SAMPLE signed V6 receipt in one call. charged:false, settles nothing, receipt_scope:sample_only. Pointers to the real paid trust endpoint + verify endpoint included.","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 V6 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":"Free no-spend proof of the buyer-side x402 trust gate for HTTP agents: returns a deterministic transcript 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.","description":"Free no-spend proof of the buyer-side x402 trust gate for HTTP agents: returns a deterministic transcript 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":"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.","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":"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). Unique payers, wash flags, catalog join, resource map claim resource_listing_only. Paid twin: GET /v1/intel/merchant/{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). Unique payers, wash flags, catalog join, resource map claim resource_listing_only. Paid twin: GET /v1/intel/merchant/{wallet}. Free, no payment, no auth.","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"}]}},"/v1/intel/score_wallet_for_intel":{"get":{"operationId":"get_v1_intel_score_wallet_for_intel","summary":"Free discovery: 0-100 intel score for a wallet from its on-chain x402 payment history (query param: wallet).","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":"Solana wallet address (base58) to score.","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/get_top_intel_agents":{"get":{"operationId":"get_v1_intel_get_top_intel_agents","summary":"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.","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":"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.","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":"Solana wallet address (base58) to look up facilitator footprint for.","example":"GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs"}]}},"/v1/intel/get_counterparties":{"get":{"operationId":"get_v1_intel_get_counterparties","summary":"Free discovery (capped teaser): the top distinct merchants/resources a Solana wallet pays, from the observed x402 payer graph (query params: wallet, limit<=25).","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":"Solana wallet address (base58).","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":"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).","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":"First Solana wallet address (base58)."},{"name":"wallet_b","in":"query","required":true,"schema":{"type":"string"},"description":"Second Solana wallet address (base58)."}]}},"/v1/intel/score_wallets_batch":{"post":{"operationId":"post_v1_intel_score_wallets_batch","summary":"Free discovery: 0-100 intel score for up to 25 Solana wallets in one call, from their observed on-chain x402 payment history.","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":"Solana wallet addresses (base58), max 25."}},"required":["wallets"]}}}}}},"/v1/receipts/example":{"get":{"operationId":"get_v1_receipts_example","summary":"Free no-wallet SAMPLE signed V6 receipt (illustrative score, null address). Verify offline via /v1/receipts/verify before paying for live trust.","description":"Free no-wallet SAMPLE signed V6 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":"Free local V6 receipt verifier: recompute the keccak256 leaf from a portable receipt preimage and compare.","description":"Free local V6 receipt verifier: recompute the keccak256 leaf from a portable receipt preimage and compare. 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"]}}}}}},"/health":{"get":{"operationId":"get_health","summary":"Service health + active network / pay_to / signal source.","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":"Path B facilitator /supported: Solana exact scheme + feePayer 4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE + settlement_policy + twzrd.merchant_attach. Pin payment extra.feePayer to this value before POST /verify + /settle.","description":"Path B facilitator /supported: Solana exact scheme + feePayer 4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE + 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 4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE"}}}}}},"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":"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.","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 4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE."}}}}}}}},"/settle":{"post":{"operationId":"post_settle","summary":"Path B facilitator /settle: permanent message-hash reservation, cosign feePayer, submit, fail-closed confirm. Returns twzrd_receipt (V6) + 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).","description":"Path B facilitator /settle: permanent message-hash reservation, cosign feePayer, submit, fail-closed confirm. Returns twzrd_receipt (V6) + 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 V6 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":"","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 4LkEFjJdXARkKx8FBx4LBFa2SvJNmjQpgGDLoJcypZUE."}}}}}}}},"/.well-known/x402":{"get":{"operationId":"get__well_known_x402","summary":"x402 service descriptor (this document).","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":"OpenAPI 3.1 description of the public routes with x402 payment annotations on paid paths.","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":"Plain-text agent-facing pointer to the trust surface, discovery endpoints, and the live mainnet proof.","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":"A2A agent card: endpoints, pricing, x402 + MCP capabilities for orchestrators and registries.","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":"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.","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.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana wallet address to check receipt for"},"prompt":{"type":"string","description":"Prompt to send to the inference model"}},"required":["wallet","prompt"]}}}}}},"/v1/wash/badge/{wallet}":{"get":{"operationId":"get_v1_wash_badge_wallet","summary":"Free SVG trust badge for any Solana wallet. Embed in marketplaces with <img>. Returns clean/suspicious/severe tier with live wash score. Cacheable (1h).","description":"Free SVG trust badge for any Solana wallet. Embed in marketplaces with <img>. Returns clean/suspicious/severe tier with live wash score. Cacheable (1h). Free, no payment, no auth.","tags":["Discovery & Ops"],"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"}],"servers":[{"url":"https://api.twzrd.xyz"}]}},"/v1/reputation/badge/{merchant}":{"get":{"operationId":"get_v1_reputation_badge_merchant","summary":"Free SVG provider reputation badge for any Solana merchant wallet. Returns tier_a/b/c/blocked with wash flag. Embed in marketplaces with <img>. Cacheable (1h).","description":"Free SVG provider reputation badge for any Solana merchant wallet. Returns tier_a/b/c/blocked with wash flag. Embed in marketplaces with <img>. Cacheable (1h). Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"merchant","in":"path","required":true,"description":"CRITICAL: Do NOT send the literal strings ':merchant', '{merchant}', ':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"}],"servers":[{"url":"https://api.twzrd.xyz"}]}},"/v1/intel/badge/{pubkey}":{"get":{"operationId":"get_v1_intel_badge_pubkey","summary":"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).","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/wash/analyze":{"post":{"operationId":"post_v1_wash_analyze","summary":"Wash detection API: batch analyze up to 100 wallets for circular flow, ring detection, and collusion signals. Pro tier.","description":"Wash detection API: batch analyze up to 100 wallets for circular flow, ring detection, and collusion signals. Pro tier.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"servers":[{"url":"https://api.twzrd.xyz"}]}},"/v1/reputation/analyze":{"post":{"operationId":"post_v1_reputation_analyze","summary":"Provider reputation API: batch analyze up to 100 merchants for heavy-fleet, captive concentration, and tier classification. Pro tier.","description":"Provider reputation API: batch analyze up to 100 merchants for heavy-fleet, captive concentration, and tier classification. Pro tier.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"servers":[{"url":"https://api.twzrd.xyz"}]}},"/v1/intel/watch":{"post":{"operationId":"post_v1_intel_watch","summary":"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.","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. Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"payer_wallet","in":"query","required":true,"schema":{"type":"string"},"description":"Solana payer wallet (base58) whose active watches to list."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Watch registration: payer + seller wallets, optional webhook.","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."}},"required":["payer_wallet","seller_wallet"]}}}}},"get":{"operationId":"get_v1_intel_watch","summary":"List active re-call watches for a payer wallet with current score/decision and recheck_after_unix (query param: payer_wallet; webhook URLs masked to host).","description":"List active re-call watches for a payer wallet with current score/decision and recheck_after_unix (query param: payer_wallet; webhook URLs masked to host). Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"parameters":[{"name":"payer_wallet","in":"query","required":true,"schema":{"type":"string"},"description":"Solana payer wallet (base58) whose active watches to list."}]}},"/v1/intel/watch/{watch_id}":{"delete":{"operationId":"delete_v1_intel_watch_watch_id","summary":"Deactivate a re-call watch by ID (query param: payer_wallet must match the watch owner).","description":"Deactivate a re-call watch by ID (query param: payer_wallet must match the watch owner). Free, no payment, no auth.","tags":["Discovery & Ops"],"security":[],"responses":{"200":{"description":"OK (JSON)."}},"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/agent-readiness":{"post":{"operationId":"post_v1_agent_readiness","summary":"Free payable-agent-surface audit: can an agent find, pay, and prove this seller on Solana x402?","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)."}}}}}}