Skip to main content
Glama

Connect in 30 seconds

Hosted MCP (nothing to install)

Add this remote to Claude, Cursor, VS Code or any MCP client that speaks streamable HTTP:

https://twin.unykorn.org/mcp

The hosted server holds no keys. Free tools (catalog, receipt) work immediately. Paid tools return the exact price quote, or run with a payment_signature you produce with your own wallet.

Local MCP (pays for you, within a cap you set)

{
  "mcpServers": {
    "genesis402": {
      "command": "npx",
      "args": ["-y", "genesis402-mcp"],
      "env": {
        "GENESIS402_LIVE": "1",
        "GENESIS402_PAYER_KEY": "0x<private key of a wallet holding a little USDC on Base>",
        "GENESIS402_MAX_USD": "0.25"
      }
    }
  }
}

Without GENESIS402_LIVE=1 the server is quote-only: it shows the price and signs nothing. The rail sets the price; the client decides whether to accept it. Use a dedicated wallet with a small balance.

Plain HTTP, any language

x402

GET https://twin.unykorn.org/price/bitcoin
→ 402, header payment-required: <base64 x402 v2 challenge>
sign the USDC authorization (EIP-3009) for the quoted amount, retry with X-PAYMENT
→ 200 + result + receipt id

MPP (the Payment HTTP auth scheme)

GET https://twin.unykorn.org/price/bitcoin
→ 402, header WWW-Authenticate: Payment id="…", method="usdc", intent="charge", request="…"
sign the same EIP-3009 authorization, retry with  Authorization: Payment <base64url credential>
→ 200 + result + Payment-Receipt header

Both dialects quote the same price to the same address in the same token. MPP discovery is the standard /openapi.json with x-payment-info on every operation.

Free before you pay: POST /__validate checks your parameters with the same validator the paid path uses, so a bad request is never charged.


Related MCP server: boo-x402-mcp

MCP tools

Tool

What it does

Cost

genesis402_catalog

Every endpoint with path, price and parameter schema, from the live manifest

Free

genesis402_receipt

Look up a paid-call receipt by id

Free

genesis402_call

Call any of the 360 endpoints by name

Per endpoint

genesis402_wallet_brief

Wallet risk signals: sanctions list, 10-chain scan, activity, summary

Paid

genesis402_token_brief

Token pre-trade check: metadata, price, holder concentration, verification

Paid

genesis402_screen_sanctions

Public-data sanctions-list signal for one address

Paid

genesis402_multi_chain_scan

One address across 10 EVM chains in one call

Paid

genesis402_defi_yields

Ranked yields from 15,000+ pools, filterable by chain, protocol, token, TVL

Paid

genesis402_sec_financials

As-reported fundamentals for a US public company from SEC XBRL

Paid

genesis402_email_check

MX, provider, SPF, DMARC, disposable flag, trust score

Paid

genesis402_whois

Registrar, age, expiry, status and nameservers via RDAP

Paid

genesis402_extract_json

Extract the fields you name from any text; missing fields are null

Paid

genesis402_web_extract

Any public page as clean text, title, headings and links

Paid

genesis402_prove

Signed Ed25519 receipt binding your digest to a settled payment

Paid

Live prices come from the rail's manifest; genesis402_catalog shows them. Every paid tool returns the receipt id and evidence hash with the result.

What is on the rail (360 endpoints)

Family

Count

Examples

Price

Crypto prices

72

/price/bitcoin, /price/ethereum …

$0.001

DeFi and markets

47

/defi/yields, /defi/stablecoins, /defi/chain/base, /defi/fees

$0.002–$0.01

Chain reads: 10 EVM chains + BTC, SOL, XLM, XRP

83

erc20-balance, evm-multi-chain-scan, evm-proof, xrpl-account, stellar-account, solana-account, btc-utxos

$0.001–$0.008

Deterministic compute

64

hashes, encodings, ABI encode/decode, EIP-712, merkle, ENS

$0.001–$0.003

Due diligence and risk

10

/wallet-brief, /token-brief, screen-sanctions, holder-concentration, /risk

$0.008–$0.25

Public records

12

/records/sec-financials, /records/sec-filings, /records/fx-rates, /records/treasury-yields, /records/vin-decode

$0.001–$0.01

Research

15

/research/arxiv-search, /research/doi, /research/npm-package, /research/wiki-summary

$0.001–$0.003

Web and domain intelligence

15

/web/whois, /web/dns, /web/tls-cert, /web/email-check, /web-extract, /summarize-url

$0.001–$0.004

Places, time, weather

10

/geo/geocode, /geo/weather-forecast, /geo/public-holidays

$0.001–$0.002

AI on our own GPU

16

/v1/chat/completions (OpenAI-compatible), /v1/embeddings, /ai/extract, /ai/text-to-sql, /ai/summarize

$0.002–$0.01

Proofs

2

/prove, /json-canonical

$0.001–$0.25

Full list with schemas and live examples: catalog, /.well-known/x402, /openapi.json.

Guarantees

  • Validate before pay. Bad input returns 400 with "nothing was charged".

  • Sources on every answer. Each response lists the upstream it read and an evidence_hash. A failed upstream is an error, never a silent zero.

  • Make-good. A paid call that is not delivered is credited to the payer automatically; the guardian reconciles every settlement on-chain within 48 hours.

  • Public status. twin.unykorn.org/status is the guardian's own report, refreshed every 5 minutes.

  • Identity. ERC-8004 agent 95721 on Base; A2A card at the rail root.

Payment rails

x402 v2 exact scheme and MPP usdc/charge (EIP-3009 authorization), on USDC on Base (primary) and Polygon. Solana USDC via facilitator settlement. XRP and USDC on XRPL and Stellar are pay-first, with the payment bound to the challenge nonce. The 402 response lists exactly which lanes are payable right now.

Repo layout

  • mcp/ — the MCP server (npx genesis402-mcp; genesis402-mcp-http for hosted mode), server.json for the MCP Registry, smoke.mjs (13 read-only checks against the live rail).

  • quickstart/ — Node and Python payers for Base, XRPL and Stellar.

  • assets/ — brand banner and icon.


Available Tools

14 tools
genesis402_callCall any endpointAInspect

Calls any of the 360 Genesis402 endpoints by name (DeFi, SEC filings, research, web/domain intel, AI text tools, multi-chain reads). Prices $0.001-$0.25 USDC on Base. Use for any endpoint without a dedicated tool; look up the name and parameters with genesis402_catalog first. Parameters are validated for free before any quote. Without payment_signature (or a local payer) it returns the exact price quote and signs nothing; with payment it returns the result plus the settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNoParameters for that endpoint as an object, matching the parameter schema shown in genesis402_catalog. Omit if the endpoint takes none.
endpointYesEndpoint name exactly as listed by genesis402_catalog, e.g. "defi-yields" or "wallet-brief" (a leading slash is ignored).
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the payment contract: without payment_signature it returns a price quote and signs nothing, with payment it returns the result plus settlement details, and parameters are validated free before any quote. It also gives the cost range ($0.001-$0.25 USDC on Base), which the readOnlyHint/openWorldHint annotations do not convey.

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?

Front-loaded with the core capability and domain scope, then cost, then fallback usage, then payment behavior. Four dense sentences, all informative, though the payment sentence restates some of what the schema already says about payment_signature.

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?

An output schema exists, so return values need not be enumerated. The description still covers the fallback role, cost, the catalog lookup prerequisite, and the two payment modes, which is everything an agent needs to invoke this generic dispatcher 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?

Schema coverage is 100%, so parameter definitions are already documented. The description still adds workflow meaning: the endpoint name must come from genesis402_catalog, and payment_signature drives the quote-vs-execute branch. Minor redundancy with the schema wording on payment_signature keeps it from a 5.

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 ('calls any of the 360 Genesis402 endpoints by name') and enumerates the covered domains. It also positions itself against the siblings by implying it is the generic fallback for endpoints lacking a dedicated tool such as genesis402_defi_yields or genesis402_whois.

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?

Explicitly says when to use it ('any endpoint without a dedicated tool') and names the prerequisite alternative ('look up the name and parameters with genesis402_catalog first'). The when-not is implied by the existence of dedicated tools, and the catalog routing is spelled out.

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

genesis402_catalogList endpoints and prices (free)A
Read-only
Inspect

Free, no payment. Lists every Genesis402 endpoint with its name, HTTP path, USD price, title and parameter schema, read from the live /.well-known/x402 manifest. Call this first to find the right endpoint name and parameters for genesis402_call; the dedicated genesis402_* tools cover the most used endpoints directly. Read-only. Returns the total count, the matches and the current payer mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional keyword to narrow the list, matched against endpoint name, title and tags, e.g. "defi", "sec", "price". Omit for all endpoints.

Output Schema

ParametersJSON Schema
NameRequiredDescription
originYesRail origin the catalog was read from.
matchedYesNumber of endpoints matching the filter.
endpointsYesMatching endpoints, at most 400.
payer_modeYesQUOTE_ONLY, HOSTED, or LIVE (cap $X) for a local self-paying server.
total_endpointsYesNumber of endpoints in the live manifest.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's 'Read-only' is partly redundant, but it adds genuinely new context: 'Free, no payment', that data comes from the live manifest rather than a cache, and that the response includes the current payer mode. Missing rate-limit or freshness/expiry caveats on the live read keeps this out of the top tier.

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 tight sentences, front-loaded with the free/no-payment fact and the core listing action, then routing guidance. Every clause earns its place, though 'Read-only' duplicates the annotation and slightly dilutes the density.

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?

An output schema exists, so return-value detail is not required, yet the description still names total count, matches and payer mode for orientation. Combined with explicit routing to genesis402_call and the sibling tools, an agent has everything needed to call this 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?

Schema description coverage is 100% and the single 'filter' parameter is fully documented there (matching fields, examples, omission behavior). The description adds nothing about the filter, so baseline 3 is appropriate when 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?

States a specific verb (lists) and resource (every Genesis402 endpoint) plus the exact fields returned (name, path, USD price, title, parameter schema) and the data source (live /.well-known/x402 manifest). This is unambiguous and clearly distinct from genesis402_call and the dedicated genesis402_* tools it names.

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?

Explicitly says 'Call this first to find the right endpoint name and parameters for genesis402_call' and clarifies that the dedicated genesis402_* tools cover the most-used endpoints directly. Both the when and the alternative route are stated, leaving nothing to inference.

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

genesis402_defi_yieldsFind DeFi yieldsAInspect

Paid ($0.01 USDC). Ranked DeFi yield pools from DefiLlama (15,000+ pools), filterable by chain, protocol, token, stablecoin-only and minimum TVL. Use to answer 'where is the best yield for X'. For other DeFi or market data search genesis402_catalog and call the endpoint through genesis402_call. All filters are optional and combine with AND; with none set it returns the top pools above $1M TVL. Returns up to limit pools, each with protocol, chain, symbol, TVL, base APY vs reward APY, 30-day mean APY, impermanent-loss risk, exposure and DefiLlama's outlook class. APYs are variable and backward-looking; not investment advice. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order: 'apy' (highest yield first) or 'tvl' (largest pool first).
chainNoFilter to one chain by name, e.g. Ethereum, Base, Arbitrum. Omit for all chains.
limitNoHow many pools to return, 1 to 100.
tokenNoToken symbol that must be in the pool, e.g. USDC, ETH, WBTC.
projectNoFilter to one protocol by its DefiLlama slug, e.g. aave-v3. Omit for all protocols.
min_tvl_usdNoMinimum pool TVL in US dollars as a plain number. Defaults to 1000000 ($1M) when omitted.
stablecoin_onlyNotrue = only stablecoin pools. Omit or false for all pools.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only flag readOnlyHint=false and openWorldHint=true, so the description adds the real behavioral payload: a $0.01 USDC cost, the two-step x402 payment handshake (quote first with no charge, then sign), the DefiLlama source, and an explicit caveat that APYs are variable and backward-looking and not investment advice. That is meaningfully beyond what the annotations convey and is consistent with readOnlyHint=false.

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?

Front-loads purpose, cost, source and filters, then routing, return shape, caveats and payment flow. Dense but each sentence carries information; the return-field enumeration and payment mechanics make it longer than strictly minimal, though nothing is genuinely wasted.

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?

Covers cost, payment protocol, filter interaction, default behavior, routing to alternatives, and return contents. With an output schema present it did not need to enumerate return fields, so doing so is bonus rather than gap; nothing an agent needs to call this correctly 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 the baseline is 3 and the schema already defines each filter, its enum, bounds, and defaults. The description still adds cross-parameter semantics the schema cannot express: filters are optional, combine with AND, and the no-filter behavior defaults to pools above $1M TVL.

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 (ranked DeFi yield pools from DefiLlama, 15,000+ pools) plus the filter dimensions and the target question 'where is the best yield for X'. It also explicitly names sibling tools (genesis402_catalog, genesis402_call) for the cases it does not cover, so an agent can route without opening other schemas.

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?

Gives a concrete intended question ('where is the best yield for X'), an explicit alternative path for other DeFi/market data (search genesis402_catalog and call via genesis402_call), and clarifies that all filters are optional and combine with AND, with a defined no-filter default ($1M TVL top pools). That covers when-to-use, when-not, and alternative.

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

genesis402_email_checkCheck email or domain deliverabilityAInspect

Paid ($0.002 USDC). Deliverability and trust check for an email address or domain. Use to vet a signup email or an inbound sender. For the domain's registration age and registrar use genesis402_whois. Returns whether it can receive mail (MX), the hosting provider, SPF and DMARC records and policy, a disposable-domain flag and a 0-5 trust score. DNS-only: no SMTP probe, no email sent, the mailbox is never contacted. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
email_or_domainYesA full email address (user@domain.com) or a bare domain (domain.com), without scheme or path.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the sparse annotations (readOnlyHint=false, openWorldHint=true) by disclosing the DNS-only nature, that no SMTP probe or email is sent and the mailbox is never contacted, and the exact payment/settlement protocol. It also previews the returned signals (MX, provider, SPF/DMARC, disposable flag, 0-5 score). Nothing here contradicts 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.

Conciseness5/5

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

Front-loads the paid nature and the core purpose, then layers usage, sibling routing, return contents, safety scope, and payment flow. Dense but every sentence carries distinct information; 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?

For a paid, open-world lookup with an output schema, the description supplies everything an agent needs: what it does, when to use it, the sibling alternative, the safety boundary, and the exact payment invocation sequence. Return values are additionally summarized even though an output schema exists.

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 baseline is 3, and the description adds real meaning on top: it explains the quote-then-pay sequencing for payment_signature (call once with nothing charged to obtain the price, then again with the signed payment). It adds little to email_or_domain, which the schema already documents in full.

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 — deliverability/trust check for an email address or domain — and explicitly routes the adjacent question (registration age, registrar) to the named sibling genesis402_whois. An agent can distinguish it from the other genesis402 tools without opening any schema.

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?

Gives concrete usage contexts ('vet a signup email or an inbound sender') and names the alternative for the neighboring use case. The two-phase payment procedure is also spelled out, so the agent knows exactly how to invoke it correctly.

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

genesis402_extract_jsonExtract JSON fields from textAInspect

Paid ($0.006 USDC). Pull the fields you define out of unstructured text as JSON. Anything the text does not state comes back null, never invented. Use to turn emails, invoices, contracts or listings into structured data. To get a web page's text first use genesis402_web_extract. The field descriptions steer the extraction, so include units and formats (e.g. "ISO date", "number in USD"). Returns one JSON object with exactly your keys, each holding the extracted value or null. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe source text to read, up to 16,000 characters. Trim longer input first.
fieldsYesUp to 30 fields: an object mapping each output key to a short description of what it should hold, including unit or format, e.g. { "invoice_total": "total amount due in USD, number", "due_date": "ISO date" }.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only cover readOnlyHint=false and openWorldHint=true. The description adds material behavior beyond that: the $0.006 USDC charge, the two-call quote-then-sign flow where nothing is charged without a signature, and the anti-hallucination guarantee that unstated fields return null. These are non-obvious traits that meaningfully affect how an agent calls 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.

Conciseness4/5

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

Front-loaded with price and purpose, then use cases, sibling routing, parameter guidance, return contract, and payment flow. Every sentence carries information, though the combined payment and return explanation makes it denser than strictly necessary.

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?

Despite high complexity (nested object param, payment protocol, output schema), the description covers purpose, prerequisites, parameter crafting, return shape, and the full payment handshake. With an output schema present, it does not need to restate return values and correctly avoids that.

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 baseline is 3. The description goes further by explaining that field descriptions steer extraction and should carry units/formats, and it names the exact output contract ('one JSON object with exactly your keys'). That is real guidance beyond the schema's structural definitions.

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 ('pull the fields you define out of unstructured text as JSON') and distinguishes itself from genesis402_web_extract by naming that sibling as the upstream step. An agent can tell this is a schema-driven extraction tool, not a generic text fetcher.

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?

Gives concrete use cases (emails, invoices, contracts, listings) and explicitly routes to genesis402_web_extract when the source is a web page. It also prescribes the exact payment call sequence, so the agent knows the correct invocation pattern rather than guessing.

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

genesis402_multi_chain_scanScan address across 10 EVM chainsAInspect

Paid ($0.008 USDC). Sweeps one address across 10 EVM chains at once and reports where it is actually active. Use to find which networks an address uses before drilling into one chain. No risk scoring or sanctions check: for that use genesis402_wallet_brief. Returns, per chain, the native balance, the number of transactions sent and whether contract bytecode is deployed; chains whose RPC did not answer are listed separately, never counted as inactive. Activity is inferred from nonce, balance and code, so an address that only ever received tokens can show a zero nonce; check its balance field. Public on-chain data with sources and an evidence hash. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe EVM address to scan, 0x followed by 40 hex characters. Checksum case is optional.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the price ($0.008 USDC) and the full x402 flow (call once for a free quote, call again with the signed payment). It also pre-empts failure modes an agent would otherwise misread: unavailable RPCs are listed separately and never counted as inactive, and receive-only addresses can legitimately show a zero nonce. This is exactly the kind of behavioral context structured fields cannot carry.

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?

It is long, but front-loaded with the paid price and the one-line purpose before details. Nearly every sentence carries a distinct fact (scope, exclusions, return shape, caveats, payment protocol), though the caveat cluster in the middle could be tightened slightly.

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?

An output schema exists, yet the description still summarizes the per-chain return shape (native balance, tx count, bytecode presence) plus the partial-failure list, which is what an agent needs to reason about incomplete results. Payment mechanics, scope, alternatives and caveats are all covered for a paid, open-world read 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?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning beyond the schema: it explains why payment_signature exists (the two-call quote-then-pay cycle) and how to interpret the address's results, since activity is inferred from nonce, balance and code. It clarifies the semantics of the output fields rather than the parameter syntax, which is a modest but real value-add.

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 ('Sweeps one address across 10 EVM chains at once and reports where it is actually active') with the exact scope of the sweep. It explicitly distinguishes itself from siblings by naming what it does NOT do ('No risk scoring or sanctions check') and naming the sibling that does it. An agent can route without opening any schema.

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?

Gives a concrete when-to-use ('find which networks an address uses before drilling into one chain') and an explicit alternative with its condition ('for that use genesis402_wallet_brief'). The two-step payment protocol is also spelled out as a usage instruction, not left to inference.

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

genesis402_proveIssue a signed proof receiptAInspect

Paid ($0.25 USDC). Issue one Ed25519-signed, hash-chained receipt recording that a SHA-256 digest existed at the time of payment. Use as a cheap timestamped proof that you held a document or statement. To look the receipt up later use genesis402_receipt (free). Send text (hashed by the rail, labelled OBSERVED) or a sha256 you computed yourself (labelled ATTESTED; keeps the content private), not both. Returns the receipt bound to your payment transaction, with its truth labels and limitations. It verifies offline with the open verifier at github.com/FTHTrading/402-truth. The rail stores the receipt, never your bytes. Not externally anchored on a public blockchain yet. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoRaw UTF-8 text to hash and prove, up to 16 KiB (16,384 characters). Provide this or sha256, not both.
claimNoOptional short statement bound into the signed receipt, up to 512 characters, e.g. 'Draft v2 of the purchase agreement'.
sha256NoLowercase hex SHA-256 digest (64 characters) of the content to prove. Provide this or text, not both.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only supply readOnlyHint=false and openWorldHint=true, so the description carries the real burden and does: exact price ($0.25 USDC), the quote-then-pay flow, that the rail stores the receipt but never the bytes, that content is labelled OBSERVED vs ATTESTED, and the honest limitation that it is not yet anchored on a public blockchain. This is unusually rich disclosure for a paid write operation.

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 cost and core purpose are front-loaded in the first sentence, and each subsequent sentence carries distinct information (routing, input choice, offline verification, privacy guarantee, limitation, payment flow). It is dense and slightly long, but nothing is clearly redundant.

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 need not detail return values, yet it still summarizes that the response is bound to the payment transaction and carries truth labels and limitations. Combined with the payment protocol and privacy guarantees, an agent has everything needed to invoke this paid tool 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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: text is hashed by the rail and labelled OBSERVED, whereas a caller-supplied sha256 is labelled ATTESTED and keeps the content private, and the two are mutually exclusive. That privacy/labelling distinction goes beyond the field 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?

States a specific verb and resource: issuing one Ed25519-signed, hash-chained receipt proving a SHA-256 digest existed at payment time. It also explicitly distinguishes itself from the sibling lookup tool ('To look the receipt up later use genesis402_receipt (free)'), so an agent can separate prove-now from look-up-later without opening either schema.

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?

Gives both when-to-use ('cheap timestamped proof that you held a document or statement') and when-to-use-something-else (genesis402_receipt for retrieval). It further routes between the two input modes, text vs sha256, and states they are mutually exclusive, plus the two-call payment protocol for obtaining a quote first.

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

genesis402_receiptLook up a receipt (free)A
Read-only
Inspect

Free, no payment. Fetches one paid-call receipt by id from the rail's public receipts feed, to confirm a call was paid and delivered. Use to verify a genesis402_prove receipt or any paid call later. Read-only and idempotent. Returns the receipt as JSON, or an error with the HTTP status if the id is not found.

ParametersJSON Schema
NameRequiredDescriptionDefault
receipt_idYesThe receipt id exactly as returned with a paid call result or by genesis402_prove, 4 to 80 characters.

Output Schema

ParametersJSON Schema
NameRequiredDescription
receiptYesThe receipt exactly as published on the rail's receipts feed.
receipt_idYesThe id that was looked up.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read-only and open-world traits, yet the description adds cost ('Free, no payment'), idempotency ('Read-only and idempotent'), and failure behavior ('an error with the HTTP status if the id is not found'). Those are real extras beyond the annotations; only the return-value line is redundant with the existing output schema.

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?

Four tight sentences with no filler, front-loaded with the cost/payment signal. Slightly more prose than strictly needed given the output schema already documents the return shape.

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 one-parameter read with an output schema and annotations, the description covers purpose, when to use, cost, idempotency, and the not-found error path. Nothing an agent needs to invoke it correctly 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% for the single receipt_id parameter, so the baseline is 3. The description says only 'by id' and adds no format, sourcing, or lookup semantics beyond what the schema field already documents.

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 ('Fetches one paid-call receipt by id') plus its source ('the rail's public receipts feed'), and the stated goal (confirm a call was paid and delivered) distinguishes it from siblings like genesis402_call and genesis402_prove. An agent can tell what it does 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 Guidelines4/5

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

Names the trigger context ('Use to verify a genesis402_prove receipt or any paid call later') and ties itself to a specific sibling, which is concrete guidance. It stops short of stating when *not* to use it or naming an alternative lookup path, so it falls just short of a 5.

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

genesis402_screen_sanctionsScreen address against sanctions listsAInspect

Paid ($0.008 USDC). List lookup for one address on any chain against OFAC SDN digital-currency entries, community scam-address blocklists and the Blockchain Fraud case registry. Use as a fast, cheap first gate on a counterparty address. For balances plus sanctions plus a summary on an EVM address use genesis402_wallet_brief. Returns whether any list matched, and for every list consulted its dataset name, fetch URL and entry count, plus an evidence hash. A hit means the address appears on a published list; absence from every list is not a clearance. Not a compliance decision, not a finding about any person, not legal advice. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe crypto address to screen, on any chain, exactly as written on that chain (4 to 120 characters, no spaces).
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the sparse annotations (readOnlyHint=false, openWorldHint=true) by disclosing the price ($0.008 USDC), the two-call quote-then-pay flow, what 'nothing is charged or signed' means on the first call, settlement details on the second, and explicit limitations ('absence from every list is not a clearance', 'not a compliance decision'). It also describes the return contents (per-list dataset name, fetch URL, entry count, evidence hash), which the annotations do not cover.

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?

Front-loaded with the price and the core purpose, then usage, returns, caveats and the payment protocol in a logical order. It is dense and fairly long, but nearly every clause carries decision-relevant information; only minor trimming is 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 an output schema exists, return values need not be explained, yet the description still summarizes the shape (match flag, per-list metadata, evidence hash). For a paid, open-world lookup with caveats and a two-step payment handshake, nothing an agent needs to call it correctly 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 the baseline is 3; the description adds real meaning on top by clarifying that the address can be on any chain, that the first call requires no payment_signature, and that the second call must carry the signed quote to obtain a result. It does not restate format details already in 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?

States a specific verb and resource ('List lookup for one address on any chain') plus the exact data sources (OFAC SDN digital-currency entries, community scam blocklists, Blockchain Fraud registry). It explicitly names the sibling it is not ('For balances plus sanctions plus a summary on an EVM address use genesis402_wallet_brief'), so an agent can distinguish it without opening either schema.

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?

Gives a clear when-to-use ('fast, cheap first gate on a counterparty address') and names the specific alternative plus the condition that selects it (genesis402_wallet_brief for EVM balances + summary). It also states the call protocol: once without payment_signature for a quote, again with the signed payment.

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

genesis402_sec_financialsGet SEC company financialsAInspect

Paid ($0.01 USDC). As-reported fundamentals for one SEC filer from XBRL company facts. Use for quick fundamentals without a data vendor. For other SEC data search genesis402_catalog for "sec" and use genesis402_call. Give ticker or cik; one is required. Returns the latest annual and latest quarterly values for revenue, net income, operating income, total assets, liabilities, equity, cash, operating cash flow and diluted EPS, each with period end and filing date. Missing tags are marked unavailable, never estimated. Not investment advice. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
cikNoSEC Central Index Key, digits only, up to 10, e.g. 320193. Provide this or ticker.
tickerNoStock ticker, e.g. COIN or AAPL. Provide this or cik.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.8/5.0
Behavior5/5

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

Discloses the full payment protocol (first call for a quote with nothing charged, second call with signed payment for result and settlement), the exact price ($0.01 USDC), and data-integrity behavior ('missing tags are marked unavailable, never estimated'). This far exceeds what the readOnlyHint=false/openWorldHint=true annotations convey and does not contradict 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?

Front-loaded with price and purpose, and every sentence is substantive. Slightly penalized because the payment protocol is stated twice (top and bottom) and 'Not investment advice' is boilerplate.

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?

Complete for a paid, open-world data tool: purpose, alternatives, input requirements, enumerated return fields, missing-data policy, and payment mechanics are all covered, so nothing needed to call it correctly 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 the baseline is 3, but the description adds value by clarifying the either/or requirement ('give ticker or cik; one is required') and by explaining the payment_signature two-step flow, which the schema documents only briefly.

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+resource: as-reported fundamentals for one SEC filer from XBRL company facts. It distinguishes itself from siblings by routing other SEC data needs to genesis402_catalog/genesis402_call, so an agent can pick it apart from the other genesis402_* 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?

Gives explicit when-to-use ('quick fundamentals without a data vendor') and names the alternative path for other SEC data ('search genesis402_catalog for "sec" and use genesis402_call'). It also states the input requirement ('give ticker or cik; one is required').

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

genesis402_token_briefToken pre-trade briefAInspect

Paid ($0.03 USDC). Pre-trade check for one ERC-20 token contract in a single call: name, symbol, decimals and supply, current USD price, top-holder concentration, source-verification status and a sanctions-list check on the contract address. Use before buying, listing or accepting an unfamiliar token. For a wallet rather than a token use genesis402_wallet_brief. Returns each part with its sources (unreadable parts are marked unavailable, never zeroed) and an evidence hash. Signals only, not investment advice. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoChain the token contract lives on. Defaults to base when omitted.
contractYesThe ERC-20 token contract address, 0x followed by 40 hex characters. Must be the token contract, not a holder's wallet.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and openWorldHint=true; the description adds substantial context beyond them: the $0.03 USDC cost, the two-call quote-then-pay handshake, that unreadable parts are marked unavailable rather than zeroed, and that an evidence hash is returned. This is exactly the behavioral disclosure a paid, state-mutating tool 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?

Front-loads price and scope, then routing, then behavior, then payment mechanics – a sensible order with almost no filler. It is dense and long, but each sentence carries distinct information an agent needs before calling.

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?

An output schema exists so return values need no explanation, and the description still covers the payment workflow, evidence hash and unavailable-vs-zero semantics. For a paid, open-world tool with three parameters this is complete enough to invoke 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?

Schema description coverage is 100%, so chain, contract and payment_signature are already fully documented in the schema. The description restates the contract-vs-wallet constraint and the payment pattern but adds no syntax or format detail beyond the schema, so the baseline 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?

States a specific verb and resource ('pre-trade check for one ERC-20 token contract in a single call') and enumerates the exact outputs. It explicitly contrasts itself with genesis402_wallet_brief, so an agent can route between the token and wallet variants without opening a schema.

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?

Gives an explicit trigger ('Use before buying, listing or accepting an unfamiliar token') and names the alternative sibling plus the condition that selects it ('For a wallet rather than a token use genesis402_wallet_brief'). Nothing about when to pick this tool 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.

genesis402_wallet_briefWallet risk briefAInspect

Paid ($0.03 USDC). Full risk brief for one EVM wallet in a single call: sanctions-list check (OFAC SDN digital-currency entries), native balance and activity scan across 10 EVM chains, recent activity on the chosen chain and a plain-language summary. Use before sending funds to, or accepting funds from, an unknown address. For a sanctions check alone use genesis402_screen_sanctions (cheaper, any chain); for balances without risk signals use genesis402_multi_chain_scan; for a token contract use genesis402_token_brief. Returns each part with its own sources (a part that cannot be read is marked unavailable with the reason, never zeroed) and an evidence hash over all parts. Heuristic signals from public data: not KYC, not a compliance determination, not legal advice. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoOptional EVM chain name to focus on, e.g. ethereum or base. Omit to cover all supported chains.
addressYesThe EVM wallet address to check, 0x followed by 40 hex characters. Checksum case is optional.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the paid nature ($0.03 USDC), the two-step quote-then-sign payment protocol, the failure semantics ('a part that cannot be read is marked unavailable with the reason, never zeroed'), the evidence hash output, and explicit non-goals (not KYC, not a compliance determination, not legal advice). The readOnlyHint=false annotation is consistent with the payment/settlement behavior described.

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?

Front-loaded with purpose and price; sentence order (what it is → when to use → alternatives → returns → disclaimers → payment) is logical. It is dense with several sentences, but essentially every one carries distinct information; only minor tightening is 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?

For a 3-parameter paid tool with an output schema, the description covers everything an agent needs: cost, payment handshake, scope of chains, per-part sourcing and unavailability behavior, disclaimers, and sibling routing. Nothing material 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 already 100%, so the baseline is 3, but the description adds real meaning: it explains chains scope ('recent activity on the chosen chain') and, crucially, the operational contract for payment_signature — omit it first to obtain an uncharged quote, resend with the signed payment. The address parameter itself adds nothing 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?

States a specific resource and scope ('Full risk brief for one EVM wallet in a single call') and enumerates the constituent parts: sanctions check, native balance/activity across 10 chains, recent chain activity, and a summary. It also names the sibling tools it is not, so an agent can distinguish it without opening any schema.

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?

Gives an explicit usage trigger ('Use before sending funds to, or accepting funds from, an unknown address') and routes to three named alternatives with the condition that selects each: screen_sanctions for sanctions alone, multi_chain_scan for balances without risk signals, token_brief for token contracts.

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

genesis402_web_extractExtract text from a web pageAInspect

Paid ($0.004 USDC). Server-side fetch of one public web page, returned as clean readable text. Use when you need a page's actual content. To pull specific fields out of the result use genesis402_extract_json; for domain registration facts use genesis402_whois. Returns the title, meta description, readable text with markdown-style headings (capped at max_chars), up to 40 headings, up to 50 absolute links, the final URL after redirects and a SHA-256 of the fetched bytes. No JavaScript is executed, so client-rendered pages may come back thin. Private or internal addresses are refused, and pages behind a login or paywall are not accessible. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL of one public page, starting with http:// or https://.
max_charsNoMaximum characters of page text to return, 500 to 60,000. Defaults to 20,000. Text past the cap is cut off.
include_linksNoInclude the page's links in the result. Defaults to true; set false for text only.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the sparse annotations (readOnlyHint=false, openWorldHint=true): discloses that no JavaScript is executed so client-rendered pages come back thin, that private/internal addresses are refused, that login/paywall pages fail, and the two-call payment quote-then-pay flow. That is exactly the operational context an agent needs before spending money on a call.

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?

Front-loads the cost and the core action, then routes to siblings and enumerates return fields and caveats. Dense and mostly earning its sentences, though the return-field enumeration is long and the payment protocol sentence could be tighter.

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, the description's caveats (no JS, address refusal, paywall, truncation) and the paid-call protocol cover the decision-relevant gaps. Nothing needed to call it correctly 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 value by explaining that text is 'capped at max_chars' and by spelling out the payment_signature protocol (omit to get a quote, nothing charged without it). It does not add much beyond the schema for url/include_links, so it is an add-on rather than a full compensation.

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 ('server-side fetch of one public web page, returned as clean readable text') and immediately distinguishes itself from genesis402_extract_json and genesis402_whois. An agent can identify the tool 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 Guidelines5/5

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

'Use when you need a page's actual content' sets the trigger, and two named alternatives with their own conditions (field extraction -> extract_json, domain registration -> whois) are given. Explicit routing rather than implied usage.

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

genesis402_whoisLook up domain registration (RDAP)AInspect

Paid ($0.002 USDC). Registry data for one domain via RDAP. Young domains are a common phishing and fraud signal. Use to vet a website or counterparty domain. For mail setup (MX, SPF, DMARC) use genesis402_email_check; for page content use genesis402_web_extract. Returns registrar, registration and expiry dates, domain age in days, days to expiry, status codes, nameservers and DNSSEC state. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to look up, e.g. example.com. No scheme (https://), path or port.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false and openWorldHint=true, so the description carries most of the burden and does it well: it discloses the cost ($0.002 USDC), the exact two-step x402 flow (quote call charges and signs nothing; second call with signed payment returns result and settlement), and the returned fields. It stops short of noting rate limits or failure/refund behavior, so not a 5.

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-loads the paid/RDAP nature, then use case, then sibling routing, then returns, then payment mechanics. Every sentence carries distinct information with 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 need not restate return values, yet it briefly summarizes them anyway. Combined with cost, payment flow, rationale, and sibling disambiguation, nothing an agent needs to invoke this correctly 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%, including domain format rules and the meaning of payment_signature, so the schema already does this work. The description reinforces the payment_signature semantics via the quote-then-pay flow but adds little that the schema field descriptions do not already state.

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 ('Registry data for one domain via RDAP') plus a distinguishing scope ('one domain'). It explicitly names the sibling tools it is not (genesis402_email_check for mail, genesis402_web_extract for page content), so an agent can route correctly without opening any schema.

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?

Gives explicit when-to-use ('Use to vet a website or counterparty domain'), names two alternatives with the condition that selects them, and explains the rationale ('young domains are a common phishing and fraud signal'). The two-call payment precondition is also spelled out.

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. 14 tool updatesv0.3.4
    • Changedgenesis402_call1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_catalog1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "endpoints": {
        +      "description": "Matching endpoints, at most 400.",
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "description": "Endpoint name to pass to genesis402_call.",
        +            "type": "string"
        +          },
        +          "parameters": {
        +            "description": "Parameter schema from the manifest."
        +          },
        +          "path": {
        +            "description": "HTTP path on the rail.",
        +            "type": "string"
        +          },
        +          "price_usd": {
        +            "description": "Price per call in USD, null if the manifest carries none.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "title": {
        +            "description": "Short human title.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "path",
        +          "price_usd"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "matched": {
        +      "description": "Number of endpoints matching the filter.",
        +      "type": "integer"
        +    },
        +    "origin": {
        +      "description": "Rail origin the catalog was read from.",
        +      "type": "string"
        +    },
        +    "payer_mode": {
        +      "description": "QUOTE_ONLY, HOSTED, or LIVE (cap $X) for a local self-paying server.",
        +      "type": "string"
        +    },
        +    "total_endpoints": {
        +      "description": "Number of endpoints in the live manifest.",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "origin",
        +    "total_endpoints",
        +    "matched",
        +    "payer_mode",
        +    "endpoints"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_defi_yields1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_email_check1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_extract_json1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_multi_chain_scan1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_prove1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "receipt": {
        +      "additionalProperties": {},
        +      "description": "The receipt exactly as published on the rail's receipts feed.",
        +      "type": "object"
        +    },
        +    "receipt_id": {
        +      "description": "The id that was looked up.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "receipt_id",
        +    "receipt"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_screen_sanctions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_sec_financials1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_token_brief1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_wallet_brief1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_web_extract1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
    • Changedgenesis402_whois1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "also_accepted_networks": {
        +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "how_to_pay": {
        +      "description": "QUOTE_ONLY: how to sign and resend the call.",
        +      "type": "string"
        +    },
        +    "mode": {
        +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
        +      "enum": [
        +        "QUOTE_ONLY",
        +        "PAID",
        +        "FREE"
        +      ],
        +      "type": "string"
        +    },
        +    "paid": {
        +      "description": "true only when a payment was settled for this call.",
        +      "type": "boolean"
        +    },
        +    "payment_required_b64": {
        +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "atomic": {
        +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
        +              "type": "string"
        +            },
        +            "payTo": {
        +              "description": "Address the payment settles to.",
        +              "type": "string"
        +            },
        +            "usd": {
        +              "description": "Price in US dollars.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "atomic",
        +            "usd",
        +            "payTo",
        +            "network"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
        +    },
        +    "resource": {
        +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "PAID or FREE: the endpoint's JSON result."
        +    },
        +    "settlement": {
        +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
        +    },
        +    "what_you_get": {
        +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "paid"
        +  ],
        +  "type": "object"
        +}
  2. 12 tool updatesv0.3.3
    • Changedgenesis402_defi_yields4 fields changed
      • changedInput schema / properties / min_tvl_usd / description
        Previous value: -"Minimum pool TVL in USD, e.g. 1000000 to skip small pools."New value: +"Minimum pool TVL in US dollars as a plain number. Defaults to 1000000 ($1M) when omitted."
      • changedInput schema / properties / project / description
        Previous value: -"Filter to one protocol by its slug, e.g. aave-v3. Omit for all protocols."New value: +"Filter to one protocol by its DefiLlama slug, e.g. aave-v3. Omit for all protocols."
      • changedInput schema / properties / stablecoin_only / description
        Previous value: -"true = only stablecoin pools."New value: +"true = only stablecoin pools. Omit or false for all pools."
      • changedInput schema / properties / token / description
        Previous value: -"Filter to pools containing this token symbol, e.g. USDC, ETH, WBTC. Case-insensitive."New value: +"Token symbol that must be in the pool, e.g. USDC, ETH, WBTC."
    • Changedgenesis402_email_check1 field changed
      • changedInput schema / properties / email_or_domain / description
        Previous value: -"A full email address (name@example.com) or a bare domain (example.com)."New value: +"A full email address (user@domain.com) or a bare domain (domain.com), without scheme or path."
    • Changedgenesis402_extract_json2 fields changed
      • changedInput schema / properties / fields / description
        Previous value: -"The fields to extract: an object mapping each field name to a short description, e.g. { \"invoice_total\": \"total amount due in USD\", \"due_date\": \"ISO date\" }."New value: +"Up to 30 fields: an object mapping each output key to a short description of what it should hold, including unit or format, e.g. { \"invoice_total\": \"total amount due in USD, number\", \"due_date\": \"ISO date\" }."
      • changedInput schema / properties / text / description
        Previous value: -"The source text to read, up to 16,000 characters."New value: +"The source text to read, up to 16,000 characters. Trim longer input first."
    • Changedgenesis402_multi_chain_scan1 field changed
      • changedInput schema / properties / address / description
        Previous value: -"The EVM address to scan, 0x followed by 40 hex characters."New value: +"The EVM address to scan, 0x followed by 40 hex characters. Checksum case is optional."
    • Changedgenesis402_prove3 fields changed
      • changedInput schema / properties / claim / description
        Previous value: -"Optional short statement bound into the receipt, e.g. 'Draft v2 of the purchase agreement'."New value: +"Optional short statement bound into the signed receipt, up to 512 characters, e.g. 'Draft v2 of the purchase agreement'."
      • changedInput schema / properties / sha256 / description
        Previous value: -"Lowercase hex SHA-256 digest (64 characters) of the content to prove. Provide this or text."New value: +"Lowercase hex SHA-256 digest (64 characters) of the content to prove. Provide this or text, not both."
      • changedInput schema / properties / text / description
        Previous value: -"Raw text to hash and prove, up to 16,384 characters. Provide this or sha256."New value: +"Raw UTF-8 text to hash and prove, up to 16 KiB (16,384 characters). Provide this or sha256, not both."
    • Changedgenesis402_receipt1 field changed
      • changedInput schema / properties / receipt_id / description
        Previous value: -"The receipt id returned with a paid call result."New value: +"The receipt id exactly as returned with a paid call result or by genesis402_prove, 4 to 80 characters."
    • Changedgenesis402_screen_sanctions1 field changed
      • changedInput schema / properties / address / description
        Previous value: -"The crypto address to screen, as a string (4 to 120 characters)."New value: +"The crypto address to screen, on any chain, exactly as written on that chain (4 to 120 characters, no spaces)."
    • Changedgenesis402_sec_financials2 fields changed
      • changedInput schema / properties / cik / description
        Previous value: -"SEC Central Index Key (CIK), up to 10 digits. Provide this or ticker."New value: +"SEC Central Index Key, digits only, up to 10, e.g. 320193. Provide this or ticker."
      • changedInput schema / properties / ticker / description
        Previous value: -"Stock ticker, e.g. AAPL or MSFT. Provide this or cik."New value: +"Stock ticker, e.g. COIN or AAPL. Provide this or cik."
    • Changedgenesis402_token_brief4 fields changed
      • changedInput schema / properties / chain / description
        Previous value: -"Optional EVM chain name to focus on, e.g. ethereum or base. Omit to cover all supported chains."New value: +"Chain the token contract lives on. Defaults to base when omitted."
      • addedInput schema / properties / chain / enum
        Added value: +[
        +  "base",
        +  "ethereum",
        +  "polygon",
        +  "arbitrum",
        +  "optimism"
        +]
      • removedInput schema / properties / chain / maxLength
        Removed value: -24
      • changedInput schema / properties / contract / description
        Previous value: -"The ERC-20 token contract address, 0x followed by 40 hex characters (not a wallet address)."New value: +"The ERC-20 token contract address, 0x followed by 40 hex characters. Must be the token contract, not a holder's wallet."
    • Changedgenesis402_wallet_brief1 field changed
      • changedInput schema / properties / address / description
        Previous value: -"The EVM wallet address to check, 0x followed by 40 hex characters."New value: +"The EVM wallet address to check, 0x followed by 40 hex characters. Checksum case is optional."
    • Changedgenesis402_web_extract3 fields changed
      • addedInput schema / properties / include_links
        Added value: +{
        +  "description": "Include the page's links in the result. Defaults to true; set false for text only.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / max_chars / description
        Previous value: -"Maximum characters of text to return, 500 to 60,000."New value: +"Maximum characters of page text to return, 500 to 60,000. Defaults to 20,000. Text past the cap is cut off."
      • changedInput schema / properties / url / description
        Previous value: -"Full http(s) URL of the public page to fetch."New value: +"Full URL of one public page, starting with http:// or https://."
    • Changedgenesis402_whois1 field changed
      • changedInput schema / properties / domain / description
        Previous value: -"The domain to look up, e.g. example.com (no scheme or path)."New value: +"The domain to look up, e.g. example.com. No scheme (https://), path or port."
  3. 14 tool updatesv0.3.2
    • Changedgenesis402_call3 fields changed
      • addedInput schema / properties / endpoint / description
        Added value: +"Endpoint name exactly as listed by genesis402_catalog, e.g. \"defi-yields\" or \"wallet-brief\" (a leading slash is ignored)."
      • addedInput schema / properties / params / description
        Added value: +"Parameters for that endpoint as an object, matching the parameter schema shown in genesis402_catalog. Omit if the endpoint takes none."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
    • Changedgenesis402_catalog1 field changed
      • addedInput schema / properties / filter / description
        Added value: +"Optional keyword to narrow the list, matched against endpoint name, title and tags, e.g. \"defi\", \"sec\", \"price\". Omit for all endpoints."
    • Changedgenesis402_defi_yields8 fields changed
      • addedInput schema / properties / chain / description
        Added value: +"Filter to one chain by name, e.g. Ethereum, Base, Arbitrum. Omit for all chains."
      • addedInput schema / properties / limit / description
        Added value: +"How many pools to return, 1 to 100."
      • addedInput schema / properties / min_tvl_usd / description
        Added value: +"Minimum pool TVL in USD, e.g. 1000000 to skip small pools."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
      • addedInput schema / properties / project / description
        Added value: +"Filter to one protocol by its slug, e.g. aave-v3. Omit for all protocols."
      • addedInput schema / properties / sort / description
        Added value: +"Sort order: 'apy' (highest yield first) or 'tvl' (largest pool first)."
      • addedInput schema / properties / stablecoin_only / description
        Added value: +"true = only stablecoin pools."
      • addedInput schema / properties / token / description
        Added value: +"Filter to pools containing this token symbol, e.g. USDC, ETH, WBTC. Case-insensitive."
    • Changedgenesis402_email_check2 fields changed
      • addedInput schema / properties / email_or_domain / description
        Added value: +"A full email address (name@example.com) or a bare domain (example.com)."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
    • Changedgenesis402_extract_json3 fields changed
      • addedInput schema / properties / fields / description
        Added value: +"The fields to extract: an object mapping each field name to a short description, e.g. { \"invoice_total\": \"total amount due in USD\", \"due_date\": \"ISO date\" }."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
      • addedInput schema / properties / text / description
        Added value: +"The source text to read, up to 16,000 characters."
    • Changedgenesis402_multi_chain_scan2 fields changed
      • addedInput schema / properties / address / description
        Added value: +"The EVM address to scan, 0x followed by 40 hex characters."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
    • Changedgenesis402_prove4 fields changed
      • addedInput schema / properties / claim / description
        Added value: +"Optional short statement bound into the receipt, e.g. 'Draft v2 of the purchase agreement'."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
      • addedInput schema / properties / sha256 / description
        Added value: +"Lowercase hex SHA-256 digest (64 characters) of the content to prove. Provide this or text."
      • addedInput schema / properties / text / description
        Added value: +"Raw text to hash and prove, up to 16,384 characters. Provide this or sha256."
    • Changedgenesis402_receipt1 field changed
      • addedInput schema / properties / receipt_id / description
        Added value: +"The receipt id returned with a paid call result."
    • Changedgenesis402_screen_sanctions2 fields changed
      • addedInput schema / properties / address / description
        Added value: +"The crypto address to screen, as a string (4 to 120 characters)."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
    • Changedgenesis402_sec_financials3 fields changed
      • addedInput schema / properties / cik / description
        Added value: +"SEC Central Index Key (CIK), up to 10 digits. Provide this or ticker."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
      • addedInput schema / properties / ticker / description
        Added value: +"Stock ticker, e.g. AAPL or MSFT. Provide this or cik."
    • Changedgenesis402_token_brief3 fields changed
      • addedInput schema / properties / chain / description
        Added value: +"Optional EVM chain name to focus on, e.g. ethereum or base. Omit to cover all supported chains."
      • addedInput schema / properties / contract / description
        Added value: +"The ERC-20 token contract address, 0x followed by 40 hex characters (not a wallet address)."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
    • Changedgenesis402_wallet_brief3 fields changed
      • addedInput schema / properties / address / description
        Added value: +"The EVM wallet address to check, 0x followed by 40 hex characters."
      • addedInput schema / properties / chain / description
        Added value: +"Optional EVM chain name to focus on, e.g. ethereum or base. Omit to cover all supported chains."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
    • Changedgenesis402_web_extract3 fields changed
      • addedInput schema / properties / max_chars / description
        Added value: +"Maximum characters of text to return, 500 to 60,000."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
      • addedInput schema / properties / url / description
        Added value: +"Full http(s) URL of the public page to fetch."
    • Changedgenesis402_whois2 fields changed
      • addedInput schema / properties / domain / description
        Added value: +"The domain to look up, e.g. example.com (no scheme or path)."
      • changedInput schema / properties / payment_signature / description
        Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
  4. 14 tool updatesv0.3.1
    • First observedgenesis402_call
    • First observedgenesis402_catalog
    • First observedgenesis402_defi_yields
    • First observedgenesis402_email_check
    • First observedgenesis402_extract_json
    • First observedgenesis402_multi_chain_scan
    • First observedgenesis402_prove
    • First observedgenesis402_receipt
    • First observedgenesis402_screen_sanctions
    • First observedgenesis402_sec_financials
    • First observedgenesis402_token_brief
    • First observedgenesis402_wallet_brief
    • First observedgenesis402_web_extract
    • First observedgenesis402_whois

TDQS

A4.4/5.0

Scored across 14 tools

Disambiguation4/5

The dedicated tools (wallet_brief, token_brief, multi_chain_scan, screen_sanctions) have overlapping subject matter but their descriptions explicitly cross-reference each other and state when to prefer one over another. The only real ambiguity is genesis402_call, a generic dispatcher that overlaps with every dedicated tool, though it is scoped to endpoints lacking a dedicated tool.

Naming Consistency4/5

All 14 tools share the genesis402_ prefix followed by a snake_case descriptor, which is highly predictable. The descriptors mix noun-only (catalog, receipt) and verb_noun (email_check, web_extract) styles, a minor deviation that stays readable.

Tool Count5/5

14 tools is well within a healthy range and each earns its place: a catalog/call pair for the 360-endpoint surface plus curated dedicated tools for the most-used endpoints. The mix is appropriately scoped for a broad paid-API gateway.

Completeness4/5

The catalog discoverer plus generic genesis402_call give access to the entire 360-endpoint surface, so nothing is a dead end, and the domain's common cases (wallet, token, DeFi, SEC, web, email, domain) all have dedicated tools. Minor gap: no dedicated tools for research/AI text endpoints, only reachable through the generic call.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides AI agents with 10 pay-per-call utility tools (QR generation, DNS lookup, OCR, etc.) using USDC on Base via the x402 protocol, with agent's private key never leaving the agent.
    11
    36 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Pay-per-call AI microservices settled in USDC on Base via the x402 (HTTP 402) protocol. 28 tools including web search, summarization, extraction, code review, deep research, crypto safety, sanctions screening and on-chain data — no accounts or API keys.
    7 npm
    Apache 2.0