Skip to main content
Glama

TWZRD Agent Intelligence

Server Details

Pre-spend x402 reputation from observed behavior, plus portable signed V6 receipts.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
twzrd-sol/twzrd-trust
GitHub Stars
0
Server Listing
TWZRD Agent Intel

TDQS

A3.5/5.0

Scored across 22 tools

Disambiguation2/5

Several tools occupy nearly the same slot: evaluate_x402_resource, get_readiness_card_tool, and low_level_preflight all produce a block/warn/allow spending decision, and get_provider_reputation vs get_merchant_card both profile the inbound payment graph of a seller wallet. The long descriptions partially compensate, but an agent will still struggle to pick the correct one without reading deeply.

Naming Consistency3/5

The majority are readable verb_noun get_* names, but the set mixes conventions: bare verbs (compare_wallets, evaluate_x402_resource, verify_receipt), an is_ prefix (is_wash_fleet), and the twzrd_watch_* / twzrd_demo_gate prefix group. Everything is snake_case and mostly predictable, so it is not chaotic, just inconsistent.

Tool Count3/5

22 tools is at the heavy end for a single MCP server, and several free discovery variants (score_wallet_for_intel, score_wallets_batch, compare_wallets, get_poec_score, get_merchant_card, get_provider_reputation) could plausibly be consolidated. Each has a distinct query shape, but the count feels higher than the core workflow requires.

Completeness4/5

The core trust-intel lifecycle is well covered: pre-spend readiness (readiness/preflight/block/warn/allow), post-payment verification (verify_receipt), ongoing monitoring (twzrd_watch_add/list/remove), and wallet/seller scoring. Minor gaps remain: the paid full trust report is only referenced as an HTTP endpoint rather than exposed as a tool, and get_solana_market_status is peripheral to the stated domain.

Available Tools

22 tools
compare_walletsA
Read-onlyIdempotent
Inspect
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).
ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_aYesFirst wallet (Solana base58 or Base 0x) to compare.
wallet_bYesSecond wallet (Solana base58 or Base 0x) to compare.

Output Schema

ParametersJSON Schema
NameRequiredDescription
wallet_aNoFull score object for the first wallet.
wallet_bNoFull score object for the second wallet.
higher_effective_scoreNoWallet with the higher wash-discounted score, or "tie", or null if a side was unavailable.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and idempotent annotations, the description discloses meaningful return behavior: it returns full score objects, ranks by wash-discounted effective_score, returns 'tie' on equality, and returns null if a side is unavailable. This gives the agent important edge-case knowledge without needing to invoke the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, well-structured, and front-loaded with the core purpose. The parenthetical use case and return semantics are concise yet informative, with no filler or redundant restating of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, read-only comparison tool, the description covers the purpose, usage context, return value shape, ranking logic, tie behavior, and unavailable-side behavior. Combined with complete schema descriptions and an output schema, nothing critical is missing for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% parameter coverage with clear descriptions for wallet_a and wallet_b, including accepted formats (Solana base58 or Base 0x). The tool description does not add new parameter-level meaning, but the schema fully carries that burden, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific operation—comparing two wallets—and clearly states the resource ('two wallets') and the output ('both full score objects' and rank). It also implies the distinguishing use case ('choosing between two candidate providers'), which differentiates it from single-wallet or batch siblings like score_wallet_for_intel and score_wallets_batch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this tool when you need side-by-side intelligence for exactly two wallets, such as comparing candidate providers. It does not explicitly name alternative tools or state when not to use it, but the 'two wallets' framing and the example make the intended usage unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_x402_resourceA
Read-onlyIdempotent
Inspect
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.
wash_flagged=true never soft-allows. Unlabeled leftover 0.05 / leftover=0 is not a unit price.

Decision:
  "allow"   -> proceed only under agent policy. Never when wash_flagged=true.
  "warn"    -> proceed with caution up to the cap; first paid hop is teaser_url ($0.001 /quick). Optional V7 receipt_url is $0.05.
  "block"   -> DO NOT PAY. Stop immediately.
  "unknown" -> is_x402 == False: no 402 challenge was issued at all, so nothing was
               evaluated -- this is NOT a trust verdict. A seller can trivially make
               this happen by returning a non-402 status to this probe while charging
               through a different path for a real caller. Never treat "unknown" as
               a green light; if the caller actually intends to pay this resource_url,
               that separate payment path needs its own evaluation.

Hard-stops:
  wash_flagged=true never soft-allows (decision=block).
  price_usdc is a unit price only when price_kind=exact. Unlabeled leftover 0.05 /
  leftover=0 and scheme=upto leftover defaults are not a per-request price.

Revenue path: when decision is "warn", fetch teaser_url first ($0.001 USDC to TWZRD,
GET /v1/intel/quick/{seller}). Optional receipt_url is the $0.05 V7 signed credential.
ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoHTTP method to use when probing the resource. Default: GET.GET
price_usdcNoCaller-supplied exact unit price in USDC — overrides a 402 exact quote. Leave unset to use the 402-reported amount when price_kind=exact. Unlabeled leftover 0.05 / leftover=0 is not a unit price.
agent_intentNoNatural-language description of what the agent intends to purchase.
resource_urlYesURL of the x402 resource to evaluate before paying. Will be fetched to extract 402 payment requirements.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNoThe evaluated resource URL.
errorNoError or info message; present on non-402 and degraded paths.
is_x402NoTrue if the resource returned HTTP 402 with x402 payment requirements.
decisionNoSpend decision: "allow" | "warn" | "block" | "unknown". wash_flagged=true never soft-allows — this field is block. "unknown" means is_x402 is False -- no 402 challenge was issued, so no trust evaluation happened. Never treat "unknown" as a green light.
price_kindNoexact | upto_cap | unknown. upto_cap means price_usdc is not a unit price.
price_usdcNoQuoted unit price in USDC from the 402 response. Null when the accept is scheme=upto / price_kind=upto_cap, or the figure is unlabeled leftover 0.05 / leftover=0 (not a unit price).
teaser_urlNoFirst paid hop: $0.001 score-only teaser URL.
receipt_urlNoOptional $0.05 V7 portable receipt URL.
trust_scoreNoComposite trust signal, 0-100.
upsell_usdcNoCost of the first paid hop in USDC (0.001 teaser).
receipt_usdcNoCost of the optional V7 receipt in USDC (0.05).
seller_walletNoSeller wallet extracted from the 402 accepts array (Solana preferred).
max_price_usdcNoAdvertised maximum USDC when price_kind is upto_cap.
readiness_cardNoFull readiness card from the preflight evaluation.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavioral context beyond the readOnlyHint/idempotentHint annotations: decision semantics, wash_flagged hard-stops, price_kind caveats, and the important warning that 'unknown' is not a trust verdict because a seller can spoof non-402 responses. No contradiction with annotations; the revenue path reads as guidance for the agent, not as the tool itself making payments.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with a good summary and uses clear sections. However, key caveats are repeated multiple times: wash_flagged appears three times, the leftover/price caveat appears in both the opening and hard-stops, and teaser_url pricing appears twice. This redundancy makes it less concise than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers decision interpretation, dangerous edge cases, price semantics, hard-stops, and the revenue path for warn outcomes. Since an output schema exists, return-value explanation is not needed. The only undefined notions like 'agent policy' and 'the cap' are external policy concepts rather than missing tool-invocation detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description mostly repeats price_usdc and resource_url semantics already present in the schema, and adds nothing new about method or agent_intent. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific behavior: fetches resource_url, extracts the seller wallet from the 402 accepts array, runs TWZRD preflight, and returns a spending decision. It is clear and resource-specific, though it does not explicitly differentiate itself from sibling tools like low_level_preflight or twzrd_demo_gate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit action guidance for each decision value: allow, warn, block, unknown. Hard-stops and revenue-path instructions are also given. However, it does not state when not to use this tool or name alternatives, so some sibling-routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_counterpartiesA
Read-onlyIdempotent
Inspect
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.
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax counterparties to return (default 10, hard cap 25 - this is a capped teaser).
walletYesPayer Solana wallet public key (32-44 base58 chars) whose counterparties (merchants paid) to list.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent only on the degraded path.
cappedNoTrue if the full merchant set exceeds the returned list.
walletNoThe payer wallet looked up.
returnedNoNumber of counterparties returned (<= limit).
teaser_noteNoStates that the full deduped graph + edge weights are paid.
total_eventsNoTotal observed payment events for this payer.
counterpartiesNoCapped top-N merchants paid, each with tx_count, total_usdc, first_at, last_at.
data_availableNoFalse when the corpus/DB was unavailable.
total_distinct_merchantsNoTotal distinct merchants this payer has paid (full, uncapped).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, idempotentHint), the description adds behavioral traits: it's a capped teaser, returns top-N by event count, includes 'capped' and 'total_distinct_merchants' fields, and mentions 'fail-open'. This adds context about data completeness and potential partial success.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear lead sentence and subsequent details. It is somewhat verbose but contains no wasted sentences. It front-loads the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 parameters and an output schema, the description is complete. It explains the return format (per-edge details, capped/total fields), notes the paid alternative, and mentions failure behavior ('fail-open'). No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning by clarifying the 'wallet' parameter is a payer and the 'limit' is a cap (teaser). It also provides context about the default and maximum. This adds value beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists top-N merchants a wallet pays, with per-edge details. It uses specific verbs ('discover', 'list') and resources ('merchants', 'wallet'). However, it does not explicitly differentiate from sibling tools like get_merchant_card or get_provider_reputation, though the context suggests it's a counterparty discovery tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage guidance: it's a free capped teaser, useful before trusting a counterparty, and notes that the full graph is paid. It implicitly suggests when to use (free discovery) and when not (if full graph needed). It does not explicitly mention alternative tools, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_facilitator_footprintA
Read-onlyIdempotent
Inspect
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.
ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana wallet public key (32-44 base58 chars) to look up its x402 facilitator footprint.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent only on the degraded path.
foundNoTrue if the wallet has observed corpus activity.
walletNoThe wallet looked up.
tx_countNoTotal observed paid calls.
last_seenNoISO timestamp of last observed activity.
first_seenNoISO timestamp of first observed activity.
data_availableNoFalse when the corpus/DB was unavailable.
facilitator_idsNoThe facilitator identifiers observed for this payer.
unique_merchantsNoDistinct merchants paid.
unique_facilitatorsNoDistinct x402 facilitators this payer has settled through (1 = thin/captive).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint and idempotentHint. The description adds beyond these by specifying fail-open behavior (returns data_available=false on DB gap) and the exact data returned (facilitator_ids list plus tx/merchant context), which are not covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with four sentences covering purpose, interpretation, and behavioral details. It is front-loaded with the main purpose and avoids fluff, though could be slightly more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only one parameter and an output schema (exists but not shown), the description provides sufficient context: purpose, interpretation hints, and fail-open behavior. It is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already fully describes the wallet parameter (format, base58). The description does not add any additional parameter semantics, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides discovery of which x402 facilitators a payer has settled through and their count, with a specific verb (discovery) and resource (facilitator footprint). It distinguishes from sibling tools like get_x402_directory by focusing on a specific payer's settled facilitators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives interpretive guidance (e.g., unique_facilitators = 1 indicates a thin/captive agent) and contextual hints for when to use the tool (to assess cross-rail activity). However, it does not explicitly state when not to use it or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_merchant_cardA
Read-onlyIdempotent
Inspect
Free merchant card: observed inbound payment-graph quality around a Solana
receive wallet.

Dual input (PR-3): pass ``wallet`` and/or ``resource_id``. Resource resolves via
the first-party registry (TWZRD seed) to a pay_to, then the same graph card.
Does NOT claim service quality (resource_listing_only / catalog_listing_only).

HTTP twin: GET /v1/intel/merchant_card/{wallet_or_resource_id}.
Compact (default) includes observed_at, stale, corpus_complete_day,
corpus_age_days. Catalog services stay behind full=true.

wash_flagged is tri-state: true (flagged) | false (evaluated clean) |
null (never evaluated - NOT clean). wash_flagged=true never soft-allows
(next_action.decision=refuse; no warn/allow/quick). Unlabeled leftover
0.05 / leftover=0 is not a unit price; cheapest_listed_price_usdc omits
leftover and upto_cap amounts. Route on next_action.decision
(refuse | insufficient_evidence | no_negative_signal); the card is
down-only and never returns allow. `reason` carries the specific
finding (e.g. a soft wash risk collapsed into "refuse", or a corpus
outage collapsed into "insufficient_evidence") when the 3-value
decision alone is not enough context.
ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoIf true, include catalog services. Default is the compact decision surface.
walletNoReceive wallet (x402 pay_to / merchant pubkey). Observed payment-graph card only — not a business, demand, or identity attestation.
resource_idNoOptional registry resource_id (HTTP path template or mcp:tool). Resolved to merchant_wallet via PR-3 seed; claim resource_listing_only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

ReadOnly/idempotent hints are backed and heavily extended by the prose: the card is down-only and never returns allow, wash_flagged is tri-state with refusal behavior, and reason collapses edge cases into the three decision values. This gives the agent actionable knowledge about the output that annotations alone cannot.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and long, but front-loaded with the purpose and inputs; decision semantics and special-value caveats are grouped at the end. It could be trimmed, but nearly every sentence carries domain-specific operational information rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and the tool is a read-only card, the description is complete: input resolution, default vs full behavior, key output fields, decision routing, tri-state flag semantics, and caveats about price fields are all covered. There are no obvious gaps that would prevent correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents all three parameters at 100% coverage, and the description adds clarifying behavior on top: dual wallet/resource_id resolution via PR-3, full vs compact output surfaces, and what full=true does with catalog services. It does not add much syntax-level detail, but the extra meaning is useful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first line names the exact resource ('merchant card') and the exact data observed ('inbound payment-graph quality around a Solana receive wallet'), so an agent immediately knows what this tool computes. It also adds negative scope ('Does NOT claim service quality') and a decision surface, distinguishing it from service-quality or business-attestation siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear invocation context: pass wallet and/or resource_id, default is compact, full=true pulls catalog services, and consumers should route on next_action.decision. It does not name sibling tools or provide an explicit when-not-to-use statement, so it stops short of full alternative routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_poec_scoreA
Read-onlyIdempotent
Inspect
Free preview: PoEC v0 (Proof of Economic Contribution) for a payer wallet,
computed from the same observed x402 snapshot score_wallet_for_intel returns.

poec_score = log10(1 + observed USDC sent) x success_quality x diversity
x wash_cleanliness, behind hard floors (>=5 paid calls, >=3 distinct
counterparties, wash_factor >= 0.5, not single-counterparty, wash_flag
clean). Any failed floor, or an unobservable corpus, scores 0.0 with
floors_passed=false - the floors fail closed, never open. wash_factor is a
cleanliness multiplier (1.0 = clean) and is never inverted.

Honesty contract: `claimable` is ALWAYS false. Volume here is
corpus-observed, not a payout unlock. `success_quality` comes from the
payer join onto signed `receipt_settlement_leaves` (0211); if that join
is unobservable, `success_rate` stays in evidence_gaps and the score
reads 0.0. What this surface already shows honestly is the floor filter
(eligible_v0) and every component the score is built from. Self-reported
settlements go through submit_contribution_claims.

Base (EVM) 0x wallets are scored from the relayer-attributed x402_base_daily
rollup (90d) with the same shape, but no wash/sybil graph exists for Base
payers yet, so their wash_flag reads "unknown" (never "clean"), the wash
floor stays closed, and poec_score stays 0.0 regardless of real volume.
A wallet the corpus could not observe at all returns `error` set; on that
path any real observed Base volume is attached under `base_observed`.
ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesPayer wallet (Solana base58 or Base 0x) to score for Proof of Economic Contribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofNoISO timestamp the snapshot was scored at.
errorNoPresent only when the wallet could not be observed at all (e.g. not a valid Solana pubkey, upstream unavailable) -- distinguishes 'not scoreable' from a genuinely inactive wallet, both of which otherwise read as poec_score 0.0.
walletNoThe scored payer wallet.
claimableNoAlways false: volume is corpus-observed, not facilitator-attested or joined to a settlement leaf.
wash_flagNo"clean" | "single_counterparty" | "unknown", from the intel snapshot.
componentsNoobserved_volume, success_quality, diversity, hop_multiplier, wash_cleanliness, solana_boost.
paid_callsNoObserved x402 paid calls sent.
poec_scoreNolog10(1 + observed USDC sent) x success_quality x diversity x wash_cleanliness; 0.0 when any floor fails.
eligible_v0NoFloors passed and observed volume > 0. A floor filter, not an unlock.
success_rateNoSigned receipt_settlement_leaves for this payer / observed paid_calls, capped at 1.0. None = join unobservable; 0.0 = join ran, zero attested leaves. Never implies claimable.
base_observedNoPresent only for a Base (EVM) wallet TWZRD has independently observed paid calls from: real paid_calls/total_usdc/distinct_counterparties (90d, high-confidence, x402_base_daily). Informational only -- no wash/sybil evaluation exists for Base payers yet, so poec_score and floors_passed are unaffected by this field.
evidence_gapsNoInputs with no live source. Empty plus success_rate 0.0 means the 0211 join ran and this wallet has no signed settlement leaf — not a missing join.
floors_passedNoAll hard floors held: >=5 paid calls, >=3 distinct counterparties, wash_factor >= 0.5, not single-counterparty, wash_flag clean, corpus observable.
score_versionNoPoEC contract version, e.g. "poec_v0".
source_intel_scoreNointel_score of the underlying snapshot.
source_effective_scoreNoeffective_score of the underlying snapshot.
distinct_counterpartiesNoDistinct counterparties observed.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is highly transparent about edge-case behavior, including returning an error for unobserved wallets, Base wallets being marked wash_flag 'unknown', floors staying closed, and scores being 0.0 in those cases. This goes well beyond the readOnlyHint and idempotentHint annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is heavily repetitive, restating the same floor/failure semantics multiple times with nearly identical phrasing (e.g., 'floors fail closed, never open' and 'never inverted'). While the structure is logical, the redundancy makes it less concise than it should be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though an output schema exists and return values need not be explained, the description covers important contextual edge cases such as unobserved wallets, Base-specific limitations, and the error path. It is complete enough for an agent to understand when and how the tool behaves.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes the wallet parameter as a payer wallet with Solana base58 or Base 0x formats, so the description adds little new parameter-level meaning. Since schema coverage is 100%, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool scores a payer wallet for Proof of Economic Contribution and explicitly references the same x402 snapshot returned by score_wallet_for_intel, helping distinguish it from that related tool. It also mentions the alternative path for self-reported settlements via submit_contribution_claims.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives usable guidance by contrasting this tool with score_wallet_for_intel's snapshot and explicitly routing self-reported settlements to submit_contribution_claims. It could more explicitly state when to choose this tool over other siblings, but the main alternatives are addressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_provider_reputationA
Read-onlyIdempotent
Inspect
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, and top_payer_tx_pct (captive
concentration). Returns wash_label + reputation tier + wash_flagged
(tri-state: true | false | null; null = never evaluated, not clean).

Complements score_wallet_for_intel (payer side) with the seller side.
wash_flagged=true never soft-allows (buyer refuse; preflight block). Fail-open:
a DB gap returns wash_label/tier "unknown" AND wash_flagged=null (plus
wash_confidence) - an unevaluated verdict, never a clean one. This is the free
seller signal. First paid hop is GET /v1/intel/quick/{wallet} (0.001 USDC).
Optional V7 renorm + signed receipt is GET /v1/intel/trust/{wallet} (0.05 USDC).
ParametersJSON Schema
NameRequiredDescriptionDefault
merchantYesSeller/merchant Solana wallet public key (the pay_to address) to score on inbound corpus reputation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNoDegraded-path reason (e.g. db_unavailable, no_corpus_inbound).
merchantNoThe seller/merchant Solana wallet looked up.
total_txNoTotal inbound paid calls (90d).
wash_labelNoSeller class: "provider_organic_broad" | "provider_mixed" | "provider_narrow_or_unknown" | "wash_shaped" | "fleet_dominated" | "unknown".
wash_flaggedNotrue = fleet/wash/captive/scripted-fleet signals tripped — never soft-allow (refuse / preflight block); false = evaluated and clean; null = never evaluated (unknown - do NOT coerce to false).
score_versionNoprovider_reputation_v1.
unique_payersNoDistinct payers observed paying this merchant (90d).
wash_confidenceNo"full" when self+reciprocal+ring ran; "base_2cycle" when the Base 2-cycle overlay ran but the live 3-cycle ring query did not return (not a full screen); "partial_inbound_only" when the circular-flow overlay did not run.
avg_tx_per_payerNoAverage inbound tx per payer.
repeat_payer_pctNoPercent of payers who paid more than once.
top_payer_tx_pctNoPercent of inbound settles supplied by the single largest payer (captive concentration; >=90 with volume floor flags wash; null = not computed).
captive_payer_pctNoPercent of payers who pay ONLY this merchant (captive/onboarding-sink proxy).
heavy_fleet_tx_cvNoTx-count uniformity across heavy-fleet payers; near-zero = scripted sybil fleet.
total_revenue_usdNoTotal inbound USDC revenue (90d).
heavy_fleet_payersNoCount of heavy single-counterparty fleet payers.
heavy_fleet_revenue_pctNoPercent of revenue from heavy-fleet payers.
provider_reputation_tierNoTier: "tier_a_provider" | "tier_b_provider" | "tier_tail" | "tier_wash_demo" | "unknown".

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses critical runtime behavior: wash_flagged is tri-state where null means 'never evaluated, not clean', fail-open behavior on DB gaps returns an 'unevaluated' verdict rather than a clean one, and wash_flagged=true blocks preflight/buyer refusal. This is exactly the kind of non-obvious behavior an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but purposeful: purpose, output semantics, fallback behavior, sibling contrast, and paid alternatives are all packed in without fluff. A few parenthetical asides make it slightly run-on, but every sentence earns its place and the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only, idempotent tool with an output schema, the description is complete. It covers call semantics, failure behavior, pricing, and the relationship to the paid API, leaving no material gap in what an agent needs to invoke or interpret this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the sole parameter 'merchant' with 100% coverage, so the description does not need to carry much weight. It adds the useful nuance that the merchant is the pay_to address scored on 'inbound corpus reputation', but no new format or constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'free discovery: corpus-backed SELLER reputation for a merchant/provider wallet.' It names the exact questions answered and the computed signals (wash_label, reputation tier, wash_flagged), and explicitly differentiates from score_wallet_for_intel as the seller-side complement to the payer side.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly frames this as the free seller signal, states that it complements score_wallet_for_intel, and names the paid upgrade paths with prices. It does not explicitly state when NOT to use it relative to siblings like is_wash_fleet or low_level_preflight, so exclusion guidance is slightly incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_readiness_card_toolA
Read-onlyIdempotent
Inspect
PRIMARY free pre-spend gate (advisory). Pass seller_wallet OR resource_name.
wash_flagged=true never soft-allows. Unlabeled leftover 0.05 / leftover=0 is not a unit price.

When to use: before any x402 payment to a seller/resource.
When not to use: after you already decided to refuse; use verify_receipt for signed receipts only.

Pricing: free. Result is advisory (buyer policy still applies).

Hard-stops:
  wash_flagged=true never soft-allows (decision=block / do_not_pay; no warn/allow/quick).
  Unlabeled leftover 0.05 / leftover=0 is not a unit price; read price_kind.
  Caller-supplied or scheme/price_kind=exact 0.05 stays a unit price.

Decision semantics (top-level, no nesting via MCP):
  decision=block / recommended_action=do_not_pay -> DO NOT PAY.
  decision=warn / recommended_action=proceed_with_cap -> pay only up to maximum_recommended_spend_usdc.
  decision=allow / recommended_action=proceed_for_small_spend -> proceed under agent policy (no free-tier cap).

next_action (enrollment handoff — do not stop after free card):
  next_step_type / payment_required / executable / command describe an
  optional next step. A host may use command only under its own policy.
  Never paste path templates (:pubkey / {pubkey}) as seller_wallet.

Also returns reason_codes[], confidence, model_version, decision_envelope.

trust_score is a free heuristic, NOT the full corpus.
Next: on allow/warn for material spend, next_action.command is the
optional AgentCash paid-trust or AutoGate install string, then verify_receipt
when you have a V6 receipt.
Optional: twzrd_watch_add for re-check after recheck_after_unix.

Additive: top-level aop_bind program registry (evidence hierarchy) when enabled;
never mutates decision / can_spend.
ParametersJSON Schema
NameRequiredDescriptionDefault
price_usdcNoCaller-supplied exact unit price in USDC. Leave unset unless you have an exact quote. Unlabeled leftover 0.05 / leftover=0 is not a unit price.
agent_intentNoNatural-language intent describing the planned paid action.
buyer_walletNoBuyer's Solana wallet public key used for spend-context checks.
resource_urlNoCanonical endpoint URL for the resource, if available.
resource_nameNoProvider or resource label in a marketplace (for example marketplace:agent-name). Provide this OR seller_wallet.
seller_walletNoSeller's Solana base58 wallet (32-44 chars) for the listing or endpoint. Provide this OR resource_name. CRITICAL: never pass OpenAPI templates (:pubkey, {pubkey}, {seller_wallet}, SELLER_WALLET, PAY_TO_WALLET) — use accepts[].payTo from a 402 challenge.
queried_pubkeyNoConsumer pubkey for velocity attribution (echoed on output when provided).
marketplace_scoreNoOptional upstream marketplace trust score (0-100) to blend into preflight context.

Output Schema

ParametersJSON Schema
NameRequiredDescription
proofNoProof block: v5_receipt_upsell_available, has_v5_receipts, receipt_endpoint, known_seller_wallets, provider_reputation.
staleNoTrue when uploaded-corpus age exceeds the high-confidence re-check window. Warning only; not a wash refuse.
caveatsNoRisk factors and the always-on trust_score_basis caveat.
versionNoCard schema version, e.g. readiness_card_v1.
categoryNoResource category (e.g. defi, defi_intelligence).
decisionNoSpend decision: "allow" | "warn" | "block". wash_flagged=true never soft-allows — this field is block (no warn/allow/quick).
can_spendNoPrice-aware proceed flag (not 'true only on allow'). block → false; allow → true (unless known price exceeds free-tier ceiling); warn → true only when price_usdc is known and fits under recommended_cap_usdc, else false. Free card is advisory; AutoGate on the pay path enforces.
next_fixesNoActionable steps the provider can take to raise trust.
price_kindNoexact | upto_cap | unknown. upto_cap means price_usdc is not a unit price.
price_usdcNoQuoted unit price in USDC. Null when price_kind is upto_cap or the figure is unlabeled leftover 0.05 / leftover=0 (scheme=upto leftover defaults, including stale 0.05, are not a unit price).
observed_atNoISO-8601 watermark of the uploaded Dune complete day (not card-build time).
paid_teaserNoFirst paid hop: $0.001 score-only teaser (/v1/intel/quick/{wallet}).
trust_scoreNoComposite trust signal, 0-100.
recheck_hintNoOne-line hint: re-verify via GET /v1/intel/trust/{pubkey}. Do not gate solely on recheck_after_unix -- it is unsigned on a paid receipt; use your own max_age_seconds.
resource_nameNoResolved resource/provider label.
seller_walletNoSeller Solana wallet, if known.
max_price_usdcNoAdvertised maximum USDC when price_kind is upto_cap. Not a unit price.
paid_deep_diveNoOptional Path A V7 receipt surface (/v1/intel/trust/{wallet}).
queried_pubkeyNoConsumer pubkey echoed when provided on input (velocity attribution; not a settle gate).
staleness_daysNoRecommended re-check cadence in days (7 high-quality, 3 partial/stale). ADVISORY AND UNSIGNED on a paid receipt.
corpus_age_daysNoWhole days since corpus_complete_day.
data_as_of_unixNoAnchor time for the staleness calculation (seller last activity or card build time).
paid_price_usdcNoPrice of the optional V7 receipt in USDC (0.05).
root_provenanceNoWZRD protocol root metadata (for deposit/claim/settle resources): latest_root_seq, dataset_hash (if known), leaf_version (GLOBAL_V5), verification_status, onchain_match (null = call verify_root_inputs before on-chain action), market_velocity (when the market data service is configured, for cross-referencing on-chain velocity/attention signals with the root's attention_bonus). Auto-populated on protocol keywords/mints/categories. Complements the verify_root_inputs tool for independent GLOBAL_V5 leaf + dataset + sorted-pair root recompute from public leaves. Null/absent on non-protocol resources.
paid_teaser_usdcNoPrice of the first paid hop in USDC (0.001).
score_decay_modelNostep:<=7d=1.0,<=30d=0.8,<=90d=0.5,>90d=0.25 (the recency decay on paid scores). ADVISORY AND UNSIGNED on a paid receipt.
trust_score_basisNoProvenance of the score; ALWAYS the free heuristic, never the paid corpus model.
recheck_after_unixNoUNIX timestamp after which this intel is stale. ADVISORY AND UNSIGNED on a paid receipt -- it is outside the signed leaf, so a receipt holder can extend it and the receipt still verifies. Enforce your own policy via verify_receipt(max_age_seconds=...), which checks the SIGNED preimage.timestamp_unix.
corpus_complete_dayNoUploaded corpus complete day (YYYY-MM-DD). Snapshot boundary, not live ingest.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and idempotentHint annotations, the description explains that the result is advisory, that decision=block means do_not_pay, that wash_flagged=true never soft-allows, and that trust_score is 'a free heuristic, NOT the full corpus.' It also discloses the optional next_action enrollment handoff and states the aop_bind registry 'never mutates decision / can_spend.' This is substantial behavioral context consistent with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with headers, a front-loaded purpose, and compact bullet lists. Some redundancy exists—'wash_flagged=true never soft-allows' and 'free'/'advisory' appear more than once—so it is not maximally concise, but the density and organization justify its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex advisory tool, the description covers when to call it, hard stops, decision semantics, return fields, next-step handoffs, pricing, and safety caveats. An output schema exists, so full return-value documentation is not required in the description. Nothing needed to invoke it correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all eight parameters. The description adds extra semantic guidance beyond the schema by saying 'Pass seller_wallet OR resource_name,' warning against pasting path templates as seller_wallet, and clarifying that 'Unlabeled leftover 0.05 / leftover=0 is not a unit price.' It does not restate every param, but it strengthens the most error-prone ones.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'PRIMARY free pre-spend gate (advisory)' and immediately specifies the action context: 'before any x402 payment to a seller/resource.' It states the tool returns a readiness assessment rather than executing payment, and differentiates itself from verify_receipt by saying that sibling is 'for signed receipts only.' This is a specific verb+resource with sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is explicit: 'When to use: before any x402 payment to a seller/resource.' It also gives a clear exclusion: 'When not to use: after you already decided to refuse; use verify_receipt for signed receipts only.' The description even routes follow-up behavior to verify_receipt and twzrd_watch_add, so an agent knows exactly when this gate applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_solana_market_statusA
Read-onlyIdempotent
Inspect
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 the market data service exposes /status, the response
includes prod_key_configured, data_first_available, and an actionable note
describing what to configure for full on-chain visibility.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNoNormalized velocity score 0.0-1.0.
trendNoVelocity trend: rising | stable | declining.
detailNoHuman-readable status or error detail.
availableNoTrue if the Solana Market data service responded.
velocity_rankNoVelocity rank from market signals (higher better).
market_velocityNoFull velocity payload when present (rank/trend/score/last_updated). Populated into ReadinessCard.root_provenance.market_velocity for WZRD protocol resources.
base_url_configuredNoWhether the market data-service base URL is explicitly configured.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds significant behavioral context: short-timeout hit, reports reachability, and mentions response fields (prod_key_configured, data_first_available, actionable note), which goes well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (5 sentences) and front-loaded with the key purpose. Every sentence adds value, though minor tightening could be possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and an existing output schema, the description fully explains the tool's purpose, usage guidance, and behavioral details. It is complete for the agent to decide when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so baseline is 4. The description does not need to add parameter info; it correctly focuses on the tool's purpose and behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is a health probe for the Solana Market API data backend, using specific verb+resource ('Health probe') and explicitly distinguishes it from sibling tools by advising to call it before other get_solana_market_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use this tool ('Call this to gate or degrade gracefully BEFORE the other get_solana_market_* tools') and provides context about being a free discovery tool, giving clear guidelines.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_intel_agentsA
Read-onlyIdempotent
Inspect
Leaderboard of observed payer wallets in the x402 settlement graph, each
with its intel score. This is behavioral corpus research, not identity
proof or evidence that the wallet is a TWZRD customer.

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of ranked payer wallets to return (default 10).
min_paid_callsNoFilter 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_lastNoOnly include wallets active within this many days (default null = no recency filter). Use e.g. 14 to exclude dormant or historical payers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of rows returned.
errorNoPresent only on the degraded path.
agentsNoRanked agent rows, each with intel_score, effective_score, wash fields, and rank.
score_modelNoSelf-describing scoring contract.
score_versionNoScoring contract version.
data_availableNoFalse when the corpus/DB was unavailable.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations (readOnlyHint, idempotentHint) by explaining the ranking mechanism: 'Ranks by the wash-discounted effective_score (single-counterparty fleets are demoted, not hidden).' This reveals important behavioral context for interpreting results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (three sentences), front-loads the main purpose, and avoids extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 optional parameters, output schema exists), the description covers purpose, ranking logic, parameter intent, and a disclaimer about the data's nature. It is complete for effective usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description's parameter guidance ('suppress one-shot wallets', 'suppress dormant ones') largely repeats the schema descriptions, adding minimal new value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a 'Leaderboard of observed payer wallets in the x402 settlement graph, each with its intel score.' This distinguishes it from sibling tools like score_wallet_for_intel (single wallet) and get_counterparties (different aspect).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on parameter usage: 'Set min_paid_calls to suppress one-shot wallets and max_days_since_last to suppress dormant ones.' It also includes a disclaimer about the nature of the data. However, it does not explicitly state when to use this tool versus alternatives like score_wallet_for_intel.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_x402_directoryA
Read-onlyIdempotent
Inspect

Wash overlay on ingested PayAI/CDP/Agentic listings (PayAI not_indexed).

Prefer HTTP GET /v1/intel/resources for the resource join SOT (callable URL +
discovery claim listed|live_402 + settlement reputation on pay_to). That
surface is HTTP-only so MCP stays at 24 tools. Use this tool when you need
the ingested listing overlay indexed by payTo. Not GET /v1/intel/bazaar/offers
(TWZRD Bazaar catalog) and not 402 extensions.bazaar.

Solana wash overlay is the only wash graph. Base listings additionally
carry high-confidence EIP-3009 corpus membership from x402_base_daily;
they remain wash_unknown. Polygon listings carry wash_unknown.

Query params — flagged_only, limit, source — mirror GET /v1/intel/x402-directory.
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax directory rows to return (1-500).
sourceNoSource filter: payai_bazaar, cdp_bazaar, agentic_market, or None for all.
flagged_onlyNoReturn only wash-flagged listings.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds behavioral context beyond that: it mentions the wash overlay is Solana-only (the only wash graph), while Base and Polygon listings carry wash_unknown and remain wash_unknown. It also states the query parameters mirror GET /v1/intel/x402-directory, which signals expected API alignment. It doesn't fully describe output shape or pagination, but output schema exists and the behavioral semantics of filtering/overlay are clearly disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise and front-loaded with the core purpose, but it includes some potentially over-technical detail (e.g., EIP-3009 corpus membership, settlement reputation on pay_to) that may be useful but somewhat dense. It earns its place because it explains the tool's role and exclusions, but several sentences could be tightened for clarity without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and full schema descriptions for its 3 parameters, the description provides adequate operational context: it clarifies the data domain, the indexing key (payTo), the wash-flag semantics across chains, and explicitly routes the caller away from the wrong endpoints. It doesn't mention response shape or error cases, but the output schema covers return values, and the description's exclusions plus schema are sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters (limit, source, flagged_only) with defaults and ranges. The description adds high-level context that query params mirror the HTTP endpoint but doesn't add deeper semantics beyond what the schema provides. Baseline 3 is appropriate because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: it provides a wash overlay on ingested PayAI/CDP/Agentic listings indexed by payTo, and explicitly distinguishes this from the HTTP GET /v1/intel/resources resource join surface and from GET /v1/intel/bazaar/offers (TWZRD Bazaar catalog) and 402 extensions.bazaar. This differentiates it well from sibling tools and gives an agent a specific action and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance: 'Use this tool when you need the ingested listing overlay indexed by payTo', and explicitly states what not to use ('Not GET /v1/intel/bazaar/offers (TWZRD Bazaar catalog) and not 402 extensions.bazaar'). It names alternatives (GET /v1/intel/resources) and gives the reason those alternatives exist, so an agent knows when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

is_wash_fleetA
Read-onlyIdempotent
Inspect
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.

Accepts a Solana public key or a Base/EVM address. On Base the signal reads
the high-confidence x402 rollup only, and 3-cycle ring detection does not run
(Solana-only precomputed matview), so ring_events=0 there means NOT EVALUATED,
never "no rings observed".

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet to check for circular-flow / wash behavior: a Solana public key (32-44 base58 chars) or a Base/EVM address (0x + 40 hex).

Output Schema

ParametersJSON Schema
NameRequiredDescription
chainNoWhich corpus answered: "solana" or "base". Base reads the high-confidence x402 rollup only.
errorNoPresent only on the degraded path.
reasonNoDegraded-path reason, if any.
walletNoThe wallet checked.
is_circularNoTrue if any self-pay or reciprocal (2-cycle) flow was observed.
ring_eventsNoEvents forming a 3-cycle ring. Meaningless unless ring_evaluated is true: 0 with ring_evaluated false means NOT LOOKED FOR, not none found.
self_eventsNoEvents where the wallet paid itself.
total_eventsNoTotal observed payment events.
classificationNoCircular-flow class: "clean" | "self_pay" | "reciprocal" | "self+reciprocal" | "unknown".
ring_evaluatedNoTrue only when the ring axis actually ran for this wallet: the precomputed Solana ring aggregate was read, or the live Base 3-cycle query returned. False when the ring lookup failed or the Solana wallet has no aggregate row yet - in both of which ring_events=0 means not evaluated, never none found.
reciprocal_eventsNoEvents forming a 2-cycle (counterparty also pays this wallet).
distinct_merchantsNoDistinct merchants this wallet paid.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. The description adds critical behavioral details beyond these: fail-open DB gap returns 'unknown', and Base-specific limitation where ring_events=0 means NOT EVALUATED. This transparently discloses edge cases and platform differences, going well beyond annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and then organized behavioral details. Each sentence adds value, no redundancy. The structure flows logically from what it does, to platform caveats, to what is not returned, making it efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return format is covered. The description covers edge cases (DB gap, Base behavior), what is not returned, and usage context. It gives an agent all necessary information to decide when to call and what to expect, with no missing critical details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameter details (wallet formats). The description reinforces this and adds platform-specific behavior for the parameter, e.g., 'On Base the signal reads the high-confidence x402 rollup only, and 3-cycle ring detection does not run.' This adds meaningful context beyond the schema's type description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a 'cheap circular-flow (wash) check for a payer wallet' with specific outputs (classification, is_circular bool, counts). It distinguishes itself from paid alternatives by noting the free discovery aspect and that the wash discount is not returned, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use as a fast Sybil/wash gate before trusting a counterparty.' It also clarifies what is not returned (paid wash factor), implying when to seek a paid alternative. However, it does not explicitly name a sibling tool as the alternative, so guidance is strong but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

low_level_preflightA
Read-onlyIdempotent
Inspect
Low-level preflight check. Returns a richer result object including
paid_quick_endpoint ($0.001 first hop) and optional paid_trust_endpoint ($0.05 V7).
wash_flagged=true never soft-allows. Unlabeled leftover 0.05 / leftover=0 is not a unit price.

Prefer get_readiness_card_tool 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).

Hard-stops:
  wash_flagged=true never soft-allows (decision=block; no warn/allow/quick).
  Unlabeled leftover 0.05 / leftover=0 is not a unit price; read readiness_card.price_kind.
ParametersJSON Schema
NameRequiredDescriptionDefault
price_usdcNoCaller-supplied exact unit price in USDC. Leave unset unless you have an exact quote. Unlabeled leftover 0.05 / leftover=0 is not a unit price.
agent_intentNoWhat the agent intends to do with the purchased response or tool.
buyer_walletNoBuyer's Solana wallet public key; enables buyer-context evidence in scoring.
resource_urlNoCanonical endpoint URL for the resource, if available.
resource_nameNoProvider or listing identifier to evaluate before payment.
seller_walletNoSeller's Solana wallet public key for reputation and spend checks.
marketplace_scoreNoOptional marketplace-provided score (0-100) for blend-in scoring context.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNoDecision-consistent one-line rationale.
decisionNoSpend decision: "allow" | "warn" | "block". wash_flagged=true never soft-allows — this field is block (no warn/allow/quick).
evidenceNoEvidence bullets behind the decision.
trust_scoreNoComposite trust signal, 0-100.
readiness_cardNoThe full ReadinessCard shape (same keys as get_readiness_card_tool).
full_report_hintNoHow to fetch the paid full report.
paid_quick_endpointNoFirst paid hop: $0.001 score-only teaser, if seller identity is known.
paid_trust_endpointNoOptional $0.05 V7 receipt path, if seller identity is known.
suggest_full_reportNoWhether to upsell the paid v6-receipt report.
max_spend_recommendation_usdcNoSuggested per-call spend ceiling for this decision.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even with readOnlyHint and idempotentHint already present, the description adds materially useful behavior: wash_flagged=true never soft-allows and yields decision=block with no warn/allow/quick, and an unlabeled leftover 0.05 or leftover=0 is not a unit price. It also discloses pricing hints for the paid endpoints. These are non-obvious behaviors an agent needs to interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and contains a clear 'Hard-stops' section, but it repeats 'wash_flagged=true never soft-allows' and 'Unlabeled leftover 0.05 / leftover=0 is not a unit price' in both the opening and the hard-stop list. The redundancy makes it less concise than it could be, though the length is still manageable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-level tool with 7 optional parameters and an output schema, the description covers the essential context: when to prefer the sibling, which output fields justify this tool, and what edge-case behaviors to expect. It points to the outputSchema for the readiness_card shape rather than duplicating it, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries the parameter meanings, including the price_usdc leftover caveat. The description reinforces that caveat but does not add new per-parameter semantics beyond what the input schema provides. The baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific operation—'low-level preflight check'—and states it returns a 'richer result object' with named fields such as paid_quick_endpoint and paid_trust_endpoint. It also distinguishes itself from get_readiness_card_tool by positioning itself as the lower-level variant that returns richer detail. This is enough for an agent to know what the tool does and how it relates to its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Prefer get_readiness_card_tool for most callers' and then states exactly when to choose this tool: when max_spend_recommendation_usdc, full_report_hint, or suggest_full_report are needed. It even explains that the embedded readiness_card has the same shape as get_readiness_card_tool, providing clear routing between alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_wallet_for_intelA
Read-onlyIdempotent
Inspect
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). A Base 0x wallet is scored from the
relayer-attributed x402_base_daily rollup (90d) with the same shape; no Base
wash graph exists yet, so its wash_flag is "unknown" unless single-counterparty.

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).
First paid hop is the score-only teaser GET /v1/intel/quick/{wallet} (0.001 USDC).
Optional V7 signed receipt (intel_renorm_v1_1: score_raw, confidence,
breadth_factor, wash_factor) is GET /v1/intel/trust/{wallet} (0.05 USDC).
ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet to score: a Solana base58 pubkey or a Base 0x address, using x402 payment-history intelligence.

Output Schema

ParametersJSON Schema
NameRequiredDescription
roleNoObserved role: "payer" | "merchant" | "both" | "unknown".
basisNoHuman-readable basis line.
chainNo"base" when scored from the Base corpus; null on the Solana path.
errorNoPresent only on the degraded path.
walletNoThe scored wallet: Solana base58 pubkey or Base 0x address (lowercased).
networkNoCAIP-2 network of the corpus used, e.g. "eip155:8453"; null on the Solana path.
last_seenNoISO timestamp of last observed activity.
wash_flagNo"clean" | "single_counterparty" | "unknown".
first_seenNoISO timestamp of first observed activity.
paid_callsNoObserved x402 paid calls SENT (payer side).
total_usdcNoTotal observed USDC sent.
intel_scoreNoRaw activity-reputation score, 0-100.
score_modelNoSelf-describing scoring contract (scale, formula, component maxes, recency tiers).
wash_factorNoMultiplier applied to intel_score for effective_score.
window_daysNoObservation window in days when the corpus is windowed (Base: 90); null on the Solana path.
score_versionNoScoring contract version.
wash_coverageNoWhich wash signals exist for this chain. Base: single-counterparty only, so wash_flag is "unknown" (never "clean") for multi-counterparty wallets.
data_availableNoFalse when the corpus could not be observed (vs genuinely inactive).
effective_scoreNoWash-discounted score (single-counterparty fleets demoted).
score_componentsNoPer-component breakdown: volume, breadth, spend, recency_factor.
payments_receivedNoObserved x402 paid calls RECEIVED (merchant side).
total_usdc_receivedNoTotal observed USDC received (merchant side).
is_single_counterpartyNoTrue if all payments went to one counterparty (Sybil signal).
distinct_counterpartiesNoDistinct counterparties (merchants paid + payers received from).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds rich behavioral detail: it discloses the transparent heuristic, states the exact formula is returned as `score_model`, lists all output fields including wash_flag/wash_factor, and describes the clean failure path for malformed pubkeys. It also reveals the Base-specific wash_flag behavior explicitly. This goes well beyond the annotations and provides exceptional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but well-structured, moving from core purpose to heuristic, output, and data source details. Each sentence provides useful information with no fluff. The purpose is front-loaded, making it easy to scan, though the length is above average. It earns a 4 for density and structure without being overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter and an output schema present, the description covers the essential aspects: input types, scoring model, output fields, failure behavior, and data source. It also mentions optional paid endpoints for deeper verification. Minor ambiguity remains in the relationship between intel_score and effective_score, but overall it is complete enough for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the 'wallet' parameter as a Solana base58 pubkey or Base 0x address, and the description reinforces this while adding meaningful nuance: it explains how a Base wallet is scored differently due to the lack of a wash graph, and that malformed pubkeys are cleanly rejected. This adds value beyond the schema's simple type description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool scores a wallet from 0-100 based on observed x402 payment history, listing exact inputs (paid calls, counterparties, volume, recency). It clearly focuses on a single wallet, differentiating it from the sibling 'score_wallets_batch', and specifies accepted wallet types (Solana base58 and Base 0x). The verb 'score' plus resource and score range make the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context about the data source and notes it is a free discovery tool, with optional paid endpoints for signed receipts. However, it does not explicitly state when to prefer this tool over siblings like 'score_wallets_batch' or 'compare_wallets', nor does it mention exclusions or prerequisites. The guidance is implied from the singular-wallet focus and free nature, but not made explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_wallets_batchA
Read-onlyIdempotent
Inspect
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.
ParametersJSON Schema
NameRequiredDescriptionDefault
walletsYesList of wallets (Solana base58 or Base 0x) to score in one call (hard cap 25; extras are dropped).

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of wallets scored.
errorNoPresent only on the degraded path.
cappedNoTrue if the request exceeded max_per_call.
resultsNoPer-wallet score objects (same shape as score_wallet_for_intel).
requestedNoNumber of valid wallets requested.
max_per_callNoHard cap on wallets per batch call.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only and idempotent behavior. The description adds valuable behavioral context by disclosing the 25-wallet cap, the fact that truncation is disclosed via requested/capped fields, and that this is a 'Free discovery' operation. These details go beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, immediately stating the key value ('score up to 25 wallets in a single call'). Every clause adds relevant information: the model reference, the triaging use case, and truncation disclosure behavior. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one fully-documented parameter, rich annotations, and an output schema, the description covers the remaining context an agent needs: batch size, relationship to the single-wallet tool, and truncation disclosure. Nothing critical is missing for selecting and invoking this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter, and the schema covers it fully, including wallet formats and the hard cap. The description adds a reference to the same transparent model as score_wallet_for_intel, but this is not essential parameter semantics. Since schema coverage is 100%, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool scores up to 25 wallets in a single call, using the same model as score_wallet_for_intel. It names the resource (wallets), the action (score), and the batch-specific scope, making it easy to distinguish from the single-wallet sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Convenience for triaging a set of candidate counterparties at once' provides clear context for when to use this tool. It does not explicitly state when not to use it or directly recommend the single-wallet alternative, but the reference to score_wallet_for_intel and the batch framing make the intended use reasonably clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_contribution_claimsA
Read-onlyIdempotent
Inspect
PoECX bridge: report settlements from your OWN rails (not TWZRD's paid
routes) for cross-check against TWZRD's independently-ingested x402
corpus, by on-chain signature.

A claim whose tx_signature, payer/merchant, and amount all match what
TWZRD's own ingest independently observed is materially stronger evidence
than either a bare self-report or the anonymous corpus alone — the
signature is real and on-chain, and a mismatch can't be forged to pass.
Unmatched claims are returned too, with a reason, never silently dropped.

This is a preview, not an unlock: `claimable` is always false. It exists
to let a real counterparty with its own settlement volume start feeding
PoECX before any on-chain payout path exists — see the PoECX plan.

Capped at 25 claims per call (discovery convenience, not bulk export);
extras are dropped, never silently ignored — see `capped`/`claims_requested`.
Within that cap, only the first claim per (chain, tx_signature,
transfer_index) is checked. Omitted transfer_index is the first leg
(dedup key 0). Later copies of the same leg appear in `unverified`
with reason_code `duplicate_claim` and `duplicate_of` pointing to the
zero-based first input index. Two legs of one tx count twice. This
deduplicates one preview report, not claims across separate calls.
ParametersJSON Schema
NameRequiredDescriptionDefault
claimsYesSelf-reported settlements to cross-check. Each item: {"tx_signature": str, "chain": "solana"|"base", "amount_usdc": float (optional), "transfer_index": int (optional, Solana transfer_index / Base log_index; omitted is first leg)}. Any other chain value is rejected before it ever reaches a query.
walletYesThe wallet these settlement claims are being reported for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoPlain-language caveat on what this report does and doesn't prove.
as_ofNoISO timestamp this report was built. Two reports of the same claims that differ only in tier after a backfill are distinguishable by as_of + classification_version.
cappedNoTrue if claims_requested exceeded max_per_call and extras were dropped.
walletNoThe wallet the claims were submitted for.
verifiedNoPer-claim detail for verified claims, each carrying observed_x402_confidence and observed_facilitator_id.
claimableNoAlways false today — this is a preview, not an on-chain payout unlock.
unverifiedNoPer-claim detail for unverified claims, each with a reason.
max_per_callNoHard cap on claims per call.
score_versionNoReport contract version, e.g. "poecx_bridge_v0".
verified_usdcNoSum of observed USDC for verified claims across all tiers, including excluded. Use verified_usdc_x402_high for allowlist-attributed Base volume.
claims_verifiedNoUnique chain/transaction/leg claims whose wallet and amount matched TWZRD's independently-observed corpus.
claims_requestedNoNumber of claims in the original request, before any cap.
claims_submittedNoNumber of claims actually processed (after cap).
corpus_availableNoFalse when DSN/query failed so claims were not corpus-checked. Distinct from a genuine miss.
attestation_classNo"CORPUS_CROSS_CHECKED" when the corpus was observed; "CORPUS_UNAVAILABLE" when lookup could not run (not a miss). Not TWZRD-attested settlement.
claims_duplicatesNoRepeated chain/transaction/leg claims within the capped input; included in claims_unverified and excluded from value totals.
claims_unverifiedNoClaims not found, with a mismatched wallet or amount, or duplicated within this report.
classification_versionNoBase cluster-pin / KNOWN_CLUSTERS snapshot id. Moves when corpus reclassify changes high/unknown/excluded meaning; distinct from score_version.
verified_usdc_x402_highNoSum of observed USDC for verified claims whose observed_x402_confidence is high (allowlist attribution, not protocol confirmation). Excluded/unknown/untiered are omitted.
verified_usdc_by_confidenceNoVerified USDC split by evidence tier: "high" = relayer funding-cluster is on TWZRD's x402 operator allowlist (attribution, not protocol-level confirmation); "unknown" = observed on-chain transfer TWZRD could not confirm as x402; "excluded" = TWZRD affirmatively classified the settlement as not x402; "untiered" = chain ingest has no confidence tier (Solana).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses extensive behavioral traits beyond annotations: unmatched claims are returned with a reason, cap of 25 with dropped extras, dedup behavior with duplicate handling, preview status with claimable always false, and chain value rejection. This goes far beyond the readOnly and idempotent annotations, adding valuable context for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured, opening with the core purpose, then detailing cross-check strength, preview status, cap, and dedup. Every sentence adds necessary information for correct invocation, and it is front-loaded with the most critical purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool, including dedup, caps, preview mode, and output schema, the description covers key behaviors: unmatched claims returned, cap behavior, dedup handling, preview status, and chain validation. It also references output fields like `capped`/`claims_requested` and `unverified`, ensuring the agent understands the complete response behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full descriptions for both parameters, so baseline is 3. The description adds extra semantics for transfer_index dedup key and how duplicates are reported, which goes beyond the schema. It also clarifies that chain values other than solana/base are rejected. This additional context elevates the score to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: reporting settlement claims from one's own rails for cross-check against TWZRD's independent corpus. It uses a specific verb ('report') and resource ('settlements'), and distinguishes from sibling tools by explicitly noting 'not TWZRD's paid routes' and that it is a preview. This is specific and not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: for a real counterparty with settlement volume to feed PoECX, and explicitly notes it is a preview, not an unlock. It also indicates alternatives indirectly by stating 'not TWZRD's paid routes' and references the PoECX plan. However, it does not name specific sibling alternatives, so it gets a 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

twzrd_demo_gateA
Read-onlyIdempotent
Inspect
Runnable, no-spend proof of the TWZRD buyer-side x402 trust gate - discoverable
at runtime with no install and no human.

Returns a deterministic transcript showing the gate's behaviour on a fixture
counterparty: the block path ABORTS and a wallet/signer is never contacted, the
allow path would proceed, and ok=true. Spends no USDC, contacts no wallet.

This call surfaces an EXTERNAL_RUN *candidate* in TWZRD's honest attribution
ledger (it carries a non-internal integration id + your run_id, tagged with your
real inbound IP). A candidate is NOT an EXTERNAL_RUN: proof still requires a
non-VPS source_ip and matching your run_id to your own transcript via
packages/twzrd-agent-intel/scripts/count_attributed_runs.py --confirm.
See the returned not_external_run_proof.
ParametersJSON Schema
NameRequiredDescriptionDefault
run_idNoOptional caller-supplied run id to correlate with your transcript. Omit to have one generated for this call.
integrationNoStable label for your integration (e.g. your agent/app name). Echo it plus the returned run_id in your own transcript so a run can later be confirmed. Defaults to a generic MCP-discovery label.mcp-agent-discovery

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, but the description adds rich behavioral detail: no wallet/signer contact, no USDC spend, ledger candidate surface with real inbound IP, and the requirement for non-VPS source_ip and run_id matching to promote a candidate to an EXTERNAL_RUN. This goes far beyond the structured annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and safety characteristics, then moves to caveats and proof requirements. It is somewhat dense and technical, but every sentence contributes needed context and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description still covers behavior, side-effect-like attribution implications, safety, and proof verification steps. It fully explains the candidate-vs-run distinction and references the returned not_external_run_proof, making it complete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% parameter coverage for run_id and integration. The description reinforces the semantic role of run_id in transcript correlation and mentions the integration id in the attribution ledger context, adding value beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource statement: 'Runnable, no-spend proof of the TWZRD buyer-side x402 trust gate.' It then concretely states what happens (block path ABORTS, allow path would proceed, ok=true), clearly distinguishing it from sibling tools that perform other x402/intel operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys when to use this tool: as a no-install, no-human, no-spend proof/demo of the gate. It adds important context about the EXTERNAL_RUN candidate versus a real EXTERNAL_RUN, but it does not explicitly name alternative tools or provide when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

twzrd_watch_addAInspect

Register a re-call watch on a seller wallet.

After registration, TWZRD will proactively re-check the seller's trust intel
when `recheck_after_unix` elapses and POST a notification to your webhook_url
if the score/decision materially changes.

Returns the watch row with the computed recheck_after_unix timestamp so your
agent knows exactly when to expect a re-call or proactively re-check itself.
ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_urlNoOptional HTTPS URL to POST when intel goes stale.
payer_walletYesYour agent wallet address (the watcher).
seller_walletYesThe seller/merchant wallet to watch.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses behaviors beyond annotations: proactive re-checking when 'recheck_after_unix' elapses, posting to webhook on material changes, and returning the watch row with a timestamp. No contradiction with annotations (openWorldHint, idempotentHint, destructiveHint are all false, consistent with registration).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short paragraphs, front-loaded with the core action. Every sentence provides useful context: registration, lifecycle, return value. No redundant or vague language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, an output schema, and annotations, the description covers the registration process, follow-up behavior, and return details. It does not explain what a 're-call watch' is in depth, but the context is sufficient for an agent to understand its use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 3 parameters are described in the schema (100% coverage). The description adds value by explaining the purpose of 'webhook_url' (optional, POST on staleness) and clarifying the role of 'payer_wallet' and 'seller_wallet'. It also notes the return value includes 'recheck_after_unix', enhancing understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool registers a re-call watch on a seller wallet, using a specific verb ('Register') and resource ('watch on seller wallet'). It distinguishes itself from sibling tools like 'twzrd_watch_list' and 'twzrd_watch_remove' by focusing on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does and its lifecycle (proactive re-check, webhook notification), but does not explicitly state when to use it vs. alternatives or when not to use it. This is adequate but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

twzrd_watch_listA
Read-onlyIdempotent
Inspect

List active re-call watches for your agent wallet.

Each watch shows the seller, current score/decision, and recheck_after_unix
timestamp (untrusted V5/V6 hint). evaluateRecall / shouldRecheckTrusted is
the consumer gate; do not treat due / shouldRecheck as a trusted allow.
ParametersJSON Schema
NameRequiredDescriptionDefault
payer_walletYesYour agent wallet address.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, yet the description adds substantial non-obvious behavior: it names the fields returned, flags recheck_after_unix as an untrusted V5/V6 hint, and explicitly warns not to treat due / shouldRecheck as a trusted allow. That untrusted-data warning is exactly the kind of guidance structured fields cannot convey for an agent deciding how to act on the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the core purpose front-loaded and no filler. The terminology is dense but each sentence contributes: purpose, return fields, and the trust warning. Slightly more idiomatic phrasing for the evaluateRecall reference would tighten it further.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return-value documentation is technically optional; the description nonetheless summarizes the key fields and, more importantly, warns about their trust level. Safety profile and return shape are both covered, so an agent has what it needs, though nothing addresses volume, ordering, or empty-result behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter payer_wallet has 100% schema description coverage ("Your agent wallet address"), so the schema carries the burden. The description does not add syntax, format, or defaulting detail beyond it, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List active re-call watches") with an explicit scope ("for your agent wallet"). This cleanly distinguishes it from the watch-mutating siblings twzrd_watch_add and twzrd_watch_remove, so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is a read of existing watches, but it never explicitly states when to call it versus twzrd_watch_add, twzrd_watch_remove, or the scoring tools like get_poec_score. It does name evaluateRecall / shouldRecheckTrusted as the downstream consumer gate, which is helpful context, but that is semantic guidance rather than a when-to-use routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

twzrd_watch_removeAInspect

Deactivate a re-call watch by ID. payer_wallet must match the owner.

ParametersJSON Schema
NameRequiredDescriptionDefault
watch_idYesWatch ID from twzrd_watch_list.
payer_walletYesYour agent wallet address (must match the watch owner).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-destructive behavior. The description adds the owner-matching constraint, which is useful behavioral context. However, it does not elaborate on side effects or reversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states the purpose and key constraint with no extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple removal tool with an output schema, the description covers the essential information. It could mention return behavior, but the output schema likely handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds little beyond what the schema provides. It reiterates the payer_wallet constraint, but the schema already includes that information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Deactivate a re-call watch by ID') and includes a specific constraint. It distinguishes from sibling tools like twzrd_watch_add and twzrd_watch_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells when to use (to deactivate a watch) and includes a prerequisite (payer_wallet must match owner). It does not explicitly mention when not to use or alternatives, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_receiptA
Read-onlyIdempotent
Inspect
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.
ParametersJSON Schema
NameRequiredDescriptionDefault
receiptYesThe full v6 PaidReceipt object (leaf + preimage + signature + signing_pubkey) returned by the paid /v1/intel/trust surface.
expected_pubkeyNoOverride the trusted signing pubkey to verify against (default: the published TWZRD receipt key).
max_age_secondsNoIf > 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).
require_signatureNoRequire and verify the Ed25519 signature (default true). Set false only to inspect an unsigned preview.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validNoTrue iff the leaf recomputes AND the signature verifies against the trusted key.
domainNoThe V5 domain detected in the preimage.
errorsNoIssues found; empty on success.
leaf_validNoTrue iff the Keccak256 leaf recomputes from the preimage.
provided_leafNoThe normalized leaf supplied in the receipt.
signing_pubkeyNoThe pubkey carried by the receipt.
trusted_pubkeyNoThe published key authenticity was checked against.
recomputed_leafNoThe leaf recomputed from the preimage (0x...).
signature_validNoTrue iff the Ed25519 signature verifies; None if the signature check was skipped.
signature_checkedNoWhether the signature was checked (require_signature).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. The description adds behavioral details: offline, no DB/network/payment, returns multiple validity flags and errors, and warns about trust anchoring. Contradictions none.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a bold opening statement. Information is front-loaded and each section adds value. Slightly verbose but not excessive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers inputs, trust model, return values (valid/leaf_valid/signature_valid plus leaf and errors). Output schema exists, so return details are not needed. Complete for a verification tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters have descriptions in the schema (100% coverage). The description adds value by providing source context for receipt, cross-referencing Python library/CLI for max_age_seconds, and usage guidance for require_signature.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's purpose: offline verification of v5/v6 trust receipts. It specifies the actions (recomputes Keccak256 leaf, verifies Ed25519 signature) and distinguishes from sibling tools by focusing on receipt verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance: pass the full PaidReceipt object, trust anchored on published key, and explains optional parameters like max_age_seconds and require_signature. No explicit when-not-to-use, but sufficient for correct invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_root_inputsC
Read-onlyIdempotent
Inspect

Independent root verification (see tools/root_verifier.py for the recompute logic).

ParametersJSON Schema
NameRequiredDescriptionDefault
root_seqNoSpecific root sequence to verify. If omitted, best-effort resolution via resource metadata or latest.
resource_nameNoWZRD protocol resource (deposit/claim/settle etc.) for auto-detection and seq hints.
seller_walletNoSeller wallet for WZRD protocol resource detection.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message on the ERROR path; null on PASS/FAIL.
statusNo"PASS" = recomputed GLOBAL_V5 leaves + dataset_hash + sorted-pair root match the published values. "FAIL" = mismatch (do not trust the root). "ERROR" = could not run (fetch failure / missing data).
root_seqNoRoot sequence number that was verified.
leaf_countNoNumber of leaves (users) in the verified root.
onchain_matchNoAlways null: this tool does NOT read Solana/the AO program. Use server_consistent for the recompute result; do not gate on-chain actions on this field expecting a chain anchor.
leaf_hash_matchNoTrue iff every server-provided leaf_hash matches the locally recomputed value.
recomputed_rootNoIndependently recomputed sorted-pair keccak256 merkle root (hex).
server_consistentNoTrue iff the recomputed root/dataset_hash matches the value the SERVER published alongside its own leaves (self-consistency). NOT an on-chain check. Null when not comparable.
recomputed_dataset_hashNoIndependently recomputed keccak-concat dataset_hash (hex).

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the read-only nature is clear. The description adds 'via recompute logic' implying computation, but doesn't contradict annotations. Provides minimal extra context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise at two sentences with no waste. Could benefit from slightly more detail, but front-loads the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 100% schema coverage, output schema present, and annotations, the description is minimally adequate. However, it lacks contextual completeness for a verification tool that might need explanation of what verification entails.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage. The description adds nothing about parameters, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Independent root verification' which identifies the tool's action and resource, but lacks specificity about what 'root' refers to and does not differentiate from sibling tools like verify_receipt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., verify_receipt). The description provides no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedget_readiness_card_tool4 fields changed
      • addedOutput schema / properties / corpus_age_days
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whole days since corpus_complete_day.",
        +  "title": "Corpus Age Days"
        +}
      • addedOutput schema / properties / corpus_complete_day
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Uploaded corpus complete day (YYYY-MM-DD). Snapshot boundary, not live ingest.",
        +  "title": "Corpus Complete Day"
        +}
      • addedOutput schema / properties / observed_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "ISO-8601 watermark of the uploaded Dune complete day (not card-build time).",
        +  "title": "Observed At"
        +}
      • addedOutput schema / properties / stale
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "True when uploaded-corpus age exceeds the high-confidence re-check window. Warning only; not a wash refuse.",
        +  "title": "Stale"
        +}
  2. 3 tool updates
    • Changedevaluate_x402_resource4 fields changed
      • changedOutput schema / properties / receipt_url / description
        Previous value: -"URL to fetch the paid trust receipt ($0.05 USDC to TWZRD)."New value: +"Optional $0.05 V7 portable receipt URL."
      • addedOutput schema / properties / receipt_usdc
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Cost of the optional V7 receipt in USDC (0.05).",
        +  "title": "Receipt Usdc"
        +}
      • addedOutput schema / properties / teaser_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "First paid hop: $0.001 score-only teaser URL.",
        +  "title": "Teaser Url"
        +}
      • changedOutput schema / properties / upsell_usdc / description
        Previous value: -"Cost of the TWZRD paid trust receipt in USDC."New value: +"Cost of the first paid hop in USDC (0.001 teaser)."
    • Changedget_readiness_card_tool4 fields changed
      • changedOutput schema / properties / paid_deep_dive / description
        Previous value: -"Path to the paid full-trust surface (/v1/intel/trust/{wallet})."New value: +"Optional Path A V7 receipt surface (/v1/intel/trust/{wallet})."
      • changedOutput schema / properties / paid_price_usdc / description
        Previous value: -"Price of the paid deep dive in USDC."New value: +"Price of the optional V7 receipt in USDC (0.05)."
      • addedOutput schema / properties / paid_teaser
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "First paid hop: $0.001 score-only teaser (/v1/intel/quick/{wallet}).",
        +  "title": "Paid Teaser"
        +}
      • addedOutput schema / properties / paid_teaser_usdc
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Price of the first paid hop in USDC (0.001).",
        +  "title": "Paid Teaser Usdc"
        +}
    • Changedlow_level_preflight2 fields changed
      • addedOutput schema / properties / paid_quick_endpoint
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "First paid hop: $0.001 score-only teaser, if seller identity is known.",
        +  "title": "Paid Quick Endpoint"
        +}
      • changedOutput schema / properties / paid_trust_endpoint / description
        Previous value: -"Paid trust endpoint path, if seller identity is known."New value: +"Optional $0.05 V7 receipt path, if seller identity is known."
  3. 4 tool updates
    • Changedevaluate_x402_resource3 fields changed
      • changedInput schema / properties / price_usdc / description
        Previous value: -"Known price in USDC — overrides what the 402 reports. Leave unset to use the 402-reported amount."New value: +"Caller-supplied exact unit price in USDC — overrides a 402 exact quote. Leave unset to use the 402-reported amount when price_kind=exact. Unlabeled leftover 0.05 / leftover=0 is not a unit price."
      • changedOutput schema / properties / decision / description
        Previous value: -"Spend decision: \"allow\" | \"warn\" | \"block\" | \"unknown\". \"unknown\" means is_x402 is False -- no 402 challenge was issued, so no trust evaluation happened. Never treat \"unknown\" as a green light."New value: +"Spend decision: \"allow\" | \"warn\" | \"block\" | \"unknown\". wash_flagged=true never soft-allows — this field is block. \"unknown\" means is_x402 is False -- no 402 challenge was issued, so no trust evaluation happened. Never treat \"unknown\" as a green light."
      • changedOutput schema / properties / price_usdc / description
        Previous value: -"Quoted unit price in USDC from the 402 response. Null when the accept is scheme=upto (a cap, not a per-request price)."New value: +"Quoted unit price in USDC from the 402 response. Null when the accept is scheme=upto / price_kind=upto_cap, or the figure is unlabeled leftover 0.05 / leftover=0 (not a unit price)."
    • Changedget_provider_reputation1 field changed
      • changedOutput schema / properties / wash_flagged / description
        Previous value: -"true = fleet/wash/captive/scripted-fleet signals tripped; false = evaluated and clean; null = never evaluated (unknown - do NOT coerce to false)."New value: +"true = fleet/wash/captive/scripted-fleet signals tripped — never soft-allow (refuse / preflight block); false = evaluated and clean; null = never evaluated (unknown - do NOT coerce to false)."
    • Changedget_readiness_card_tool5 fields changed
      • changedInput schema / properties / price_usdc / description
        Previous value: -"Quoted price in USDC for the action you are evaluating."New value: +"Caller-supplied exact unit price in USDC. Leave unset unless you have an exact quote. Unlabeled leftover 0.05 / leftover=0 is not a unit price."
      • changedOutput schema / properties / decision / description
        Previous value: -"Spend decision: \"allow\" | \"warn\" | \"block\"."New value: +"Spend decision: \"allow\" | \"warn\" | \"block\". wash_flagged=true never soft-allows — this field is block (no warn/allow/quick)."
      • addedOutput schema / properties / max_price_usdc
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Advertised maximum USDC when price_kind is upto_cap. Not a unit price.",
        +  "title": "Max Price Usdc"
        +}
      • addedOutput schema / properties / price_kind
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "exact | upto_cap | unknown. upto_cap means price_usdc is not a unit price.",
        +  "title": "Price Kind"
        +}
      • changedOutput schema / properties / price_usdc / description
        Previous value: -"Quoted price in USDC."New value: +"Quoted unit price in USDC. Null when price_kind is upto_cap or the figure is unlabeled leftover 0.05 / leftover=0 (scheme=upto leftover defaults, including stale 0.05, are not a unit price)."
    • Changedlow_level_preflight2 fields changed
      • changedInput schema / properties / price_usdc / description
        Previous value: -"Quoted payment amount in USDC for this intended request."New value: +"Caller-supplied exact unit price in USDC. Leave unset unless you have an exact quote. Unlabeled leftover 0.05 / leftover=0 is not a unit price."
      • changedOutput schema / properties / decision / description
        Previous value: -"Spend decision: \"allow\" | \"warn\" | \"block\"."New value: +"Spend decision: \"allow\" | \"warn\" | \"block\". wash_flagged=true never soft-allows — this field is block (no warn/allow/quick)."
  4. 1 tool update
    • Changedevaluate_x402_resource3 fields changed
      • addedOutput schema / properties / max_price_usdc
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Advertised maximum USDC when price_kind is upto_cap.",
        +  "title": "Max Price Usdc"
        +}
      • addedOutput schema / properties / price_kind
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "exact | upto_cap | unknown. upto_cap means price_usdc is not a unit price.",
        +  "title": "Price Kind"
        +}
      • changedOutput schema / properties / price_usdc / description
        Previous value: -"Quoted price in USDC from the 402 response."New value: +"Quoted unit price in USDC from the 402 response. Null when the accept is scheme=upto (a cap, not a per-request price)."
  5. 1 tool update
    • Changedget_readiness_card_tool4 fields changed
      • changedOutput schema / properties / recheck_after_unix / description
        Previous value: -"UNIX timestamp after which this intel is stale; re-call the paid trust surface when now >= this value."New value: +"UNIX timestamp after which this intel is stale. ADVISORY AND UNSIGNED on a paid receipt -- it is outside the signed leaf, so a receipt holder can extend it and the receipt still verifies. Enforce your own policy via verify_receipt(max_age_seconds=...), which checks the SIGNED preimage.timestamp_unix."
      • changedOutput schema / properties / recheck_hint / description
        Previous value: -"One-line instruction: re-verify via GET /v1/intel/trust/{pubkey} once now >= recheck_after_unix."New value: +"One-line hint: re-verify via GET /v1/intel/trust/{pubkey}. Do not gate solely on recheck_after_unix -- it is unsigned on a paid receipt; use your own max_age_seconds."
      • changedOutput schema / properties / score_decay_model / description
        Previous value: -"step:<=7d=1.0,<=30d=0.8,<=90d=0.5,>90d=0.25 (the actual recency decay on paid scores)."New value: +"step:<=7d=1.0,<=30d=0.8,<=90d=0.5,>90d=0.25 (the recency decay on paid scores). ADVISORY AND UNSIGNED on a paid receipt."
      • changedOutput schema / properties / staleness_days / description
        Previous value: -"Recommended re-check cadence in days (7 high-quality, 3 partial/stale)."New value: +"Recommended re-check cadence in days (7 high-quality, 3 partial/stale). ADVISORY AND UNSIGNED on a paid receipt."
  6. 1 tool update
    • Changedget_merchant_card1 field changed
      • addedInput schema / properties / full
        Added value: +{
        +  "default": false,
        +  "description": "If true, include catalog services. Default is the compact decision surface.",
        +  "title": "Full",
        +  "type": "boolean"
        +}
  7. 1 tool update
    • Changedevaluate_x402_resource1 field changed
      • changedOutput schema / properties / decision / description
        Previous value: -"Spend decision: \"allow\" | \"warn\" | \"block\"."New value: +"Spend decision: \"allow\" | \"warn\" | \"block\" | \"unknown\". \"unknown\" means is_x402 is False -- no 402 challenge was issued, so no trust evaluation happened. Never treat \"unknown\" as a green light."
  8. 1 tool update
    • Changedget_poec_score2 fields changed
      • changedOutput schema / properties / evidence_gaps / description
        Previous value: -"Inputs with no live source. \"success_rate\" has none today, so success_quality and poec_score read 0.0 until a settlement-success join exists."New value: +"Inputs with no live source. Empty plus success_rate 0.0 means the 0211 join ran and this wallet has no signed settlement leaf — not a missing join."
      • addedOutput schema / properties / success_rate
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Signed receipt_settlement_leaves for this payer / observed paid_calls, capped at 1.0. None = join unobservable; 0.0 = join ran, zero attested leaves. Never implies claimable.",
        +  "title": "Success Rate"
        +}
  9. 1 tool update
    • Changedsubmit_contribution_claims7 fields changed
      • addedOutput schema / properties / as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "ISO timestamp this report was built. Two reports of the same claims that differ only in tier after a backfill are distinguishable by as_of + classification_version.",
        +  "title": "As Of"
        +}
      • changedOutput schema / properties / attestation_class / description
        Previous value: -"\"CORPUS_CROSS_CHECKED\" — verified against TWZRD-observed corpus, not TWZRD-attested settlement."New value: +"\"CORPUS_CROSS_CHECKED\" when the corpus was observed; \"CORPUS_UNAVAILABLE\" when lookup could not run (not a miss). Not TWZRD-attested settlement."
      • addedOutput schema / properties / classification_version
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Base cluster-pin / KNOWN_CLUSTERS snapshot id. Moves when corpus reclassify changes high/unknown/excluded meaning; distinct from score_version.",
        +  "title": "Classification Version"
        +}
      • addedOutput schema / properties / corpus_available
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "False when DSN/query failed so claims were not corpus-checked. Distinct from a genuine miss.",
        +  "title": "Corpus Available"
        +}
      • changedOutput schema / properties / verified_usdc / description
        Previous value: -"Sum of observed USDC for verified claims only. Read verified_usdc_by_confidence before treating this as confirmed x402 volume."New value: +"Sum of observed USDC for verified claims across all tiers, including excluded. Use verified_usdc_x402_high for allowlist-attributed Base volume."
      • changedOutput schema / properties / verified_usdc_by_confidence / description
        Previous value: -"Verified USDC split by evidence tier: \"high\" = confirmed x402 settlement; \"unknown\" = an on-chain transfer TWZRD observed but could not confirm as x402; \"untiered\" = a chain whose ingest has no confidence tier (Solana)."New value: +"Verified USDC split by evidence tier: \"high\" = relayer funding-cluster is on TWZRD's x402 operator allowlist (attribution, not protocol-level confirmation); \"unknown\" = observed on-chain transfer TWZRD could not confirm as x402; \"excluded\" = TWZRD affirmatively classified the settlement as not x402; \"untiered\" = chain ingest has no confidence tier (Solana)."
      • addedOutput schema / properties / verified_usdc_x402_high
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Sum of observed USDC for verified claims whose observed_x402_confidence is high (allowlist attribution, not protocol confirmation). Excluded/unknown/untiered are omitted.",
        +  "title": "Verified Usdc X402 High"
        +}
  10. 2 tool updates
    • Changedget_provider_reputation1 field changed
      • changedOutput schema / properties / wash_confidence / description
        Previous value: -"\"full\" when self+reciprocal+ring ran; \"base_2cycle\" when only the Base 2-cycle overlay ran (3-cycle ring not evaluated — not a full screen); \"partial_inbound_only\" when the circular-flow overlay did not run."New value: +"\"full\" when self+reciprocal+ring ran; \"base_2cycle\" when the Base 2-cycle overlay ran but the live 3-cycle ring query did not return (not a full screen); \"partial_inbound_only\" when the circular-flow overlay did not run."
    • Changedis_wash_fleet1 field changed
      • changedOutput schema / properties / ring_evaluated / description
        Previous value: -"True only when the precomputed Solana ring aggregate was actually read for this wallet. False on Base (no ring matview), when the ring lookup failed, or when the wallet has no aggregate row yet - in all of which ring_events=0 means not evaluated, never none found."New value: +"True only when the ring axis actually ran for this wallet: the precomputed Solana ring aggregate was read, or the live Base 3-cycle query returned. False when the ring lookup failed or the Solana wallet has no aggregate row yet - in both of which ring_events=0 means not evaluated, never none found."
  11. 1 tool update
    • Changedget_provider_reputation1 field changed
      • changedOutput schema / properties / wash_confidence / description
        Previous value: -"\"full\" when the circular-flow overlay ran; \"partial_inbound_only\" when it did not."New value: +"\"full\" when self+reciprocal+ring ran; \"base_2cycle\" when only the Base 2-cycle overlay ran (3-cycle ring not evaluated — not a full screen); \"partial_inbound_only\" when the circular-flow overlay did not run."
  12. 2 tool updates
    • Changedis_wash_fleet1 field changed
      • changedOutput schema / properties / ring_evaluated / description
        Previous value: -"Whether 3-cycle ring detection ran. True on Solana (precomputed matview); false on Base, where no such matview exists."New value: +"True only when the precomputed Solana ring aggregate was actually read for this wallet. False on Base (no ring matview), when the ring lookup failed, or when the wallet has no aggregate row yet - in all of which ring_events=0 means not evaluated, never none found."
    • Changedsubmit_contribution_claims3 fields changed
      • changedInput schema / properties / claims / description
        Previous value: -"Self-reported settlements to cross-check. Each item: {\"tx_signature\": str, \"chain\": \"solana\"|\"base\", \"amount_usdc\": float (optional)}. Any other chain value is rejected before it ever reaches a query."New value: +"Self-reported settlements to cross-check. Each item: {\"tx_signature\": str, \"chain\": \"solana\"|\"base\", \"amount_usdc\": float (optional), \"transfer_index\": int (optional, Solana transfer_index / Base log_index; omitted is first leg)}. Any other chain value is rejected before it ever reaches a query."
      • changedOutput schema / properties / claims_duplicates / description
        Previous value: -"Repeated chain/transaction claims within the capped input; included in claims_unverified and excluded from value totals."New value: +"Repeated chain/transaction/leg claims within the capped input; included in claims_unverified and excluded from value totals."
      • changedOutput schema / properties / claims_verified / description
        Previous value: -"Unique chain/transaction claims whose wallet and amount matched TWZRD's independently-observed corpus."New value: +"Unique chain/transaction/leg claims whose wallet and amount matched TWZRD's independently-observed corpus."
  13. 1 tool update
    • Changedsubmit_contribution_claims3 fields changed
      • addedOutput schema / properties / claims_duplicates
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Repeated chain/transaction claims within the capped input; included in claims_unverified and excluded from value totals.",
        +  "title": "Claims Duplicates"
        +}
      • changedOutput schema / properties / claims_unverified / description
        Previous value: -"Claims not found on-chain, or found with a mismatched amount."New value: +"Claims not found, with a mismatched wallet or amount, or duplicated within this report."
      • changedOutput schema / properties / claims_verified / description
        Previous value: -"Claims whose tx_signature and amount matched TWZRD's independently-observed corpus."New value: +"Unique chain/transaction claims whose wallet and amount matched TWZRD's independently-observed corpus."
  14. 2 tool updates
    • Changedis_wash_fleet4 fields changed
      • changedInput schema / properties / wallet / description
        Previous value: -"Solana wallet public key (32-44 base58 chars) to check for circular-flow / wash behavior."New value: +"Wallet to check for circular-flow / wash behavior: a Solana public key (32-44 base58 chars) or a Base/EVM address (0x + 40 hex)."
      • addedOutput schema / properties / chain
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Which corpus answered: \"solana\" or \"base\". Base reads the high-confidence x402 rollup only.",
        +  "title": "Chain"
        +}
      • addedOutput schema / properties / ring_evaluated
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether 3-cycle ring detection ran. True on Solana (precomputed matview); false on Base, where no such matview exists.",
        +  "title": "Ring Evaluated"
        +}
      • addedOutput schema / properties / ring_events
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Events forming a 3-cycle ring. Meaningless unless ring_evaluated is true: 0 with ring_evaluated false means NOT LOOKED FOR, not none found.",
        +  "title": "Ring Events"
        +}
    • Changedsubmit_contribution_claims3 fields changed
      • changedOutput schema / properties / verified / description
        Previous value: -"Per-claim detail for verified claims."New value: +"Per-claim detail for verified claims, each carrying observed_x402_confidence and observed_facilitator_id."
      • changedOutput schema / properties / verified_usdc / description
        Previous value: -"Sum of observed USDC for verified claims only."New value: +"Sum of observed USDC for verified claims only. Read verified_usdc_by_confidence before treating this as confirmed x402 volume."
      • addedOutput schema / properties / verified_usdc_by_confidence
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Verified USDC split by evidence tier: \"high\" = confirmed x402 settlement; \"unknown\" = an on-chain transfer TWZRD observed but could not confirm as x402; \"untiered\" = a chain whose ingest has no confidence tier (Solana).",
        +  "title": "Verified Usdc By Confidence"
        +}
  15. 4 tool updates
    • Changedcompare_wallets2 fields changed
      • changedInput schema / properties / wallet_a / description
        Previous value: -"First Solana wallet pubkey to compare."New value: +"First wallet (Solana base58 or Base 0x) to compare."
      • changedInput schema / properties / wallet_b / description
        Previous value: -"Second Solana wallet pubkey to compare."New value: +"Second wallet (Solana base58 or Base 0x) to compare."
    • Changedget_poec_score2 fields changed
      • changedInput schema / properties / wallet / description
        Previous value: -"Solana payer wallet public key (32-44 base58 chars) to score for Proof of Economic Contribution."New value: +"Payer wallet (Solana base58 or Base 0x) to score for Proof of Economic Contribution."
      • addedOutput schema / properties / base_observed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Present only for a Base (EVM) wallet TWZRD has independently observed paid calls from: real paid_calls/total_usdc/distinct_counterparties (90d, high-confidence, x402_base_daily). Informational only -- no wash/sybil evaluation exists for Base payers yet, so poec_score and floors_passed are unaffected by this field.",
        +  "title": "Base Observed"
        +}
    • Changedscore_wallet_for_intel6 fields changed
      • changedInput schema / properties / wallet / description
        Previous value: -"Solana wallet public key (32-44 base58 chars) to score using x402 payment-history intelligence."New value: +"Wallet to score: a Solana base58 pubkey or a Base 0x address, using x402 payment-history intelligence."
      • addedOutput schema / properties / chain
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "\"base\" when scored from the Base corpus; null on the Solana path.",
        +  "title": "Chain"
        +}
      • addedOutput schema / properties / network
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "CAIP-2 network of the corpus used, e.g. \"eip155:8453\"; null on the Solana path.",
        +  "title": "Network"
        +}
      • changedOutput schema / properties / wallet / description
        Previous value: -"The scored Solana wallet."New value: +"The scored wallet: Solana base58 pubkey or Base 0x address (lowercased)."
      • addedOutput schema / properties / wash_coverage
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Which wash signals exist for this chain. Base: single-counterparty only, so wash_flag is \"unknown\" (never \"clean\") for multi-counterparty wallets.",
        +  "title": "Wash Coverage"
        +}
      • addedOutput schema / properties / window_days
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Observation window in days when the corpus is windowed (Base: 90); null on the Solana path.",
        +  "title": "Window Days"
        +}
    • Changedscore_wallets_batch1 field changed
      • changedInput schema / properties / wallets / description
        Previous value: -"List of Solana wallet pubkeys to score in one call (hard cap 25; extras are dropped)."New value: +"List of wallets (Solana base58 or Base 0x) to score in one call (hard cap 25; extras are dropped)."

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.