x402-checks
Machine-payable deterministic identifier checks + signed XDR-1 receipts for agents.
我该使用它吗
质量与安全性
发现(2)
- LOW在 crypto_ticker 中
- LOW在 fx_spot_price_oracle 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"x402-checks": {
"url": "https://api.code402.dev/mcp"
}
}
}远程端点
https://api.code402.dev/mcpstreamable-http它能做什么
工具清单
工具(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.
输入模式
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol (btc, eth, sol, …) or a CoinGecko asset id (bitcoin, ethereum, …)."
}
},
"required": [
"symbol"
],
"examples": [
{
"symbol": "btc"
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
]
}输出模式
{
"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.
输入模式
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "EVM address, 0x-prefixed."
}
},
"required": [
"address"
],
"examples": [
{
"address": "0xc59c85e661d34084a7769f955d17fd38254a6235"
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
]
}输出模式
{
"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.
输入模式
{
"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/"
}
]
}输出模式
{
"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.
输入模式
{
"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."
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
}
}
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
]
}输出模式
{
"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.
输入模式
{
"type": "object",
"properties": {
"iban": {
"type": "string",
"description": "IBAN to validate; spaces allowed."
}
},
"required": [
"iban"
],
"examples": [
{
"iban": "GB82 WEST 1234 5698 7654 32"
}
]
}输出模式
{
"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.
输入模式
{
"type": "object",
"properties": {
"lei": {
"type": "string",
"description": "20-character Legal Entity Identifier."
}
},
"required": [
"lei"
],
"examples": [
{
"lei": "529900T8BM49AURSDO55"
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
]
}输出模式
{
"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.
输入模式
{
"type": "object",
"properties": {
"bic": {
"type": "string",
"description": "SWIFT/BIC code, 8 or 11 characters; spaces/dashes allowed."
}
},
"required": [
"bic"
],
"examples": [
{
"bic": "DEUTDEFF500"
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
]
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
]
}输出模式
{
"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.
输入模式
{
"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"
}
]
}输出模式
{
"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.
输入模式
{
"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
}
]
}输出模式
{
"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.
输入模式
{
"type": "object",
"properties": {
"gstin": {
"type": "string",
"description": "15-character Indian Goods and Services Tax Identification Number."
}
},
"required": [
"gstin"
],
"examples": [
{
"gstin": "27AAPFU0939F1ZV"
}
]
}输出模式
{
"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.
输入模式
{
"type": "object",
"properties": {
"ifsc": {
"type": "string",
"description": "11-character Indian Financial System Code."
}
},
"required": [
"ifsc"
],
"examples": [
{
"ifsc": "HDFC0000123"
}
]
}输出模式
{
"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.
输入模式
{
"type": "object",
"properties": {
"subject": {
"type": "string",
"description": "EVM address (0x...) or ISO 3166-1 country code / jurisdiction name"
}
},
"required": [
"subject"
],
"examples": [
{
"subject": "0x7f367cc41522ce07553e823bf3be79a889debe1b"
}
]
}输出模式
{
"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.
输入模式
{
"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
}
]
}输出模式
{
"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.
输入模式
{
"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…"
}
}
]
}输出模式
{
"type": "object",
"properties": {
"valid": {
"type": "boolean"
},
"signer_recovered": {
"type": "string"
},
"declared_signer": {
"type": "string"
},
"digest": {
"type": "string"
},
"canonical": {
"type": "string"
},
"scope": {
"type": "string"
}
}
}社区
证据