Skip to main content
Glama

TWZRD Agent Intelligence

get_readiness_card_tool

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

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
as_ofNoISO-8601 of data_as_of_unix. Null when the subject was never measured.
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_unixNoSeller last-activity unix when known. Null on unknown_subject / insufficient_signal / evaluation_failed — never card-build time. Card TTL is recheck_after_unix.
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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / as_of
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "ISO-8601 of data_as_of_unix. Null when the subject was never measured.",
      +  "title": "As Of"
      +}
    • changedOutput schema / properties / data_as_of_unix / description
      Previous value: -"Anchor time for the staleness calculation (seller last activity or card build time)."New value: +"Seller last-activity unix when known. Null on unknown_subject / insufficient_signal / evaluation_failed — never card-build time. Card TTL is recheck_after_unix."
  2. Changed4 schema 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"
      +}
  3. Changed4 schema 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"
      +}
  4. Changed5 schema 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)."
  5. Changed4 schema 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. Changed1 schema field changed
    • changedOutput schema / properties / can_spend / description
      Previous value: -"True iff decision == allow."New value: +"Price-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."
  7. Changed1 schema field changed
    • changedInput schema / properties / seller_wallet / description
      Previous value: -"Seller's Solana wallet public key associated with the listing or endpoint. Provide this OR resource_name."New value: +"Seller'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."
  8. Changed1 schema field changed
    • changedInput schema / properties / seller_wallet / description
      Previous value: -"Seller'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."New value: +"Seller's Solana wallet public key associated with the listing or endpoint. Provide this OR resource_name."
  9. Changed1 schema field changed
    • changedInput schema / properties / seller_wallet / description
      Previous value: -"Seller's Solana wallet public key associated with the listing or endpoint. Provide this OR resource_name."New value: +"Seller'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."
  10. Changed1 schema field changed
    • changedOutput schema / properties / root_provenance / description
      Previous value: -"WZRD 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), dflow_velocity (when TWZRD_DFLOW_DATA_FIRST_URL set, 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."New value: +"WZRD 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."
  11. Changed1 schema field changed
    • changedOutput schema / properties / trust_score_basis / description
      Previous value: -"Provenance of the score; ALWAYS the free heuristic, never the paid 42k corpus."New value: +"Provenance of the score; ALWAYS the free heuristic, never the paid corpus model."
  12. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark readOnlyHint and idempotentHint, and the description adds material behavioral context: the result is advisory, it 'never mutates decision / can_spend', hard-stops are enumerated, and top-level aop_bind is additive. This goes well beyond the structured 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 for usage, hard-stops, decision semantics, and next actions. It loses a point because a few caveats (wash_flagged and leftover 0.05) are repeated in both the opening and the Hard-stops section.

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 gate tool with an output schema, the description covers decision mapping, recommended_action values, next_action handoff, trust_score limitations, return fields, and the verify_receipt follow-up. An agent has everything needed to call the tool correctly and interpret its result.

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

Parameters5/5

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

Though schema coverage is 100%, the description adds essential cross-parameter semantics: 'Pass seller_wallet OR resource_name', the warning never to paste path templates, and the subtle price_kind rules about 0.05 and leftover values. These are not inferable from the individual parameter descriptions alone.

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 by naming the tool a 'PRIMARY free pre-spend gate (advisory)', which is a specific role with a clear verb-like function. It distinguishes itself from verify_receipt and explains the decision semantics (block/warn/allow), so an agent can tell this gate apart from related 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?

It explicitly states 'When to use: before any x402 payment to a seller/resource' and 'When not to use: after you already decided to refuse; use verify_receipt for signed receipts only.' It also describes the next step after allow/warn, including when to call verify_receipt, leaving no ambiguity about selection.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.