# TWZRD Agent Intelligence ## Start here (one command, free) curl -s 'https://intel.twzrd.xyz/v1/intel/get_top_intel_agents?limit=1' # one self-consistent JSON: agents[0] (top-scored x402 payer) + total_payers_observed # + corpus_slices (denoised view) + leaderboard_note. No auth, no payment. TWZRD is the independent scorer on the real Solana x402 payer graph. We observe cross-facilitator x402 payment behavior (Helius webhooks on known Solana x402 facilitators) and score it. Free discovery tools let an agent qualify a counterparty BEFORE paying it; the free score already gives the number. The paid trust call (https://intel.twzrd.xyz/v1/intel/trust/{pubkey}, 0.05 USDC) is where you buy the PROOF: a portable, Ed25519-signed V5 receipt anchored to your settlement transaction, offline-verifiable with no trust in TWZRD (plus the renormalized model). It is a discovery + trust surface for x402 agents on Solana, not another way to pay. ## What the corpus numbers mean (honest) total_payers_observed (curl /v1/intel/get_top_intel_agents?limit=1 for the live count) is the RAW observed payer total and INCLUDES the April-2026 CDP demo/onboarding faucet wave (the bulk of it: one-shot payers + single-merchant bots; see corpus_slices.one_shot_le1 and .single_merchant_bots_ge100tx). The durable, real graph is in corpus_slices in that same get_top_intel_agents response: pre_spike_base_last_seen_pre_2026_04 (payers whose entire footprint predates the April faucet) and multi_merchant_ge2 (agents that paid 2+ distinct resources -- the real comparison-shoppers). Read the live values from the response; they drift slowly as the corpus updates. These are ECOSYSTEM payment behaviors we observe and score - NOT calls or revenue to TWZRD. TWZRD's own paid usage of this surface is pre-demand (one external settlement all-time; payer attribution is verified on-chain, never client-declared). ## Paid (x402, USDC on Solana mainnet) - GET https://intel.twzrd.xyz/v1/intel/trust/{pubkey}?seller_wallet= -> 0.05 USDC. Live trust intel + portable V5 receipt. Proven on mainnet. - GET https://intel.twzrd.xyz/v1/intel/solana_market_visibility_map?merchant= -> 0.03 USDC - GET https://intel.twzrd.xyz/v1/intel/solana_market_orderbook_depth?ticker=...&merchant= -> 0.03 USDC - GET https://intel.twzrd.xyz/v1/intel/solana_market_shape?ticker=...&merchant= -> 0.03 USDC - GET https://intel.twzrd.xyz/v1/intel/solana_market_onchain_trades_summary?merchant= -> 0.03 USDC Funding: the payer wallet must hold the USDC itself. Gas is sponsored (the 402 challenge advertises a TWZRD feePayer that co-signs the network fee) - the payment amount is NOT. An unfunded payer gets a machine-readable 402 (reason source_token_account_missing / insufficient_funds) with the exact token account, mint, and required amount to act on. Pass the seller counterparty on every paid call: ?merchant= on market routes, ?seller_wallet= (or X-TWZRD-Seller-Wallet header) on the trust route. It is optional, but it is what arms the settle-time trust gate: if that seller 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. On the trust route the scored {pubkey} itself is never gated -- only the seller_wallet counterparty. ## Free (no payment, no auth) - POST https://intel.twzrd.xyz/v1/intel/preflight (the one-command demo; BEFORE-path ReadinessCard) - GET https://intel.twzrd.xyz/v1/intel/score_wallet_for_intel?wallet=... - GET https://intel.twzrd.xyz/v1/intel/get_top_intel_agents?limit=10&min_paid_calls=2&max_days_since_last=14 (leaderboard; filters optional - min_paid_calls suppresses one-shots, max_days_since_last suppresses dormant) - GET https://intel.twzrd.xyz/v1/intel/get_facilitator_footprint?wallet=... (which x402 facilitators a payer settled through) - GET https://intel.twzrd.xyz/v1/intel/get_counterparties?wallet=...&limit=10 (capped teaser: top merchants this wallet pays; limit<=25) - GET https://intel.twzrd.xyz/v1/intel/compare_wallets?wallet_a=...&wallet_b=... (side-by-side intel for two wallets) - POST https://intel.twzrd.xyz/v1/intel/score_wallets_batch (body: {"wallets":[...]}, up to 25) - GET https://intel.twzrd.xyz/v1/receipts/example (no-wallet SAMPLE signed receipt -> verify offline before you spend) - POST https://intel.twzrd.xyz/v1/receipts/verify (recompute + check a portable V5 receipt leaf) - GET https://intel.twzrd.xyz/.well-known/twzrd-receipt-pubkey (canonical issuer key to pin out-of-band) - GET https://intel.twzrd.xyz/.well-known/x402 (machine-readable service descriptor) - GET https://intel.twzrd.xyz/openapi.json (OpenAPI 3.1 with x402 annotations) - GET https://intel.twzrd.xyz/health ## One-command demo (free) curl -s -X POST https://intel.twzrd.xyz/v1/intel/preflight \ -H 'content-type: application/json' \ -d '{"resource_name":"Jupiter Quote Preview","price_usdc":0.01}' ## Receipt (portable + signed, V6) The signed receipt is a PORTABLE keccak256 leaf (tamper-evidence) PLUS an Ed25519 signature over the leaf bytes (authenticity). As of V6 the leaf binds the full reputation provenance (reputation_score, score_version, data_quality, ...), so those surfaced fields are now signed -- editing any of them invalidates the receipt. Verify it offline: recompute the keccak leaf from the preimage AND check the signature against the published TWZRD receipt-signing public key (key_id twzrd-receipt-ed25519-v1, base58 9V6Pn19kiUA5Rn6JpQfNduanvGt2aXGwsarosNfa2Ldf, ed25519) -- pinned at /.well-known/twzrd-receipt-pubkey (also in /.well-known/x402 and /openapi.json). Unsigned or wrong-key receipts are rejected. The settlement_tx anchor stays independently checkable on-chain for ground truth. ## Verify offline (standalone tool, trusts no TWZRD code) A stranger can verify a signed receipt with only the published key + audited crypto libs. Use >=1.0.7 (it understands the V6 leaf that now binds the reputation_* fields; older versions only know the V5 leaf and will report a leaf mismatch on a current receipt): pip install 'twzrd-receipt-verifier>=1.0.7' # then: twzrd-verify-receipt receipt.json --pubkey 9V6Pn19kiUA5Rn6JpQfNduanvGt2aXGwsarosNfa2Ldf npx twzrd-receipt-verifier@1.0.7 receipt.json --pubkey 9V6Pn19kiUA5Rn6JpQfNduanvGt2aXGwsarosNfa2Ldf ## Live mainnet proof First autonomous x402 settlement on mainnet (0.05 USDC) proves the full rail end to end: 402 -> co-signed payment -> settlement_tx -> signed receipt. tx 3aXGtvmNvFhSSDXF8D4DBDntXFczraUABg75MdWtCgchdYAApRwC7KxdGxbCmewYcA6ZNzw6FvdAHcoevMUG44Sc https://solscan.io/tx/3aXGtvmNvFhSSDXF8D4DBDntXFczraUABg75MdWtCgchdYAApRwC7KxdGxbCmewYcA6ZNzw6FvdAHcoevMUG44Sc Live at https://intel.twzrd.xyz ## MCP install pip install twzrd-agent-intel | uvx twzrd-agent-intel Streamable HTTP: https://intel.twzrd.xyz/mcp Card: https://intel.twzrd.xyz/.well-known/mcp.json ## OpenClaw / MCP install (pure config - no listing, no approval) MCP server: https://intel.twzrd.xyz/mcp (17 tools, MCP 2025-03-26, transport streamable-http) Add it via your MCP client config. OpenClaw builds that expose an `mcp` command: openclaw mcp add twzrd --url https://intel.twzrd.xyz/mcp --transport streamable-http Builds without an `mcp` command: call the HTTP endpoints above directly (curl), or bridge via mcporter. Rule of thumb for any agent that spends USDC: POST /v1/intel/preflight on the seller BEFORE paying - abort on decision=block. The Attention Feed API (velocity and attention signals) is in development. Same API key tiers and preflight gate will apply. ## MCP tools (17 exact names) - get_readiness_card_tool -> free ReadinessCard (can_spend, trust_score, caveats, next_fixes, root_provenance when anchored) - low_level_preflight -> free low-level preflight + spend recommendation - verify_root_inputs -> free MCP + HTTP tool: public /v1/roots/:seq/leaves + independent GLOBAL_V5 leaf hash + keccak-concat dataset_hash + sorted-pair root recompute (PASS|FAIL|ERROR). Complements root_provenance.onchain_match for WZRD deposit/claim/settle. - score_wallet_for_intel -> free wallet intel score from x402 corpus - get_top_intel_agents -> free leaderboard of active x402-paying agents - get_solana_market_visibility_map -> Solana market visibility (free via MCP, 0.03 USDC via HTTP) - get_solana_market_orderbook_depth -> depth/liquidity by ticker (free via MCP, 0.03 USDC via HTTP) - get_solana_market_shape -> market structure signals (free via MCP, 0.03 USDC via HTTP) - get_solana_market_onchain_trades_summary -> on-chain trades summary (free via MCP, 0.03 USDC via HTTP) - get_solana_market_status -> market data-service health/status (free via MCP) - get_provider_reputation -> free provider/merchant reputation from the x402 corpus - is_wash_fleet -> free wash/sybil-fleet check on a wallet set - verify_receipt -> free offline V5 receipt verification (recompute leaf + check sig; optional max_age_seconds for replay protection) - get_facilitator_footprint -> free: which x402 facilitators a payer settled through - get_counterparties -> free (capped teaser): top merchants a wallet pays (limit<=25) - score_wallets_batch -> free: score up to 25 wallets in one call - compare_wallets -> free: side-by-side intel for two wallets ## 402 payment flow (HTTP paid endpoints) 1. Send request to paid endpoint (no auth). 2. Server returns HTTP 402 with payment-required header (x402 v2). 3. Parse accepts list, build payment, retry request with payment-signature header. 4. Response includes settlement_tx + signed V5 receipt (trust route) or market data. 5. Verify receipt offline: recompute keccak256 leaf + check Ed25519 sig vs 9V6Pn19kiUA5Rn6JpQfNduanvGt2aXGwsarosNfa2Ldf. ## onBeforeSettle hook (free preflight gate for third-party settlements) Before signing or sending any x402 payment to an unknown seller, call the free preflight first: POST https://intel.twzrd.xyz/v1/intel/preflight body: {"seller_wallet": "", "price_usdc": 0.05, "agent_intent": "", "queried_pubkey": ""} - decision=block -> abort the settle. Do not sign or send the x402 payment. - decision=warn -> proceed with caution (low corpus signal, not confirmed bad). - decision=allow -> proceed normally. - Fail-open on preflight unavailability (timeout / non-2xx) by default; the seller is not penalised for our downtime. - Reference implementation (sync + async, fail-open + fail-closed variants): verifier/on_before_settle.py in the twzrd-agent-intel package. - openfacilitator integration proposal: docs/proposals/openfacilitator-onbeforesettle.md This is the self-serve path for the settle-time trust gate. Every preflight call costs nothing. A ReadinessCard with decision=block means stop before the money moves. ## OpenClaw plugin (twzrd-preflight) The onBeforeSettle gate above, packaged for OpenClaw. Gates payment-shaped tool calls (AgentCash MCP tools + exec/curl x402 payments) on the same free preflight before they execute. Shadow mode by default: logs would-blocks, never blocks. npm install twzrd-preflight Register in OpenClaw config (plugins array -- bare name for shadow defaults, or an object to configure): "plugins": [{"name": "twzrd-preflight", "config": {"mode": "enforce", "maxPriceUsdc": 1.00}}] Config keys (exact; additionalProperties false): - mode: off | shadow | enforce (default shadow) - failMode: open | closed (default open = allow on API timeout; closed = block, enforce only) - maxPriceUsdc: number | null (default null; over-cap blocks without an API call) - timeoutMs: number (default 5000) - allowWallets / denyWallets: string[] (local allow/deny, no API call) - matchers: [...] (custom tool+param mappings beyond the built-in rails) Hooks: before_tool_call (gate) + after_tool_call (learns origin->payTo wallet from observed 402 envelopes). Gate rule: blocks iff readiness_card.decision == "block". Never gates on can_spend -- unknown wallets score warn/45 and are allowed through. NOT covered: ClawRouter proxy settlements (signed inside the localhost:8402 proxy, invisible to tool hooks; would require an upstream onBeforePayment hook in ClawRouter, which does not exist today). npm: https://www.npmjs.com/package/twzrd-preflight (MIT) | source: https://github.com/twzrd-sol/twzrd-preflight ## MCP registry Smithery listing: https://smithery.ai/servers/wzrd/twzrd-agent-intel Badge: https://smithery.ai/badge/wzrd/twzrd-agent-intel Streamable HTTP endpoint: https://intel.twzrd.xyz/mcp Official MCP registry (domain): xyz.twzrd.intel/twzrd-agent-intel @ 1.0.8 (PyPI twzrd-agent-intel 0.4.0) Official MCP registry (github): io.github.twzrd-sol/twzrd-agent-intel @ 0.3.7 Repository: https://pypi.org/project/twzrd-agent-intel/ ## 0.4.4 trust gate semantics - Package version: see /health package_version (PyPI: twzrd-agent-intel). - Free preflight (POST /v1/intel/preflight): advisory ReadinessCard only. Preflight does NOT block settlement -- it returns a decision your client chooses to honor (see onBeforeSettle hook above). Pass queried_pubkey for consumer attribution on the velocity corpus. - Paid settle gate (GET /v1/intel/trust/* and market paid routes): blocks x402 settlement when TWZRD_SETTLE_GATE_ENABLED=true and seller counterparty score is below threshold. Enforce mode live as of 2026-06-08; shadow mode off. Supply the counterparty per call: ?merchant= (market routes) or ?seller_wallet= / X-TWZRD-Seller-Wallet header (trust route). Without it the gate has nothing to evaluate and settlement proceeds ungated. - Client hook: packages/twzrd-agent-intel/verifier/on_before_settle.py (preflight before pay). - MCP registry auth key (/mcp-registry-auth) is NOT the receipt-signing key (/.well-known/x402).