x402-checks
Machine-payable deterministic identifier checks + signed XDR-1 receipts for agents.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (2)
- LOWin crypto_ticker
- LOWin fx_spot_price_oracle
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"x402-checks": {
"url": "https://api.code402.dev/mcp"
}
}
}Remote-Endpunkte
https://api.code402.dev/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (24)
🟢crypto_ticker(symbol)
Spot USD price for a crypto ticker or CoinGecko id from public price feeds, cached 60 s. Result carries a signed receipt.
Eingabe-Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol (btc, eth, sol, …) or a CoinGecko asset id (bitcoin, ethereum, …)."
}
},
"required": [
"symbol"
],
"examples": [
{
"symbol": "btc"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"symbol": {
"type": "string"
},
"coingecko_id": {
"type": "string"
},
"price_usd": {
"type": "number"
},
"currency": {
"type": "string"
},
"cached": {
"type": "boolean"
},
"fetched_at": {
"type": "string"
},
"reason": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"symbol"
]
}🟢erc20_balance(address, token_address, decimals)
Raw and formatted ERC-20 balanceOf for an address on Base, with decimals read from the token. Result carries a signed receipt.
Eingabe-Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Holder EVM address, 0x-prefixed."
},
"token_address": {
"type": "string",
"description": "ERC-20 token contract address, 0x-prefixed."
},
"decimals": {
"type": "number",
"description": "Token decimals override (optional)."
}
},
"required": [
"address",
"token_address"
],
"examples": [
{
"address": "0xc59c85e661d34084a7769f955d17fd38254a6235",
"token_address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"address": {
"type": "string"
},
"token_address": {
"type": "string"
},
"balance_raw": {
"type": "string"
},
"decimals": {
"type": "number"
},
"decimals_source": {
"type": "string"
},
"balance": {
"type": "number"
},
"reason": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"address",
"token_address"
]
}🟢fx_spot_price_oracle(base, quote)
Reference fiat and stablecoin conversion rate from a static table, not a live feed. Returns rate and inverse; result carries a signed receipt.
Eingabe-Schema
{
"type": "object",
"properties": {
"base": {
"type": "string",
"description": "Base currency symbol (e.g. USDC, EUR, GBP, JPY)."
},
"quote": {
"type": "string",
"description": "Quote currency symbol (e.g. USD, EUR, JPY)."
}
},
"required": [
"base",
"quote"
],
"examples": [
{
"base": "EUR",
"quote": "USD"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"pair": {
"type": "string"
},
"rate": {
"type": "number"
},
"inverse": {
"type": "number"
},
"timestamp": {
"type": "number"
},
"source": {
"type": "string"
}
},
"required": [
"pair",
"rate",
"inverse",
"timestamp",
"source"
]
}🟢block_info(block)
Base block header: number, timestamp, transaction count and base fee for the latest or a given block. Result carries a signed receipt.
Eingabe-Schema
{
"type": "object",
"properties": {
"block": {
"type": "string",
"description": "Block number as hex (0x…) or decimal, or a tag (latest/earliest/pending/finalized/safe); defaults to latest."
}
},
"required": [],
"examples": [
{
"block": "latest"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"block": {
"type": "string"
},
"block_number": {
"type": "number"
},
"timestamp": {
"type": "number"
},
"timestamp_iso": {
"type": "string"
},
"tx_count": {
"type": "number"
},
"base_fee_gwei": {
"type": "number"
},
"reason": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"block_number"
]
}🟢tx_activity(address)
Outbound transaction count (nonce) and contract-or-EOA check for an address on Base. Result carries a signed receipt.
Eingabe-Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "EVM address, 0x-prefixed."
}
},
"required": [
"address"
],
"examples": [
{
"address": "0xc59c85e661d34084a7769f955d17fd38254a6235"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"address": {
"type": "string"
},
"tx_count": {
"type": "number"
},
"is_contract": {
"type": "boolean"
},
"first_funded_heuristic": {
"type": "boolean"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"address",
"tx_count"
]
}🟢token_contract_risk(address, chain)
Deterministic Base contract facts: ERC-20 metadata, proxy slots, owner(), privileged-function selectors and flags. Not a safety verdict. Result carries a signed receipt.
Eingabe-Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Contract address on Base, 0x + 40 hex."
},
"chain": {
"type": "string",
"enum": [
"base"
],
"description": "Optional. Only 'base' (Base mainnet) is supported."
}
},
"required": [
"address"
],
"examples": [
{
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"valid": {
"type": "boolean"
},
"address": {
"type": "string"
},
"is_contract": {
"type": "boolean"
},
"tool": {
"type": "string"
},
"chain": {
"type": "string"
},
"block": {
"type": "object"
},
"erc20": {
"type": "object"
},
"proxy": {
"type": "object"
},
"owner": {
"type": "object"
},
"privileged_selectors": {
"type": "array"
},
"opcodes": {
"type": "object"
},
"flags": {
"type": "array"
},
"flag_counts": {
"type": "object"
},
"reason": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"address",
"is_contract",
"flags",
"scope"
]
}🟢clean_markdown_scraper(url, html)
Fetch a public web page by URL (or take your HTML) and return Markdown plus headings. No JavaScript rendering. Result carries a signed receipt.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public http(s) page to fetch (ports 80/443 only). Provide exactly one of url or html."
},
"html": {
"type": "string",
"description": "Raw HTML string to convert instead of fetching a URL (max 1 MiB). Provide exactly one of url or html."
}
},
"required": [],
"examples": [
{
"url": "https://example.com/"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"markdown": {
"type": "string"
},
"wordCount": {
"type": "number"
},
"headings": {
"type": "array"
},
"valid": {
"type": "boolean"
},
"tool": {
"type": "string"
},
"source": {
"type": "object"
},
"fetched_on": {
"type": "string"
},
"reason": {
"type": "string"
},
"code": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"scope": {
"type": "string"
}
},
"required": [
"markdown",
"wordCount"
]
}🟢context_distill(text)
Deterministic text digest: word count, top-5 most frequent meaningful words (stop words excluded), first sentence, and a keccak-256 content hash. Pure function — no external calls, no ML.
Eingabe-Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Arbitrary text to distill (any length; hashing is over the exact input)."
}
},
"required": [
"text"
],
"examples": [
{
"text": "The landlord demanded the deposit before the viewing. The deposit was paid before any viewing of the property."
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"word_count": {
"type": "number"
},
"meaningful_word_count": {
"type": "number"
},
"top_words": {
"type": "array"
},
"first_sentence": {
"type": "string"
},
"content_hash": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"word_count"
]
}🟢instant_json_schema_verifier(data, schema)
Validate JSON data payloads against schema definitions. Preflighted for agent tool call pipelines.
Eingabe-Schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "The JSON data object to validate against the schema."
},
"schema": {
"type": "object",
"description": "The JSON schema object with expected properties and types."
}
},
"required": [
"data",
"schema"
],
"examples": [
{
"data": {
"name": "Apex Agent",
"version": 2
},
"schema": {
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "number"
}
}
}
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"valid": {
"type": "boolean"
},
"errors": {
"type": "array"
},
"execution_ms": {
"type": "number"
}
},
"required": [
"valid",
"errors",
"execution_ms"
]
}🟢balance_check(address, token_address)
Native ETH and one ERC-20 balance (default USDC) for an address on Base, raw and formatted. Result carries a signed receipt.
Eingabe-Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "EVM address, 0x-prefixed."
},
"token_address": {
"type": "string",
"description": "ERC-20 token contract address (optional; defaults to USDC on Base)."
}
},
"required": [
"address"
],
"examples": [
{
"address": "0xc59c85e661d34084a7769f955d17fd38254a6235"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"address": {
"type": "string"
},
"native": {
"type": "object"
},
"token": {
"type": "object"
},
"reason": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"address"
]
}🟢calculate_fx_savings(amount_usdc, amount_usd, amount, currency)
Arithmetic comparison of a USDC settlement against comparator percentages YOU supply (bank_fee_pct, custodial_fee_pct) across 14 global fiat currencies. The comparators are assumptions, not measurements of any bank or provider; no protocol fee is deducted on this rail.
Eingabe-Schema
{
"type": "object",
"properties": {
"amount_usdc": {
"type": "number",
"description": "Gross invoice settlement volume in USD/USDC."
},
"amount_usd": {
"type": "number",
"description": "Gross invoice settlement volume in USD/USDC (alias)."
},
"amount": {
"type": "number",
"description": "Gross invoice settlement volume in USD/USDC (alias)."
},
"currency": {
"type": "string",
"description": "Target currency for local comparison (e.g. EUR, GBP, BRL, INR, ARS, PHP, NGN, SGD)."
}
},
"examples": [
{
"amount_usdc": 50000,
"currency": "BRL"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"amount_usdc": {
"type": "number"
},
"currency": {
"type": "string"
},
"legacy_swift_fee_usd": {
"type": "number"
},
"deel_fee_usd": {
"type": "number"
},
"code402_protocol_fee_usd": {
"type": "number"
},
"retained_savings_usd": {
"type": "number"
},
"pct_retained": {
"type": "number"
},
"local_currency": {
"type": "object"
},
"scope": {
"type": "string"
}
},
"required": [
"amount_usdc",
"retained_savings_usd",
"pct_retained"
]
}🟢iban_check(iban)
Validate IBAN structure and MOD-97 checksum. Does not establish account ownership, beneficiary identity or absence of fraud.
Eingabe-Schema
{
"type": "object",
"properties": {
"iban": {
"type": "string",
"description": "IBAN to validate; spaces allowed."
}
},
"required": [
"iban"
],
"examples": [
{
"iban": "GB82 WEST 1234 5698 7654 32"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"normalized": {
"type": "string"
},
"country": {
"type": "string"
},
"reason": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"reason"
]
}🟢lei_check(lei)
Validate a 20-character LEI and MOD-97 check digits. No registry lookup, active-registration check or legal-entity identity verification.
Eingabe-Schema
{
"type": "object",
"properties": {
"lei": {
"type": "string",
"description": "20-character Legal Entity Identifier."
}
},
"required": [
"lei"
],
"examples": [
{
"lei": "529900T8BM49AURSDO55"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"normalized": {
"type": "string"
},
"country": {
"type": "string"
},
"reason": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"reason"
]
}🟢vat_mod97_check(vat_number)
Check the supported Belgian VAT format and MOD-97 checksum. BE only; not VIES, other EU VAT formats, registration status or tax compliance.
Eingabe-Schema
{
"type": "object",
"properties": {
"vat_number": {
"type": "string",
"description": "Belgian VAT id in the supported BE mod-97 format (BE prefix optional); not a VIES lookup."
}
},
"required": [
"vat_number"
],
"examples": [
{
"vat_number": "BE0417497106"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"normalized": {
"type": "string"
},
"country": {
"type": "string"
},
"reason": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"reason"
]
}🟢swift_bic_check(bic)
Check SWIFT/BIC structure and country code. Does not establish bank existence, active routing or beneficiary identity.
Eingabe-Schema
{
"type": "object",
"properties": {
"bic": {
"type": "string",
"description": "SWIFT/BIC code, 8 or 11 characters; spaces/dashes allowed."
}
},
"required": [
"bic"
],
"examples": [
{
"bic": "DEUTDEFF500"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"normalized": {
"type": "string"
},
"country": {
"type": "string"
},
"reason": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"reason"
]
}🟢batch_validate(items)
Run up to 50 supported {tool, value} checks in one request. Each result states its scope. Compare the current batch quote with individual quotes; savings depend on batch size.
Eingabe-Schema
{
"type": "object",
"properties": {
"items": {
"type": "array",
"minItems": 1,
"maxItems": 50,
"description": "List of {tool, value} checks (max 50).",
"items": {
"type": "object",
"required": [
"tool",
"value"
],
"properties": {
"tool": {
"type": "string",
"enum": [
"iban-check",
"lei-check",
"vat-mod97-check",
"company-number-format",
"swift-bic-check",
"aba-routing-check",
"ein-format-check",
"ifsc-check",
"abn-check",
"luhn-check",
"isbn-check",
"e164-check",
"sedol-check",
"isin-check",
"ean13-check",
"gstin-check",
"context-distill"
],
"description": "which validator to run"
},
"value": {
"type": "string",
"description": "the identifier (or text, for context-distill) to check"
}
}
}
}
},
"required": [
"items"
],
"examples": [
{
"items": [
{
"tool": "iban-check",
"value": "GB82 WEST 1234 5698 7654 32"
},
{
"tool": "lei-check",
"value": "529900T8BM49AURSDO55"
},
{
"tool": "vat-mod97-check",
"value": "BE0417497106"
}
]
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"count": {
"type": "number"
},
"valid_count": {
"type": "number"
},
"invalid_count": {
"type": "number"
},
"results": {
"type": "array"
},
"scope": {
"type": "string"
}
},
"required": [
"count",
"results"
]
}🟢vendor_onboarding_pack(iban, lei, vat_number, company_number)
Check supplied IBAN, LEI, Belgian VAT and UK company-number fields in one result. Structural checks only; no ownership, registry or fraud clearance.
Eingabe-Schema
{
"type": "object",
"properties": {
"iban": {
"type": "string",
"description": "Vendor IBAN (optional)."
},
"lei": {
"type": "string",
"description": "Vendor LEI (optional)."
},
"vat_number": {
"type": "string",
"description": "Vendor VAT number, BE mod-97 (optional)."
},
"company_number": {
"type": "string",
"description": "Vendor UK company number (optional)."
}
},
"required": [],
"examples": [
{
"iban": "GB82 WEST 1234 5698 7654 32",
"lei": "529900T8BM49AURSDO55",
"vat_number": "BE0417497106",
"company_number": "12345678"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"checked_count": {
"type": "number"
},
"all_valid": {
"type": "boolean"
},
"verdict": {
"type": "string"
},
"results": {
"type": "array"
},
"scope": {
"type": "string"
}
},
"required": [
"checked_count",
"all_valid"
]
}🟢india_supplier_check(gstin, pan, vpa, ifsc)
One call, one receipt: GSTIN + PAN + UPI VPA + IFSC for an Indian counterparty. Four deterministic structural checks, each stating its own scope. Built for cross-border procurement where the buyer is an agent that cannot open an INR account.
Eingabe-Schema
{
"type": "object",
"properties": {
"gstin": {
"type": "string",
"description": "GSTIN (15 chars, optional)"
},
"pan": {
"type": "string",
"description": "PAN (10 chars, optional)"
},
"vpa": {
"type": "string",
"description": "UPI VPA handle (optional)"
},
"ifsc": {
"type": "string",
"description": "IFSC bank code (optional)"
}
},
"required": [],
"examples": [
{
"gstin": "27AAPFU0939F1ZV",
"pan": "AAACP1234M",
"vpa": "merchant@okhdfcbank",
"ifsc": "HDFC0001234"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"corridor": {
"type": "string"
},
"checked_count": {
"type": "number"
},
"all_valid": {
"type": "boolean"
},
"verdict": {
"type": "string"
},
"results": {
"type": "array"
},
"next_steps": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"checked_count",
"all_valid"
]
}🟢pre_disbursement_guard(recipient_iban, vendor_domain, declared_country, company_number, lei, ...)
Evaluate supplied identifiers, domain-age evidence and mismatch signals. Requires a preceding receipt hash. An advisory result is not verified identity, fraud clearance or authorization to release funds.
Eingabe-Schema
{
"type": "object",
"properties": {
"recipient_iban": {
"type": "string",
"description": "Recipient bank IBAN (optional)."
},
"vendor_domain": {
"type": "string",
"description": "Vendor website domain or invoicing email address (optional)."
},
"declared_country": {
"type": "string",
"description": "2-letter ISO country code where vendor claims to be registered (optional, e.g. 'GB', 'US', 'DE')."
},
"company_number": {
"type": "string",
"description": "Official corporate registration number, e.g. UK Companies House 8 digits/chars (optional)."
},
"lei": {
"type": "string",
"description": "ISO 17442 Legal Entity Identifier (optional)."
},
"vat_number": {
"type": "string",
"description": "EU VAT number (optional)."
},
"physical_address": {
"type": "string",
"description": "Vendor physical office address (optional)."
},
"invoice_amount_usd": {
"type": "number",
"description": "Disbursement transaction amount in USD (optional)."
}
},
"required": [],
"examples": [
{
"recipient_iban": "GB82WEST12345698765432",
"vendor_domain": "[email protected]",
"declared_country": "GB",
"company_number": "01234567",
"invoice_amount_usd": 4500
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"clear_to_disburse": {
"type": "boolean"
},
"risk_level": {
"type": "string"
},
"risk_score": {
"type": "number"
},
"decision": {
"type": "string"
},
"summary": {
"type": "string"
},
"checks": {
"type": "object"
},
"flags_triggered": {
"type": "array"
},
"recommendations": {
"type": "array"
},
"inspected_counterparty": {
"type": "object"
},
"scope": {
"type": "string"
}
},
"required": [
"clear_to_disburse",
"risk_level",
"risk_score",
"decision"
]
}🟢gstin_check(gstin)
Validate an Indian GSTIN by structure (2-digit state code + PAN + entity code + 'Z') and its mod-36 cross-sum checksum.
Eingabe-Schema
{
"type": "object",
"properties": {
"gstin": {
"type": "string",
"description": "15-character Indian Goods and Services Tax Identification Number."
}
},
"required": [
"gstin"
],
"examples": [
{
"gstin": "27AAPFU0939F1ZV"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"normalized": {
"type": "string"
},
"country": {
"type": "string"
},
"reason": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"reason"
]
}🟢ifsc_check(ifsc)
Check the 11-character Indian IFSC format, including its fifth-character zero. No bank-branch registry lookup or account verification.
Eingabe-Schema
{
"type": "object",
"properties": {
"ifsc": {
"type": "string",
"description": "11-character Indian Financial System Code."
}
},
"required": [
"ifsc"
],
"examples": [
{
"ifsc": "HDFC0000123"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"normalized": {
"type": "string"
},
"country": {
"type": "string"
},
"reason": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"valid",
"reason"
]
}🟢sanctions_address_screen(subject)
Deterministic screen of EVM addresses and jurisdictions against a curated local blocklist of sanctioned addresses and prohibited jurisdictions. Address- and jurisdiction-level only — this is NOT name-based screening and NOT a complete OFAC SDN check. Absence of a match is not a sanctions clearance; use as one informational input alongside your own compliance process.
Eingabe-Schema
{
"type": "object",
"properties": {
"subject": {
"type": "string",
"description": "EVM address (0x...) or ISO 3166-1 country code / jurisdiction name"
}
},
"required": [
"subject"
],
"examples": [
{
"subject": "0x7f367cc41522ce07553e823bf3be79a889debe1b"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"is_sanctioned": {
"type": "boolean"
},
"match_type": {
"type": "string"
},
"subject": {
"type": "string"
},
"sanction_program": {
"type": "string"
},
"reason": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"tool",
"valid",
"is_sanctioned"
]
}🟢check_price(tool, amount)
Instant zero-cost pricing hook for code402 tools. Returns the live price, an opaque quote_id, TTL, and the settlement URL. Free forever — feeds the price index into an agent planner's context without creating any financial obligation. If the planner acts on the quote, it hits the settlement_url with an EIP-3009 signed voucher.
Eingabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "Target tool name (e.g. 'iban-check', 'vendor-onboarding-pack')"
},
"amount": {
"type": "number",
"description": "Optional batch count or volume units (default 1)"
}
},
"required": [
"tool"
],
"examples": [
{
"tool": "iban-check",
"amount": 1
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"quote_id": {
"type": "string"
},
"ttl_ms": {
"type": "number"
},
"settlement_url": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"tool",
"valid",
"price",
"quote_id",
"settlement_url"
]
}🟢receipt_verify(receipt)
Verifies a signed XDR-1 receipt from ANY x402 service: recomputes the canonical digest and recovers the signer, then compares it to the declared signer. Free forever — no account, no quota, no storage (stateless). A valid receipt proves the signer signed that tool call at that timestamp; it does NOT prove funds moved or any business claim.
Eingabe-Schema
{
"type": "object",
"properties": {
"receipt": {
"type": "string",
"description": "The full XDR-1 receipt object: v, tool, tool_version, input_hash, output_hash, payer, recipient, amount, nonce, ts, tier, signer, signature (optional successor/stream_state)."
}
},
"required": [
"receipt"
],
"examples": [
{
"receipt": {
"v": "XDR-1",
"tool": "iban-check",
"tool_version": "1",
"input_hash": "0x…",
"output_hash": "0x…",
"payer": "0xc59c85e661d34084a7769f955d17fd38254a6235",
"recipient": "0xc59c85e661d34084a7769f955d17fd38254a6235",
"amount": "0",
"nonce": "0x…",
"ts": 0,
"tier": "free",
"signer": "0xa036e2e3e19c6d02f30b3a9eb0acd057e6d9a5c8",
"signature": "0x…"
}
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"valid": {
"type": "boolean"
},
"signer_recovered": {
"type": "string"
},
"declared_signer": {
"type": "string"
},
"digest": {
"type": "string"
},
"canonical": {
"type": "string"
},
"scope": {
"type": "string"
}
}
}Community
Nachweis