Trust + receipt layer for x402 agents on Solana: free preflight + paid signed V6 trust receipt.
Solana-based trust and receipt verification layer for x402 agents.
Captured live from the server via tools/list.
get_readiness_card_tool
Free pre-spend gate. Pass seller_wallet (or resource_name for marketplace listings).
Check decision in the response (top-level, no nesting via MCP):
"block" -> DO NOT PAY. Stop.
"warn" -> proceed with caution.
"allow" -> proceed.
trust_score is a free heuristic (heuristic_registry_v0), NOT the full corpus.
For the corpus-backed score + signed v6 receipt: GET /v1/intel/trust/{wallet} (0.05 USDC).
Parameters (8)
resource_namestring
Provider or resource label in a marketplace (for example marketplace:agent-name). Provide this OR seller_wallet.
seller_walletstring
Seller's Solana wallet public key associated with the listing or endpoint. Provide this OR resource_name.
resource_urlstring
Canonical endpoint URL for the resource, if available.
price_usdcnumber
Quoted price in USDC for the action you are evaluating.
buyer_walletstring
Buyer's Solana wallet public key used for spend-context checks.
agent_intentstring
Natural-language intent describing the planned paid action.
marketplace_scoreinteger
Optional upstream marketplace trust score (0-100) to blend into preflight context.
queried_pubkeystring
Consumer pubkey for velocity attribution (echoed on output when provided).
evaluate_x402_resource
One-shot x402 guard. Fetches resource_url, extracts the seller wallet from the 402 accepts
array (prefers Solana network entries), runs TWZRD preflight, and returns a spending decision.
Decision:
"allow" -> safe to proceed with the payment.
"warn" -> proceed with caution; consider buying the paid trust receipt (receipt_url, $0.05).
"block" -> DO NOT PAY. Stop immediately.
is_x402 == False -> not an x402 resource (HTTP != 402); treat as allow.
Revenue path: when decision is "warn", fetch receipt_url with an x402-capable wallet ($0.05
USDC to TWZRD) to get a signed V6 corpus-backed credential with the full trust score.
Parameters (4)
resource_urlstringrequired
URL of the x402 resource to evaluate before paying. Will be fetched to extract 402 payment requirements.
methodstring
HTTP method to use when probing the resource. Default: GET.
agent_intentstring
Natural-language description of what the agent intends to purchase.
price_usdcnumber
Known price in USDC — overrides what the 402 reports. Leave unset to use the 402-reported amount.
low_level_preflight
Low-level preflight check. Returns a richer result object including
the upsell path to the paid /v1/intel/trust surface with v6 receipt.
Prefer get_readiness_card for most callers. Use this when you need
max_spend_recommendation_usdc, full_report_hint, or the suggest_full_report
flag. The embedded `readiness_card` carries the SAME full shape as
get_readiness_card_tool (see the outputSchema).
Parameters (7)
resource_namestring
Provider or listing identifier to evaluate before payment.
seller_walletstring
Seller's Solana wallet public key for reputation and spend checks.
price_usdcnumber
Quoted payment amount in USDC for this intended request.
agent_intentstring
What the agent intends to do with the purchased response or tool.
marketplace_scoreinteger
Optional marketplace-provided score (0-100) for blend-in scoring context.
buyer_walletstring
Buyer's Solana wallet public key; enables buyer-context evidence in scoring.
resource_urlstring
Canonical endpoint URL for the resource, if available.
verify_root_inputs
Independent root verification (see tools/root_verifier.py for the recompute logic).
Parameters (3)
root_seqany
Specific root sequence to verify. If omitted, best-effort resolution via resource metadata or latest.
resource_nameany
WZRD protocol resource (deposit/claim/settle etc.) for auto-detection and seq hints.
seller_walletany
Seller wallet for WZRD protocol resource detection.
get_solana_market_status
Health probe for the Solana Market API data backend.
Call this to gate or degrade gracefully BEFORE the other get_solana_market_*
tools: it does a short-timeout hit on the data service and reports whether it
is reachable, so an agent can tell "market has no data" from "service is down"
without failing a real query.
Free discovery tool. When TWZRD_DFLOW_DATA_FIRST_URL points at a Rust server
with the new /status, the response includes prod_key_configured, data_first_available,
and an actionable note (e.g. "set WZRD_DFLOW for full on-chain visibility").
No parameters.
get_solana_market_visibility_map
Returns the current Solana Market API visibility map (which markets have meaningful
on-chain settlement activity and liquidity signals).
Returns metadata-market count, on-chain-trade-market count, their overlap
(decodable_overlap), coverage_pct, and sample tickers unique to each side.
Free discovery tool. On failure returns a structured {status:"error", kind,
retryable, detail} envelope (call get_solana_market_status to disambiguate).
No parameters.
get_solana_market_orderbook_depth
Returns normalized orderbook depth and liquidity profile for a specific ticker
from Solana Market API data.
Tickers are prediction-market event tickers (e.g. KXUSNFP-26MAY01), not spot
DEX symbols. Free discovery tool. On failure returns a structured
{status:"error", kind, retryable, detail} envelope.
Parameters (1)
tickerstringrequired
Prediction-market event ticker, uppercased (e.g. KXUSNFP-26MAY01). NOT a spot token symbol.
get_solana_market_shape
Returns market shape / structure signals for a ticker (concentration, venue
fragmentation, settlement patterns).
Excellent for understanding *how* a market actually trades on-chain. Tickers
are prediction-market event tickers (e.g. KXUSNFP-26MAY01). On failure returns
a structured {status:"error", kind, retryable, detail} envelope.
Parameters (1)
tickerstringrequired
Prediction-market event ticker, uppercased (e.g. KXUSNFP-26MAY01). NOT a spot token symbol.
get_solana_market_onchain_trades_summary
Returns recent on-chain trade and settlement activity.
- With `ticker`: raw per-market trade rows from the live by-market feed
(/onchain-trades-by-market).
- Without `ticker`: aggregated counts across all markets
(total_trades_observed, distinct_markets_observed, markets_sample) from
/onchain-trades-summary.
The two branches return DIFFERENT shapes (raw rows vs aggregated counts).
Tickers are prediction-market event tickers (e.g. KXUSNFP-26MAY01). On failure
returns a structured {status:"error", kind, retryable, detail} envelope.
Parameters (1)
tickerstring
Optional prediction-market event ticker (e.g. KXUSNFP-26MAY01); omit for the global recent-trades summary.
score_wallet_for_intel
Free discovery: real 0-100 intel score for a wallet from its observed x402
payment history across the broader x402 ecosystem (paid calls, distinct
counterparties, volume, recency).
Uses a simple transparent heuristic (volume log + breadth + spend log + recency
decay) — the exact formula is returned inline as `score_model`. Returns
intel_score, the wash-discounted effective_score + wash_flag/wash_factor
(cheap Sybil signal), counts, component breakdown, and a data_available flag.
Malformed pubkeys are rejected cleanly; the failure path returns the same
shape as success.
Sourced from the cross-facilitator corpus via the public Rust HTTP endpoint
GET /v1/agents/{wallet}/x402 (backed by the x402_solana_payer_agg matview).
For the full corpus-breadth renormalized model (intel_renorm_v1: score_raw,
confidence, breadth_factor, wash_factor) + signed portable v6 receipt, pay for
the HTTP surface: GET /v1/intel/trust/{wallet} (0.05 USDC).
Parameters (1)
walletstringrequired
Solana wallet public key (32-44 base58 chars) to score using x402 payment-history intelligence.
get_top_intel_agents
Leaderboard of the most active paying agents on the network, each with its
real intel score. The free discovery flywheel: find credible counterparties
by actual on-chain payment activity.
Ranks by the wash-discounted effective_score (single-counterparty fleets are
demoted, not hidden) with a deterministic tiebreaker. Set min_paid_calls to
suppress one-shot wallets and max_days_since_last to suppress dormant ones.
Parameters (3)
limitinteger
Maximum number of ranked agents to return (default 10).
min_paid_callsinteger
Filter out wallets with fewer than this many observed paid calls (default 0 = no filter). Use to get credible *active* counterparties, not a raw dump.
max_days_since_lastnumber
Only include wallets active within this many days (default null = no recency filter). Use e.g. 14 to get a feed of currently-active agents and exclude dormant/historical payers.
get_provider_reputation
Free discovery: corpus-backed SELLER reputation for a merchant/provider wallet.
Answers "is this provider organic, narrow, or a wash fleet?" from the merchant's
inbound payment graph over the last 90 days: unique payers, repeat-payer %,
heavy-fleet revenue concentration, captive-payer % (onboarding-sink proxy), and
a scripted-fleet uniformity signal. Returns a wash_label + reputation tier +
wash_flagged bool.
Complements score_wallet_for_intel (payer side) with the seller side. Fail-open:
a DB gap returns wash_label/tier "unknown" rather than erroring. This is the free
seller signal; the paid per-wallet renorm model + signed v6 receipt remain at
GET /v1/intel/trust/{wallet} (0.05 USDC).
Parameters (1)
merchantstringrequired
Seller/merchant Solana wallet public key (the pay_to address) to score on inbound corpus reputation.
is_wash_fleet
Free discovery: cheap circular-flow (wash) check for a payer wallet.
Returns the CATEGORICAL classification (clean / self_pay / reciprocal /
self+reciprocal), an is_circular bool, and the observed event counts +
distinct_merchants from the wallet's corpus edges. Use as a fast Sybil/wash
gate before trusting a counterparty.
Fail-open: a DB gap returns classification "unknown". The numeric wash discount
(wash_factor / wash_ratio) and the full renormalized model stay paid — they are
NOT returned here.
Parameters (1)
walletstringrequired
Solana wallet public key (32-44 base58 chars) to check for circular-flow / wash behavior.
verify_receipt
Free utility: offline-verify a portable v5/v6 trust receipt — the "after you pay"
half of the loop.
Recomputes the Keccak256 leaf from the receipt's preimage (tamper-evidence) AND
verifies the Ed25519 signature against the published TWZRD receipt-signing key
(authenticity). Returns valid/leaf_valid/signature_valid plus the recomputed
leaf and any errors. Pure and offline — no DB, no network, no payment.
Pass the entire PaidReceipt object you were issued. Trust is anchored on the
published key (or expected_pubkey), NOT on whatever pubkey the receipt carries.
max_age_seconds: optional freshness gate (replay protection). Same semantics
as the Python library verify_paid_receipt(..., max_age_seconds=...) and the
standalone CLI --max-age.
Parameters (4)
receiptobjectrequired
The full v6 PaidReceipt object (leaf + preimage + signature + signing_pubkey) returned by the paid /v1/intel/trust surface.
require_signatureboolean
Require and verify the Ed25519 signature (default true). Set false only to inspect an unsigned preview.
expected_pubkeystring
Override the trusted signing pubkey to verify against (default: the published TWZRD receipt key).
max_age_secondsany
If > 0, reject the receipt if its preimage.timestamp_unix is older than this many seconds (replay/freshness protection, same as CLI --max-age and library).
get_facilitator_footprint
Free discovery: which x402 facilitators a payer has settled through, and how many.
unique_facilitators = 1 is a thin/captive agent (locked to one rail); breadth
across facilitators indicates a more established cross-rail agent. Returns the
facilitator_ids list plus tx/merchant context. Fail-open: a DB gap returns
data_available=false rather than erroring.
Parameters (1)
walletstringrequired
Solana wallet public key (32-44 base58 chars) to look up its x402 facilitator footprint.
get_counterparties
Free discovery (capped teaser): the top-N merchants a wallet actually pays, by
event count, with per-edge tx_count / total_usdc / first+last timestamps.
See WHO a counterparty transacts with before trusting it. The list is capped
(default 10, max 25) and `capped`/`total_distinct_merchants` disclose how much
is withheld; the FULL deduped payment graph and numeric edge weights are part
of the paid intel surface (GET /v1/intel/trust/{wallet}). Fail-open.
Parameters (2)
walletstringrequired
Payer Solana wallet public key (32-44 base58 chars) whose counterparties (merchants paid) to list.
limitinteger
Max counterparties to return (default 10, hard cap 25 - this is a capped teaser).
score_wallets_batch
Free discovery: score up to 25 wallets in a single call (each via the same
transparent model as score_wallet_for_intel). Convenience for triaging a set of
candidate counterparties at once; `requested`/`capped` disclose any truncation.
Parameters (1)
walletsarrayrequired
List of Solana wallet pubkeys to score in one call (hard cap 25; extras are dropped).
compare_wallets
Free discovery: side-by-side intel for two wallets (e.g. choosing between two
candidate providers). Returns both full score objects and which ranks higher by
the wash-discounted effective_score ("tie" on equal, null if a side is unavailable).
Live MCP server • https://intel.twzrd.xyz/mcp (18 tools)
Client SDKs • x402 trust gates + Eliza plugins
Self-host • Deploy configs + public wiring (scoring engine stays private)
Check any Solana wallet or x402 seller before you pay. Free preflight returns
a ReadinessCard (allow / warn / block + trust score + risk factors) from the real
cross-facilitator Solana x402 payment corpus.
Quick Start
bash
# No signup, no API key — just curl
curl -s -X POST https://intel.twzrd.xyz/v1/intel/preflight \
-H 'content-type: application/json' \
-d '{"seller_wallet": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", "agent_intent": "test"}'
MIT — see LICENSE. Each package independently MIT-licensed.
Scoring engine IP is protected. The proprietary intel scoring, wash detection,
and trust renormalization models remain private in the TWZRD monorepo.
Agents consume them through the live API — no source needed.
Install
Configuration
Environment variables
TWZRD_SIGNAL_SOURCE
Signal source: 'artifacts' (your own settlement volume from TWZRD_ARTIFACTS_DIR) or 'bazaar' (live cross-facilitator x402 catalog). Defaults to a static research registry.