Skip to main content
Glama

Guide: Screen a wallet before your agent moves money — $0.008 a check, three ways to call it.

Community: join the UnyKorn Discord. Run a free counterparty report with /check, watch paid calls settle live in #rail-feed, and ask questions in #help.

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_counterparty_report

Company + registered parents + UN/OFAC/EU/UK sanctions screen, one verdict, signed receipt, branded PDF and public verify page

$0.25

genesis402_sanctions_name_screen

One name against the UN, OFAC SDN, EU and UK lists, with list versions cited

$0.02

genesis402_company_lookup

Any company worldwide by name, LEI or SEC CIK (GLEIF + SEC EDGAR), with registered parents

$0.01

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

genesis402_summarize

Summarize text as a paragraph, bullets or TL;DR within a word limit

Paid

genesis402_answer_from_text

Answer one question from your document, with a verified supporting quote

Paid

genesis402_translate

Translate text into any major language, preserving names, numbers and formatting

Paid

genesis402_paper_search

Scholarly paper search (OpenAlex) with citation counts and open-access links

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.

What the rail commits to

  • 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 recorded as owed and re-delivered free on retry; 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; screen.mjs for the wallet-screening guide.

  • assets/ — brand banner and icon.


Available Tools

21 tools
genesis402_answer_from_textAnswer a question from a documentAInspect

Paid ($0.006 USDC). Answer one question strictly from a document you supply, and return the verbatim quote that supports the answer. Use for contract, policy, filing or email questions where the answer must be traceable to the source. For an overview rather than one answer use genesis402_summarize; to pull many named fields at once use genesis402_extract_json. Returns the answer and a supporting quote that the rail verifies appears in the text. 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 document to answer from, up to 24,000 characters.
questionYesOne question about the text, up to 500 characters, e.g. 'What is the termination notice period?'.
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 give readOnlyHint=false and openWorldHint=true; the description carries far more — the exact price ($0.006 USDC), the two-call payment handshake (first call returns a quote with nothing charged or signed, second call with the signed payment settles), and the quote-verification behavior ('the rail verifies appears in the text'). This is precisely the behavioral context annotations cannot supply.

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?

Dense but front-loaded: price and core purpose lead, siblings follow, payment mechanics close. Every sentence carries load. Slightly over-packed — the payment flow could be one sentence shorter — but nothing is 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?

An output schema exists so return values needn't be re-explained, and the description still covers the two-step paid-call workflow, the verification guarantee, and routing to siblings. For a paid, open-world tool with non-read-only semantics, this is complete enough to invoke correctly on the first try.

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 would be 3, but the description adds real semantics beyond the schema: the meaning of omitting payment_signature (quote-only, no charge) and the fact that the returned quote is machine-verified against the supplied text. It doesn't cover text length limits, but the schema already does.

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 ('answer one question strictly from a document'), plus the distinctive output ('the verbatim quote that supports the answer'). It names the two closest siblings (genesis402_summarize, genesis402_extract_json) and the conditions that select them, so an agent can differentiate 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?

Explicit when-to-use ('contract, policy, filing or email questions where the answer must be traceable to the source') and explicit alternatives with their selecting conditions ('For an overview... use genesis402_summarize; to pull many named fields... use genesis402_extract_json'). Nothing 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_callCall any endpointAInspect

Calls any of the 366 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.7/5.0
Behavior4/5

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

Annotations only supply readOnlyHint=false and openWorldHint=true; the description goes well beyond them by disclosing the price band ($0.001-$0.25 USDC on Base), free pre-quote validation, and the two operating modes (quote-only with no signing vs. paid execution returning settlement details). It does not cover auth/setup for the local payer path or any rate limits, so it falls short of 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-loaded with purpose and cost, then routing, then the payment-behavior contract. Five dense sentences, each carrying distinct information (scope, price, routing, validation, dual-mode return) with no padding or repetition.

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

Completeness5/5

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

For a hub tool spanning 366 endpoints, the description covers what an agent needs: scope, cost, the catalog lookup prerequisite, and both call modes. An output schema exists, and the description still briefly characterizes returns without duplicating the schema.

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 three parameters are already documented; the baseline is 3. The description adds real semantic value by telling the agent where valid 'endpoint' and 'params' values come from (genesis402_catalog) and by clarifying payment_signature as optional, which steers correct invocation.

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 366 Genesis402 endpoints by name') and enumerates the covered domains, while explicitly positioning itself as the catch-all for endpoints without a dedicated sibling tool. An agent can distinguish it from genesis402_defi_yields, genesis402_whois, etc. 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?

Explicit routing rule: 'Use for any endpoint without a dedicated tool; look up the name and parameters with genesis402_catalog first.' It names the alternative tool and the exact condition that selects this one, 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_catalogList endpoints and prices (free)A
Read-only
Inspect

Free, no payment, read-only. Lists Genesis402 endpoints with name, HTTP path, USD price, title and parameter schema, read from the rail's live /.well-known/x402 manifest (refreshed every 10 minutes). Use it to find an endpoint that has no dedicated genesis402_* tool, then pass its exact name and parameters to genesis402_call. Filter by keyword to keep the list short (e.g. "defi", "sec", "wiki"); with no filter it returns every endpoint, up to 400. Returns the rail origin, total endpoint count, number matched, the current payer mode (QUOTE_ONLY, HOSTED or LIVE with its cap) and the matching endpoints.

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.8/5.0
Behavior5/5

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

Beyond readOnlyHint/openWorldHint it discloses cost ('Free, no payment'), data provenance and freshness ('live /.well-known/x402 manifest, refreshed every 10 minutes'), result ceiling ('up to 400'), and the payer-mode states returned (QUOTE_ONLY, HOSTED, LIVE with cap). These are operationally material facts the annotations do not 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?

Front-loads the key constraints (free, read-only, source) and stays dense with useful detail, but it is long for a one-parameter listing tool and the return-value enumeration slightly overlaps the output schema.

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 frames the shape of the result (origin, total count, matched count, payer mode, endpoints), and it covers cost, freshness, limits, and the follow-up tool. Nothing needed 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.

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: it explains the filter's matching fields, gives concrete examples ('defi', 'sec', 'wiki'), and notes the behavioral consequence of omitting it (returns everything, up to 400).

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 ('Lists Genesis402 endpoints with name, HTTP path, USD price, title and parameter schema') and positions itself as the discovery surface versus the dedicated genesis402_* tools. An agent can distinguish it from siblings like genesis402_call or genesis402_sec_financials immediately.

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 ('find an endpoint that has no dedicated genesis402_* tool'), what to do next ('pass its exact name and parameters to genesis402_call'), and when to narrow results ('Filter by keyword to keep the list short... with no filter it returns every endpoint'). Both the use case and the alternative path are named.

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

genesis402_company_lookupLook up a company (GLEIF, SEC)AInspect

Paid ($0.01 USDC). Look up one company worldwide in the official registers: GLEIF (Legal Entity Identifiers, every country) and US SEC EDGAR. By LEI: legal name, status, jurisdiction, addresses, registration authority, renewal dates and its registered direct and ultimate parent. By name: ranked matches, live registrations first, with legal forms understood across languages and names in their own script. By SEC CIK: filer profile, tickers and latest filings. Registry data only: 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
queryYesCompany name (3 to 200 characters), 20-character LEI, or SEC 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.6/5.0
Behavior5/5

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

Discloses the two-step paid workflow precisely: call once without payment_signature to receive a quote (nothing charged or signed), then call again with the signed payment to get results and settlement details, plus the $0.01 USDC cost. This is behavioral context the annotations (readOnlyHint=false, openWorldHint=true) do not convey. No contradiction: the description frames it as a lookup, consistent with a paid read that isn't strictly read-only due to payment.

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, price, and registries before detail; every sentence carries information (inputs, outputs, exclusions, payment flow). It is dense but a touch long, with the final payment sentence repeating the 'nothing is charged' idea already implied.

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 detailed. Given the payment complexity and multi-registry scope, the description covers inputs, scope limits, cost, and the two-call payment protocol, leaving nothing material for an agent to infer.

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, but the description adds real meaning by mapping each accepted query form to its return content (LEI to parents/addresses, name to ranked live registrations, CIK to filer profile and filings) and by explaining the quote-then-pay semantics of payment_signature.

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

Purpose5/5

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

States a specific verb and resource (look up one company) and enumerates the exact registries queried (GLEIF, SEC EDGAR), plus the three supported key types. This distinguishes it clearly from siblings like genesis402_sec_financials or genesis402_counterparty_report.

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?

Gives clear context on which input key yields which output shape (LEI vs name vs CIK) and an explicit scope exclusion: 'Registry data only: not KYC, not a compliance determination, not legal advice.' It does not, however, name when to prefer a sibling tool such as genesis402_sanctions_name_screen for compliance screening, so guidance stops short of explicit alternatives.

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

genesis402_counterparty_reportCounterparty report: company, parents, sanctions verdictAInspect

Paid ($0.25 USDC). Check one company before you deal with it. Resolves the company in the GLEIF register (name or 20-character LEI), follows its registered direct and ultimate parent, and screens every name in that group against the UN, US OFAC SDN, EU and UK sanctions lists. Returns one verdict (clear, review or stop) with every reason sourced, the registry record, the group screened, the list versions used, an Ed25519-signed receipt, a private link to a branded PDF (7 days) and a public verify page. A vague name (e.g. a bare brand) returns review and names the entity it assumed. Screening and registry signals only: 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
typeNoOptional. Used only when no registry record is found and the name is screened as given.
queryYesCompany legal name (3 to 200 characters) or its 20-character LEI. The exact legal name or LEI gives the most precise result.
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.4/5.0
Behavior5/5

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

Annotations only give readOnlyHint=false and openWorldHint=true; the description carries the real behavioral load, disclosing the $0.25 USDC price, the two-step payment handshake, the possible verdicts (clear/review/stop), the signed receipt, the 7-day PDF link and the public verify page. It also explains how vague names behave (returns review and names the assumed entity).

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 what the tool does and its price, then the pipeline, then the outputs, then caveats, then payment mechanics. Dense but every sentence carries information; only marginal trimming would be possible.

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

Completeness5/5

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

For a paid, multi-step, composite tool with an output schema and full annotation coverage, the description covers inputs, pipeline, outputs, limits and payment flow completely. 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%, so the schema already documents query (legal name or 20-char LEI), type, and payment_signature. The description adds behavioral context (vague names, quote-first flow) but no syntax or format detail beyond the schema, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource ('Check one company', 'Resolves the company in the GLEIF register... follows its registered direct and ultimate parent, and screens every name in that group'). This is clearly distinguished from siblings like genesis402_sanctions_name_screen and genesis402_company_lookup because it is a composite registry+group-screening+verdict tool.

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

Usage Guidelines4/5

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

Gives a clear context ('Check one company before you deal with it') and explicit exclusions ('not KYC, not a compliance determination, not legal advice'), plus a precise payment call-flow (call once without payment_signature for a quote, then again with the signed payment). It does not name sibling alternatives explicitly, 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_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, read-only and idempotent. Fetches one receipt by id from the rail's public receipts feed (twin.unykorn.org/receipts) to confirm that a paid call was settled and delivered. Use after any paid call, or to check a genesis402_prove receipt, using the receipt id returned with that result. It does not list or search receipts; you need the exact id. Returns the receipt exactly as published: the task called, amount in USD, payment rail, settlement transaction hash, settler, payer and timestamp. An unknown id returns an error with HTTP status 404; nothing is charged either way.

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.3/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: it declares the tool is free and charges nothing, is idempotent, that an unknown id produces an HTTP 404 error, and the external data source. That is exactly the kind of cost and failure-mode context an agent needs before calling.

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 most decision-relevant fact (free, read-only, idempotent) and is otherwise tight. The sentence enumerating returned fields duplicates the output schema slightly and could be trimmed.

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

Completeness4/5

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

Covers the id source, the error case, and the no-charge behavior, and an output schema already documents the return shape. Only minor redundancy in listing returned fields keeps it from being fully lean.

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

Parameters3/5

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

Schema coverage is 100% and the schema description already explains that receipt_id comes from a paid call result or genesis402_prove with a 4-80 character range. The description restates that source but adds no new format or syntax detail, so baseline 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 (fetches) and resource (one receipt by id) and explicitly delimits scope: it does not list or search, and requires an exact id. An agent can separate this from listing-style siblings 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 Guidelines4/5

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

Gives clear triggers ('use after any paid call, or to check a genesis402_prove receipt') and a negative rule ('need the exact id'). It stops short of naming the sibling to use for listing/searching receipts, so it is not fully routable.

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

genesis402_sanctions_name_screenScreen a name against UN, OFAC, EU, UK sanctionsAInspect

Paid ($0.02 USDC). Screen one person or organisation name against the UN, US OFAC SDN, EU and UK consolidated sanctions lists, including aliases and transliterations. Returns match, possible match or no match, each hit with list, list id, matched name and score, and the published date and SHA-256 of every list version used. For a company and its parents in one call use genesis402_counterparty_report; for a wallet address use genesis402_screen_sanctions. Screening signal only: 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
nameYesThe person or organisation name to screen, 3 to 200 characters.
typeNoOptional. Restricts matching to that kind of list entry.
dob_yearNoOptional four-digit birth year, used to flag hits with an inconsistent date of birth.
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?

Annotations only supply readOnlyHint=false and openWorldHint=true, which are too coarse to explain this tool. The description fills the gap richly: paid at $0.02 USDC, the first no-signature call is free and returns a price quote, the second call with a signed payment produces the result plus settlement details, and returns are tri-state (match/possible match/no match) accompanied by list versions and their SHA-256. That is exactly the kind of behavior an agent needs before invoking a paid, open-world tool.

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

Conciseness5/5

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

Front-loads cost and the core action, then the return shape, then sibling routing, then scope caveat, then the payment protocol. Dense but every sentence carries decision-relevant information; nothing is restated from the schema or annotations.

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, yet the description still summarizes the match tiers and per-hit fields. Combined with the payment handshake and scope disclaimer, an agent has everything required to call this paid, open-world tool correctly on the first attempt.

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 would be 3, but the description adds genuine meaning: it notes matching includes aliases and transliterations, that results carry matched name and score per hit, and that dob_year is used to flag inconsistent birth years. It stops short of adding syntax guidance beyond the schema, hence 4 rather than 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 (screen a name) and names the exact list set covered (UN, US OFAC SDN, EU, UK consolidated). It also explicitly distinguishes itself from the two nearest siblings, genesis402_counterparty_report and genesis402_screen_sanctions, so an agent can route 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 explicit when-to-use routing: 'For a company and its parents in one call use genesis402_counterparty_report; for a wallet address use genesis402_screen_sanctions.' It also states the scope boundary ('Screening signal only: not KYC, not a compliance determination, not legal advice') and the required two-call payment sequence.

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_summarizeSummarize textAInspect

Paid ($0.006 USDC). Summarize long text you already have (a report, transcript, filing, thread) as a paragraph, bullet list or one-line TL;DR, within a word limit, on UnyKorn's own GPU. Use when the text is in hand; to summarize a live web page by URL instead, call the summarize-url endpoint through genesis402_call. To answer one specific question from the text use genesis402_answer_from_text. Returns the summary in the requested style as JSON. Works only from the supplied text. 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 text to summarize, up to 24,000 characters. Trim longer input first.
styleNoOutput shape: 'paragraph' (default), 'bullets' for a bullet list, or 'tldr' for one or two sentences.
max_wordsNoUpper bound on summary length in words, 20 to 400. Defaults to 120.
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, disclosing the paid price ($0.006 USDC), the quote-then-sign payment dance, that nothing is charged on the first call, that it works only from supplied text, and that it runs on the provider's own GPU. This is the kind of behavioral context annotations do not 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?

Front-loads the price and core action, then routes and payment mechanics. Dense and every sentence carries information, though it runs long enough that the routing and payment instructions compete for attention.

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 explained, yet the description still notes JSON output. For a paid, single-shot transformation tool, purpose, routing, constraints and payment flow are all covered.

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 parameters are already documented; the description reinforces the style options and the word limit and clarifies the payment_signature omission semantics. It adds marginal but real meaning over the schema baseline.

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 (summarize supplied text) plus the output modes, and explicitly differentiates from the URL-summarization path and the question-answering sibling. An agent can route correctly 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?

Explicitly says when to use it ('when the text is in hand') and names both alternatives: summarize-url via genesis402_call and genesis402_answer_from_text for a single question. The two-step 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.

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_translateTranslate textAInspect

Paid ($0.006 USDC). Translate text into any major language while preserving names, numbers and formatting. Use for customer messages, documents or UI strings. To only identify a text's language call the language-detect endpoint through genesis402_call. Returns the translation as JSON. 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
toYesTarget language as a name or ISO 639-1 code, e.g. 'Spanish' or 'es'.
fromNoSource language as a name or ISO code. Omit to auto-detect.
textYesThe text to translate, up to 8,000 characters.
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 say readOnlyHint=false and openWorldHint=true, but the description discloses the price ($0.006 USDC), the two-step quote-then-pay flow, that the first call charges nothing, and that the second call returns result plus settlement details. This is substantial behavioral context beyond the structured fields.

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 purpose, then routing, then payment mechanics. Every sentence earns its place, though the payment-flow sentence is dense enough that it 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, so return details need not be enumerated; the description nonetheless notes the JSON result and settlement details, and fully covers the non-obvious payment protocol. 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.

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (including payment_signature and from/to semantics) are already documented in the schema. The description adds only a light gloss on target-language breadth; baseline 3 is correct when the schema carries the detail.

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 (translate text) plus the scope (any major language, preserving names/numbers/formatting). It also names the sibling it is not (language-detect via genesis402_call), letting an agent distinguish it 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 concrete use cases (customer messages, documents, UI strings) and an explicit alternative plus the condition that selects it ('To only identify a text's language call the language-detect endpoint'). Nothing 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. 7 tool updatesv0.3.6
    • Addedgenesis402_answer_from_text
    • Addedgenesis402_company_lookup
    • Addedgenesis402_counterparty_report
    • Addedgenesis402_paper_search
    • Addedgenesis402_sanctions_name_screen
    • Addedgenesis402_summarize
    • Addedgenesis402_translate
  2. 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"
        +}
  3. 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."
  4. 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."
  5. 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 21 tools

Disambiguation4/5

The tools cover distinct tasks, and descriptions explicitly cross-reference alternatives to clarify use cases (e.g., 'for a wallet use wallet_brief'). Some overlap exists between sanctions-related tools (screen_sanctions vs. wallet_brief) and text tools (summarize vs. answer_from_text), but the descriptions resolve most ambiguity.

Naming Consistency4/5

All tools share the consistent prefix 'genesis402_' and use snake_case, making them predictable. However, the naming pattern mixes verb_noun (e.g., screen_sanctions) and noun phrases (e.g., catalog, receipt), so it's not a strict verb_noun convention throughout.

Tool Count4/5

21 tools is on the higher side but justified by the broad domain (DeFi, sanctions, AI text, web intel). The generic genesis402_call tool handles the remaining 366 endpoints, so the dedicated tools are conveniences rather than redundant bloat.

Completeness4/5

The surface covers discovery (catalog), execution (call and dedicated tools), and verification (receipt, prove). Minor gaps exist, such as no tool to list or search receipts, but the generic call plus catalog provides a workaround for most needs.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to fetch crypto market and on-chain data, including prices across venues, token facts, OHLC candles, market overview, DeFi TVL, and wallet balances, with two free tools and the rest paid per call in USDC on Base via x402.
    8
    35 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to call 50+ pay-per-request tools covering onchain and crypto data, web research, security, compliance screening, business intelligence, and infrastructure checks. Payments settle per call in USDC on Base through the x402 protocol with no accounts, API keys, or subscriptions, and the first call is free for new wallets.
    MIT