Genesis402
Genesis402 is a pay-per-call MCP/API rail that lets AI agents discover, quote, pay for, and call 366 crypto, DeFi, risk, public-record, web, research, and AI endpoints via x402/MPP with USDC.
Connect via hosted MCP (
https://twin.unykorn.org/mcp) or localnpx genesis402-mcpwith an optional payer key and spending cap.Discover endpoints and live prices with the free
genesis402_catalogtool, filtering by keyword such asdefiorsec.Look up settled paid-call receipts for free with
genesis402_receiptby receipt id.Call any of the 366 endpoints by name through
genesis402_call, first getting a quote or supplying a signed x402 payment.Run due-diligence and risk checks: counterparty report, sanctions name/address screens, company lookup, wallet brief, token brief, and 10-chain EVM scan.
Access crypto/DeFi/market data: prices, yields, stablecoins, fees, chain reads, SEC financials, public records, FX, treasury yields, and more.
Use web/domain intelligence: email deliverability, WHOIS/RDAP, DNS/TLS, and web page text extraction.
Use AI text tools: JSON field extraction, summarization, document Q&A with supporting quotes, translation, and scholarly paper search.
Issue Ed25519-signed proof receipts binding a SHA-256 digest or text to a settled payment.
Pay via x402 v2 or MPP using USDC on Base/Polygon (plus other lanes) with no API key or account; responses include sources, evidence hashes, settlement details, and receipts.
Provides arXiv search and paper metadata via the /research/arxiv-search endpoint.
Provides Bitcoin price quotes and chain reads such as UTXO information.
Resolves Digital Object Identifiers and retrieves associated metadata via /research/doi.
Provides Ethereum price quotes, ERC-20 balances, multi-chain scans, and EVM proofs.
Retrieves npm package information and metadata via /research/npm-package.
Provides Polygon chain reads and supports USDC payment settlement on Polygon.
Provides Solana account reads and supports USDC payment settlement on Solana.
Provides Stellar account reads and supports USDC payment settlement on Stellar.
Provides XRP Ledger account reads and supports USDC payment settlement on XRP.
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/mcpThe 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 idMPP (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 headerBoth 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 |
| Every endpoint with path, price and parameter schema, from the live manifest | Free |
| Look up a paid-call receipt by id | Free |
| Call any of the 360 endpoints by name | Per endpoint |
| Company + registered parents + UN/OFAC/EU/UK sanctions screen, one verdict, signed receipt, branded PDF and public verify page | $0.25 |
| One name against the UN, OFAC SDN, EU and UK lists, with list versions cited | $0.02 |
| Any company worldwide by name, LEI or SEC CIK (GLEIF + SEC EDGAR), with registered parents | $0.01 |
| Wallet risk signals: sanctions list, 10-chain scan, activity, summary | Paid |
| Token pre-trade check: metadata, price, holder concentration, verification | Paid |
| Public-data sanctions-list signal for one address | Paid |
| One address across 10 EVM chains in one call | Paid |
| Ranked yields from 15,000+ pools, filterable by chain, protocol, token, TVL | Paid |
| As-reported fundamentals for a US public company from SEC XBRL | Paid |
| MX, provider, SPF, DMARC, disposable flag, trust score | Paid |
| Registrar, age, expiry, status and nameservers via RDAP | Paid |
| Extract the fields you name from any text; missing fields are null | Paid |
| Any public page as clean text, title, headings and links | Paid |
| Signed Ed25519 receipt binding your digest to a settled payment | Paid |
| Summarize text as a paragraph, bullets or TL;DR within a word limit | Paid |
| Answer one question from your document, with a verified supporting quote | Paid |
| Translate text into any major language, preserving names, numbers and formatting | Paid |
| 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 |
| $0.001 |
DeFi and markets | 47 |
| $0.002–$0.01 |
Chain reads: 10 EVM chains + BTC, SOL, XLM, XRP | 83 |
| $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 |
| $0.008–$0.25 |
Public records | 12 |
| $0.001–$0.01 |
Research | 15 |
| $0.001–$0.003 |
Web and domain intelligence | 15 |
| $0.001–$0.004 |
Places, time, weather | 10 |
| $0.001–$0.002 |
AI on our own GPU | 16 |
| $0.002–$0.01 |
Proofs | 2 |
| $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-httpfor hosted mode),server.jsonfor the MCP Registry,smoke.mjs(13 read-only checks against the live rail).quickstart/— Node and Python payers for Base, XRPL and Stellar;screen.mjsfor the wallet-screening guide.assets/— brand banner and icon.
Available Tools
21 toolsgenesis402_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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The source document to answer from, up to 24,000 characters. | |
| question | Yes | One question about the text, up to 500 characters, e.g. 'What is the termination notice period?'. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | Parameters for that endpoint as an object, matching the parameter schema shown in genesis402_catalog. Omit if the endpoint takes none. | |
| endpoint | Yes | Endpoint name exactly as listed by genesis402_catalog, e.g. "defi-yields" or "wallet-brief" (a leading slash is ignored). | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional keyword to narrow the list, matched against endpoint name, title and tags, e.g. "defi", "sec", "price". Omit for all endpoints. |
Output Schema
| Name | Required | Description |
|---|---|---|
| origin | Yes | Rail origin the catalog was read from. |
| matched | Yes | Number of endpoints matching the filter. |
| endpoints | Yes | Matching endpoints, at most 400. |
| payer_mode | Yes | QUOTE_ONLY, HOSTED, or LIVE (cap $X) for a local self-paying server. |
| total_endpoints | Yes | Number of endpoints in the live manifest. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Company name (3 to 200 characters), 20-character LEI, or SEC CIK. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional. Used only when no registry record is found and the name is screened as given. | |
| query | Yes | Company legal name (3 to 200 characters) or its 20-character LEI. The exact legal name or LEI gives the most precise result. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order: 'apy' (highest yield first) or 'tvl' (largest pool first). | |
| chain | No | Filter to one chain by name, e.g. Ethereum, Base, Arbitrum. Omit for all chains. | |
| limit | No | How many pools to return, 1 to 100. | |
| token | No | Token symbol that must be in the pool, e.g. USDC, ETH, WBTC. | |
| project | No | Filter to one protocol by its DefiLlama slug, e.g. aave-v3. Omit for all protocols. | |
| min_tvl_usd | No | Minimum pool TVL in US dollars as a plain number. Defaults to 1000000 ($1M) when omitted. | |
| stablecoin_only | No | true = only stablecoin pools. Omit or false for all pools. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| email_or_domain | Yes | A full email address (user@domain.com) or a bare domain (domain.com), without scheme or path. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The source text to read, up to 16,000 characters. Trim longer input first. | |
| fields | Yes | 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" }. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The EVM address to scan, 0x followed by 40 hex characters. Checksum case is optional. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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_paper_searchSearch scholarly papersAInspect
Paid ($0.003 USDC). Search scholarly literature in OpenAlex and get works with citation counts and open-access links. Use to find research, prior art or the most-cited work on a topic. For preprints by recency search arXiv (arxiv-search) and for one known DOI use crossref-doi, both through genesis402_call. Returns up to limit works, ranked by relevance or by citations. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search terms, e.g. 'zero-knowledge proof rollups' or an exact paper title. | |
| sort | No | 'relevance' (default) or 'cited' for most-cited first. | |
| limit | No | How many works to return, 1 to 50. Defaults to 10. | |
| from_year | No | Only works published in or after this year, e.g. 2020. Omit for all years. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark it non-read-only and open-world, which says nothing about the two-step payment handshake. The description adds the exact price ($0.003 USDC), the quote-then-sign flow, and the assurance that the first call charges and signs nothing — critical context an agent cannot infer from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Price and scope lead, alternatives follow, and the payment mechanics close the block. Four sentences, each carrying distinct information with no filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage, an output schema handling return values, and the non-obvious payment protocol spelled out, nothing needed to call this correctly is missing. The description is complete for a paid, open-world search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so q, sort, limit, from_year and payment_signature are already fully documented, including enum values and ranges. The description only restates ranking and result count, adding no syntax or format detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search scholarly literature in OpenAlex') plus what comes back (citation counts, open-access links), and explicitly distinguishes itself from arxiv-search and crossref-doi by use case. An agent can select this over its 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives positive routing ('Use to find research, prior art or the most-cited work on a topic') and explicit alternatives with their conditions ('For preprints by recency search arXiv… for one known DOI use crossref-doi'). When-to-use and when-not-to-use are both covered.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Raw UTF-8 text to hash and prove, up to 16 KiB (16,384 characters). Provide this or sha256, not both. | |
| claim | No | Optional short statement bound into the signed receipt, up to 512 characters, e.g. 'Draft v2 of the purchase agreement'. | |
| sha256 | No | Lowercase hex SHA-256 digest (64 characters) of the content to prove. Provide this or text, not both. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_id | Yes | The receipt id exactly as returned with a paid call result or by genesis402_prove, 4 to 80 characters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| receipt | Yes | The receipt exactly as published on the rail's receipts feed. |
| receipt_id | Yes | The id that was looked up. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The person or organisation name to screen, 3 to 200 characters. | |
| type | No | Optional. Restricts matching to that kind of list entry. | |
| dob_year | No | Optional four-digit birth year, used to flag hits with an inconsistent date of birth. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The crypto address to screen, on any chain, exactly as written on that chain (4 to 120 characters, no spaces). | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | SEC Central Index Key, digits only, up to 10, e.g. 320193. Provide this or ticker. | |
| ticker | No | Stock ticker, e.g. COIN or AAPL. Provide this or cik. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to summarize, up to 24,000 characters. Trim longer input first. | |
| style | No | Output shape: 'paragraph' (default), 'bullets' for a bullet list, or 'tldr' for one or two sentences. | |
| max_words | No | Upper bound on summary length in words, 20 to 400. Defaults to 120. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain the token contract lives on. Defaults to base when omitted. | |
| contract | Yes | The ERC-20 token contract address, 0x followed by 40 hex characters. Must be the token contract, not a holder's wallet. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target language as a name or ISO 639-1 code, e.g. 'Spanish' or 'es'. | |
| from | No | Source language as a name or ISO code. Omit to auto-detect. | |
| text | Yes | The text to translate, up to 8,000 characters. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Optional EVM chain name to focus on, e.g. ethereum or base. Omit to cover all supported chains. | |
| address | Yes | The EVM wallet address to check, 0x followed by 40 hex characters. Checksum case is optional. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL of one public page, starting with http:// or https://. | |
| max_chars | No | Maximum characters of page text to return, 500 to 60,000. Defaults to 20,000. Text past the cap is cut off. | |
| include_links | No | Include the page's links in the result. Defaults to true; set false for text only. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain to look up, e.g. example.com. No scheme (https://), path or port. | |
| payment_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | 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. |
| paid | Yes | true only when a payment was settled for this call. |
| price | No | 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. |
| result | No | PAID or FREE: the endpoint's JSON result. |
| resource | No | QUOTE_ONLY: the full URL of the paid resource. |
| how_to_pay | No | QUOTE_ONLY: how to sign and resend the call. |
| settlement | No | PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none. |
| what_you_get | No | QUOTE_ONLY: the rail's description of what the payment buys. |
| payment_required_b64 | No | QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client. |
| also_accepted_networks | No | QUOTE_ONLY: every network the 402 challenge accepts. |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v0.3.6- Added
genesis402_answer_from_text - Added
genesis402_company_lookup - Added
genesis402_counterparty_report - Added
genesis402_paper_search - Added
genesis402_sanctions_name_screen - Added
genesis402_summarize - Added
genesis402_translate
14 tool updates
v0.3.4- Changed
genesis402_call1 field changed- changed
Output 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" +}
- Changed
genesis402_catalog1 field changed- changed
Output 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" +}
- Changed
genesis402_defi_yields1 field changed- changed
Output 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" +}
- Changed
genesis402_email_check1 field changed- changed
Output 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" +}
- Changed
genesis402_extract_json1 field changed- changed
Output 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" +}
- Changed
genesis402_multi_chain_scan1 field changed- changed
Output 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" +}
- Changed
genesis402_prove1 field changed- changed
Output 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" +}
- Changed
genesis402_receipt1 field changed- changed
Output 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" +}
- Changed
genesis402_screen_sanctions1 field changed- changed
Output 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" +}
- Changed
genesis402_sec_financials1 field changed- changed
Output 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" +}
- Changed
genesis402_token_brief1 field changed- changed
Output 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" +}
- Changed
genesis402_wallet_brief1 field changed- changed
Output 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" +}
- Changed
genesis402_web_extract1 field changed- changed
Output 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" +}
- Changed
genesis402_whois1 field changed- changed
Output 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" +}
12 tool updates
v0.3.3- Changed
genesis402_defi_yields4 fields changed- changed
Input schema / properties / min_tvl_usd / descriptionPrevious 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." - changed
Input schema / properties / project / descriptionPrevious 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." - changed
Input schema / properties / stablecoin_only / descriptionPrevious value: -"true = only stablecoin pools."New value: +"true = only stablecoin pools. Omit or false for all pools." - changed
Input schema / properties / token / descriptionPrevious 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."
- Changed
genesis402_email_check1 field changed- changed
Input schema / properties / email_or_domain / descriptionPrevious 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."
- Changed
genesis402_extract_json2 fields changed- changed
Input schema / properties / fields / descriptionPrevious 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\" }." - changed
Input schema / properties / text / descriptionPrevious 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."
- Changed
genesis402_multi_chain_scan1 field changed- changed
Input schema / properties / address / descriptionPrevious 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."
- Changed
genesis402_prove3 fields changed- changed
Input schema / properties / claim / descriptionPrevious 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'." - changed
Input schema / properties / sha256 / descriptionPrevious 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." - changed
Input schema / properties / text / descriptionPrevious 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."
- Changed
genesis402_receipt1 field changed- changed
Input schema / properties / receipt_id / descriptionPrevious 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."
- Changed
genesis402_screen_sanctions1 field changed- changed
Input schema / properties / address / descriptionPrevious 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)."
- Changed
genesis402_sec_financials2 fields changed- changed
Input schema / properties / cik / descriptionPrevious 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." - changed
Input schema / properties / ticker / descriptionPrevious 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."
- Changed
genesis402_token_brief4 fields changed- changed
Input schema / properties / chain / descriptionPrevious 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." - added
Input schema / properties / chain / enumAdded value: +[ + "base", + "ethereum", + "polygon", + "arbitrum", + "optimism" +] - removed
Input schema / properties / chain / maxLengthRemoved value: -24 - changed
Input schema / properties / contract / descriptionPrevious 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."
- Changed
genesis402_wallet_brief1 field changed- changed
Input schema / properties / address / descriptionPrevious 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."
- Changed
genesis402_web_extract3 fields changed- added
Input schema / properties / include_linksAdded value: +{ + "description": "Include the page's links in the result. Defaults to true; set false for text only.", + "type": "boolean" +} - changed
Input schema / properties / max_chars / descriptionPrevious 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." - changed
Input schema / properties / url / descriptionPrevious value: -"Full http(s) URL of the public page to fetch."New value: +"Full URL of one public page, starting with http:// or https://."
- Changed
genesis402_whois1 field changed- changed
Input schema / properties / domain / descriptionPrevious 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."
14 tool updates
v0.3.2- Changed
genesis402_call3 fields changed- added
Input schema / properties / endpoint / descriptionAdded value: +"Endpoint name exactly as listed by genesis402_catalog, e.g. \"defi-yields\" or \"wallet-brief\" (a leading slash is ignored)." - added
Input schema / properties / params / descriptionAdded value: +"Parameters for that endpoint as an object, matching the parameter schema shown in genesis402_catalog. Omit if the endpoint takes none." - changed
Input schema / properties / payment_signature / descriptionPrevious 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."
- Changed
genesis402_catalog1 field changed- added
Input schema / properties / filter / descriptionAdded value: +"Optional keyword to narrow the list, matched against endpoint name, title and tags, e.g. \"defi\", \"sec\", \"price\". Omit for all endpoints."
- Changed
genesis402_defi_yields8 fields changed- added
Input schema / properties / chain / descriptionAdded value: +"Filter to one chain by name, e.g. Ethereum, Base, Arbitrum. Omit for all chains." - added
Input schema / properties / limit / descriptionAdded value: +"How many pools to return, 1 to 100." - added
Input schema / properties / min_tvl_usd / descriptionAdded value: +"Minimum pool TVL in USD, e.g. 1000000 to skip small pools." - changed
Input schema / properties / payment_signature / descriptionPrevious 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." - added
Input schema / properties / project / descriptionAdded value: +"Filter to one protocol by its slug, e.g. aave-v3. Omit for all protocols." - added
Input schema / properties / sort / descriptionAdded value: +"Sort order: 'apy' (highest yield first) or 'tvl' (largest pool first)." - added
Input schema / properties / stablecoin_only / descriptionAdded value: +"true = only stablecoin pools." - added
Input schema / properties / token / descriptionAdded value: +"Filter to pools containing this token symbol, e.g. USDC, ETH, WBTC. Case-insensitive."
- Changed
genesis402_email_check2 fields changed- added
Input schema / properties / email_or_domain / descriptionAdded value: +"A full email address (name@example.com) or a bare domain (example.com)." - changed
Input schema / properties / payment_signature / descriptionPrevious 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."
- Changed
genesis402_extract_json3 fields changed- added
Input schema / properties / fields / descriptionAdded 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\" }." - changed
Input schema / properties / payment_signature / descriptionPrevious 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." - added
Input schema / properties / text / descriptionAdded value: +"The source text to read, up to 16,000 characters."
- Changed
genesis402_multi_chain_scan2 fields changed- added
Input schema / properties / address / descriptionAdded value: +"The EVM address to scan, 0x followed by 40 hex characters." - changed
Input schema / properties / payment_signature / descriptionPrevious 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."
- Changed
genesis402_prove4 fields changed- added
Input schema / properties / claim / descriptionAdded value: +"Optional short statement bound into the receipt, e.g. 'Draft v2 of the purchase agreement'." - changed
Input schema / properties / payment_signature / descriptionPrevious 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." - added
Input schema / properties / sha256 / descriptionAdded value: +"Lowercase hex SHA-256 digest (64 characters) of the content to prove. Provide this or text." - added
Input schema / properties / text / descriptionAdded value: +"Raw text to hash and prove, up to 16,384 characters. Provide this or sha256."
- Changed
genesis402_receipt1 field changed- added
Input schema / properties / receipt_id / descriptionAdded value: +"The receipt id returned with a paid call result."
- Changed
genesis402_screen_sanctions2 fields changed- added
Input schema / properties / address / descriptionAdded value: +"The crypto address to screen, as a string (4 to 120 characters)." - changed
Input schema / properties / payment_signature / descriptionPrevious 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."
- Changed
genesis402_sec_financials3 fields changed- added
Input schema / properties / cik / descriptionAdded value: +"SEC Central Index Key (CIK), up to 10 digits. Provide this or ticker." - changed
Input schema / properties / payment_signature / descriptionPrevious 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." - added
Input schema / properties / ticker / descriptionAdded value: +"Stock ticker, e.g. AAPL or MSFT. Provide this or cik."
- Changed
genesis402_token_brief3 fields changed- added
Input schema / properties / chain / descriptionAdded value: +"Optional EVM chain name to focus on, e.g. ethereum or base. Omit to cover all supported chains." - added
Input schema / properties / contract / descriptionAdded value: +"The ERC-20 token contract address, 0x followed by 40 hex characters (not a wallet address)." - changed
Input schema / properties / payment_signature / descriptionPrevious 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."
- Changed
genesis402_wallet_brief3 fields changed- added
Input schema / properties / address / descriptionAdded value: +"The EVM wallet address to check, 0x followed by 40 hex characters." - added
Input schema / properties / chain / descriptionAdded value: +"Optional EVM chain name to focus on, e.g. ethereum or base. Omit to cover all supported chains." - changed
Input schema / properties / payment_signature / descriptionPrevious 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."
- Changed
genesis402_web_extract3 fields changed- added
Input schema / properties / max_chars / descriptionAdded value: +"Maximum characters of text to return, 500 to 60,000." - changed
Input schema / properties / payment_signature / descriptionPrevious 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." - added
Input schema / properties / url / descriptionAdded value: +"Full http(s) URL of the public page to fetch."
- Changed
genesis402_whois2 fields changed- added
Input schema / properties / domain / descriptionAdded value: +"The domain to look up, e.g. example.com (no scheme or path)." - changed
Input schema / properties / payment_signature / descriptionPrevious 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."
14 tool updates
v0.3.1- First observed
genesis402_call - First observed
genesis402_catalog - First observed
genesis402_defi_yields - First observed
genesis402_email_check - First observed
genesis402_extract_json - First observed
genesis402_multi_chain_scan - First observed
genesis402_prove - First observed
genesis402_receipt - First observed
genesis402_screen_sanctions - First observed
genesis402_sec_financials - First observed
genesis402_token_brief - First observed
genesis402_wallet_brief - First observed
genesis402_web_extract - First observed
genesis402_whois
TDQS
Scored across 21 tools
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.
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.
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.
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
Related MCP Connectors
Pay-per-call tools for autonomous agents, settled in USDC on Base via x402.
Pay-per-call data APIs for AI agents. USDC on Base via x402. 33 tools, no signup.
Market data and web intelligence for AI agents, paid per call in USDC on Base via x402.
63 pay-per-call tools for agents: vision, text, data, web, blockchain. USDC on Base via x402.
Related MCP Servers
- FlicenseAqualityDmaintenancePay-per-call tools for AI agents including trust checks, due diligence, market data, and human-verified approvals, settled in USDC on Base via the x402 protocol.16-
- AlicenseAqualityDmaintenanceEnables AI agents to access crypto/web3 data across 5 chains with pay-per-call billing in USDC via x402, no API key required, and built-in spend caps.3636 npmMIT
- AlicenseAqualityCmaintenanceEnables 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.835 npmMIT

AgentBIT MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceEnables 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