Deterministic banking, LEI, VAT, SWIFT & compliance checks via MCP with signed XDR-1 receipts.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Native ETH and one ERC-20 balance (default USDC) for an address on Base, raw and formatted. Result carries a signed receipt.
EVM address, 0x-prefixed.
ERC-20 token contract address (optional; defaults to USDC on Base).
Native ETH and one ERC-20 balance (default USDC) for an address on Base, raw and formatted. Result carries a signed receipt.
| Argument | Type | Description |
|---|---|---|
| address* | string | EVM address, 0x-prefixed. |
| token_address | string | ERC-20 token contract address (optional; defaults to USDC on Base). |
{
"type": "object",
"examples": [
{
"address": "0xc59c85e661d34084a7769f955d17fd38254a6235"
}
],
"required": [
"address"
],
"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)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| items* | array | List of {tool, value} checks (max 50). |
{
"type": "object",
"examples": [
{
"items": [
{
"tool": "iban-check",
"value": "GB82 WEST 1234 5698 7654 32"
},
{
"tool": "lei-check",
"value": "529900T8BM49AURSDO55"
},
{
"tool": "vat-mod97-check",
"value": "BE0417497106"
}
]
}
],
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"tool",
"value"
],
"properties": {
"tool": {
"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"
],
"type": "string",
"description": "which validator to run"
},
"value": {
"type": "string",
"description": "the identifier (or text, for context-distill) to check"
}
}
},
"maxItems": 50,
"minItems": 1,
"description": "List of {tool, value} checks (max 50)."
}
}
}Base block header: number, timestamp, transaction count and base fee for the latest or a given block. Result carries a signed receipt.
| Argument | Type | Description |
|---|---|---|
| block | string | Block number as hex (0x…) or decimal, or a tag (latest/earliest/pending/finalized/safe); defaults to latest. |
{
"type": "object",
"examples": [
{
"block": "latest"
}
],
"required": [],
"properties": {
"block": {
"type": "string",
"description": "Block number as hex (0x…) or decimal, or a tag (latest/earliest/pending/finalized/safe); defaults to latest."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| amount | number | Gross invoice settlement volume in USD/USDC (alias). |
| currency | string | Target currency for local comparison (e.g. EUR, GBP, BRL, INR, ARS, PHP, NGN, SGD). |
| amount_usd | number | Gross invoice settlement volume in USD/USDC (alias). |
| amount_usdc | number | Gross invoice settlement volume in USD/USDC. |
{
"type": "object",
"examples": [
{
"currency": "BRL",
"amount_usdc": 50000
}
],
"properties": {
"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)."
},
"amount_usd": {
"type": "number",
"description": "Gross invoice settlement volume in USD/USDC (alias)."
},
"amount_usdc": {
"type": "number",
"description": "Gross invoice settlement volume in USD/USDC."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| tool* | string | Target tool name (e.g. 'iban-check', 'vendor-onboarding-pack') |
| amount | number | Optional batch count or volume units (default 1) |
{
"type": "object",
"examples": [
{
"tool": "iban-check",
"amount": 1
}
],
"required": [
"tool"
],
"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)"
}
}
}Fetch a public web page by URL (or take your HTML) and return Markdown plus headings. No JavaScript rendering. Result carries a signed receipt.
| Argument | Type | Description |
|---|---|---|
| url | string | Public http(s) page to fetch (ports 80/443 only). Provide exactly one of url or html. |
| html | string | Raw HTML string to convert instead of fetching a URL (max 1 MiB). Provide exactly one of url or html. |
{
"type": "object",
"examples": [
{
"url": "https://example.com/"
}
],
"required": [],
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| text* | string | Arbitrary text to distill (any length; hashing is over the exact input). |
{
"type": "object",
"examples": [
{
"text": "The landlord demanded the deposit before the viewing. The deposit was paid before any viewing of the property."
}
],
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Arbitrary text to distill (any length; hashing is over the exact input)."
}
}
}Spot USD price for a crypto ticker or CoinGecko id from public price feeds, cached 60 s. Result carries a signed receipt.
| Argument | Type | Description |
|---|---|---|
| symbol* | string | Ticker symbol (btc, eth, sol, …) or a CoinGecko asset id (bitcoin, ethereum, …). |
{
"type": "object",
"examples": [
{
"symbol": "btc"
}
],
"required": [
"symbol"
],
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol (btc, eth, sol, …) or a CoinGecko asset id (bitcoin, ethereum, …)."
}
}
}Raw and formatted ERC-20 balanceOf for an address on Base, with decimals read from the token. Result carries a signed receipt.
| Argument | Type | Description |
|---|---|---|
| address* | string | Holder EVM address, 0x-prefixed. |
| decimals | number | Token decimals override (optional). |
| token_address* | string | ERC-20 token contract address, 0x-prefixed. |
{
"type": "object",
"examples": [
{
"address": "0xc59c85e661d34084a7769f955d17fd38254a6235",
"token_address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
}
],
"required": [
"address",
"token_address"
],
"properties": {
"address": {
"type": "string",
"description": "Holder EVM address, 0x-prefixed."
},
"decimals": {
"type": "number",
"description": "Token decimals override (optional)."
},
"token_address": {
"type": "string",
"description": "ERC-20 token contract address, 0x-prefixed."
}
}
}Reference fiat and stablecoin conversion rate from a static table, not a live feed. Returns rate and inverse; result carries a signed receipt.
| Argument | Type | Description |
|---|---|---|
| base* | string | Base currency symbol (e.g. USDC, EUR, GBP, JPY). |
| quote* | string | Quote currency symbol (e.g. USD, EUR, JPY). |
{
"type": "object",
"examples": [
{
"base": "EUR",
"quote": "USD"
}
],
"required": [
"base",
"quote"
],
"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)."
}
}
}Validate an Indian GSTIN by structure (2-digit state code + PAN + entity code + 'Z') and its mod-36 cross-sum checksum.
| Argument | Type | Description |
|---|---|---|
| gstin* | string | 15-character Indian Goods and Services Tax Identification Number. |
{
"type": "object",
"examples": [
{
"gstin": "27AAPFU0939F1ZV"
}
],
"required": [
"gstin"
],
"properties": {
"gstin": {
"type": "string",
"description": "15-character Indian Goods and Services Tax Identification Number."
}
}
}Validate IBAN structure and MOD-97 checksum. Does not establish account ownership, beneficiary identity or absence of fraud.
| Argument | Type | Description |
|---|---|---|
| iban* | string | IBAN to validate; spaces allowed. |
{
"type": "object",
"examples": [
{
"iban": "GB82 WEST 1234 5698 7654 32"
}
],
"required": [
"iban"
],
"properties": {
"iban": {
"type": "string",
"description": "IBAN to validate; spaces allowed."
}
}
}Check the 11-character Indian IFSC format, including its fifth-character zero. No bank-branch registry lookup or account verification.
| Argument | Type | Description |
|---|---|---|
| ifsc* | string | 11-character Indian Financial System Code. |
{
"type": "object",
"examples": [
{
"ifsc": "HDFC0000123"
}
],
"required": [
"ifsc"
],
"properties": {
"ifsc": {
"type": "string",
"description": "11-character Indian Financial System Code."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| pan | string | PAN (10 chars, optional) |
| vpa | string | UPI VPA handle (optional) |
| ifsc | string | IFSC bank code (optional) |
| gstin | string | GSTIN (15 chars, optional) |
{
"type": "object",
"examples": [
{
"pan": "AAACP1234M",
"vpa": "merchant@okhdfcbank",
"ifsc": "HDFC0001234",
"gstin": "27AAPFU0939F1ZV"
}
],
"required": [],
"properties": {
"pan": {
"type": "string",
"description": "PAN (10 chars, optional)"
},
"vpa": {
"type": "string",
"description": "UPI VPA handle (optional)"
},
"ifsc": {
"type": "string",
"description": "IFSC bank code (optional)"
},
"gstin": {
"type": "string",
"description": "GSTIN (15 chars, optional)"
}
}
}Validate JSON data payloads against schema definitions. Preflighted for agent tool call pipelines.
| Argument | Type | Description |
|---|---|---|
| data* | object | The JSON data object to validate against the schema. |
| schema* | object | The JSON schema object with expected properties and types. |
{
"type": "object",
"examples": [
{
"data": {
"name": "Apex Agent",
"version": 2
},
"schema": {
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "number"
}
}
}
}
],
"required": [
"data",
"schema"
],
"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."
}
}
}Validate a 20-character LEI and MOD-97 check digits. No registry lookup, active-registration check or legal-entity identity verification.
| Argument | Type | Description |
|---|---|---|
| lei* | string | 20-character Legal Entity Identifier. |
{
"type": "object",
"examples": [
{
"lei": "529900T8BM49AURSDO55"
}
],
"required": [
"lei"
],
"properties": {
"lei": {
"type": "string",
"description": "20-character Legal Entity Identifier."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| lei | string | ISO 17442 Legal Entity Identifier (optional). |
| vat_number | string | EU VAT number (optional). |
| vendor_domain | string | Vendor website domain or invoicing email address (optional). |
| company_number | string | Official corporate registration number, e.g. UK Companies House 8 digits/chars (optional). |
| recipient_iban | string | Recipient bank IBAN (optional). |
| declared_country | string | 2-letter ISO country code where vendor claims to be registered (optional, e.g. 'GB', 'US', 'DE'). |
| physical_address | string | Vendor physical office address (optional). |
| prev_receipt_hash | string | Preceding verification receipt hash (may also be passed via X-PREV-RECEIPT-HASH header). |
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.
| Argument | Type | Description |
|---|---|---|
| receipt* | string | 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). |
{
"type": "object",
"examples": [
{
"receipt": {
"v": "XDR-1",
"ts": 0,
"tier": "free",
"tool": "iban-check",
"nonce": "0x…",
"payer": "0xc59c85e661d34084a7769f955d17fd38254a6235",
"amount": "0",
"signer": "0xa036e2e3e19c6d02f30b3a9eb0acd057e6d9a5c8",
"recipient": "0xc59c85e661d34084a7769f955d17fd38254a6235",
"signature": "0x…",
"input_hash": "0x…",
"output_hash": "0x…",
"tool_version": "1"
}
}
],
"required": [
"receipt"
],
"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)."
}
}
}Exact EVM-address comparison against the identified address snapshot and existing operator block policy. Current legal status is unknown; is_sanctioned is null. valid=false preserves a local block; valid=null never authorizes a transaction. Names are not screened. Missing, stale or incomplete evidence is explicit; no UN/EU coverage or sanctions clearance is provided.
| Argument | Type | Description |
|---|---|---|
| subject* | string | EVM address (0x...) or ISO 3166-1 country code / jurisdiction name |
{
"type": "object",
"examples": [
{
"subject": "0x7f367cc41522ce07553e823bf3be79a889debe1b"
}
],
"required": [
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "EVM address (0x...) or ISO 3166-1 country code / jurisdiction name"
}
}
}Check SWIFT/BIC structure and country code. Does not establish bank existence, active routing or beneficiary identity.
| Argument | Type | Description |
|---|---|---|
| bic* | string | SWIFT/BIC code, 8 or 11 characters; spaces/dashes allowed. |
{
"type": "object",
"examples": [
{
"bic": "DEUTDEFF500"
}
],
"required": [
"bic"
],
"properties": {
"bic": {
"type": "string",
"description": "SWIFT/BIC code, 8 or 11 characters; spaces/dashes allowed."
}
}
}Deterministic Base contract facts: ERC-20 metadata, proxy slots, owner(), privileged-function selectors and flags. Not a safety verdict. Result carries a signed receipt.
| Argument | Type | Description |
|---|---|---|
| chain | string | Optional. Only 'base' (Base mainnet) is supported. |
| address* | string | Contract address on Base, 0x + 40 hex. |
{
"type": "object",
"examples": [
{
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
}
],
"required": [
"address"
],
"properties": {
"chain": {
"enum": [
"base"
],
"type": "string",
"description": "Optional. Only 'base' (Base mainnet) is supported."
},
"address": {
"type": "string",
"description": "Contract address on Base, 0x + 40 hex."
}
}
}Outbound transaction count (nonce) and contract-or-EOA check for an address on Base. Result carries a signed receipt.
| Argument | Type | Description |
|---|---|---|
| address* | string | EVM address, 0x-prefixed. |
{
"type": "object",
"examples": [
{
"address": "0xc59c85e661d34084a7769f955d17fd38254a6235"
}
],
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "EVM address, 0x-prefixed."
}
}
}Check the supported Belgian VAT format and MOD-97 checksum. BE only; not VIES, other EU VAT formats, registration status or tax compliance.
| Argument | Type | Description |
|---|---|---|
| vat_number* | string | Belgian VAT id in the supported BE mod-97 format (BE prefix optional); not a VIES lookup. |
{
"type": "object",
"examples": [
{
"vat_number": "BE0417497106"
}
],
"required": [
"vat_number"
],
"properties": {
"vat_number": {
"type": "string",
"description": "Belgian VAT id in the supported BE mod-97 format (BE prefix optional); not a VIES lookup."
}
}
}Check supplied IBAN, LEI, Belgian VAT and UK company-number fields in one result. Structural checks only; no ownership, registry or fraud clearance.
| Argument | Type | Description |
|---|---|---|
| lei | string | Vendor LEI (optional). |
| iban | string | Vendor IBAN (optional). |
| vat_number | string | Vendor VAT number, BE mod-97 (optional). |
| company_number | string | Vendor UK company number (optional). |
{
"type": "object",
"examples": [
{
"lei": "529900T8BM49AURSDO55",
"iban": "GB82 WEST 1234 5698 7654 32",
"vat_number": "BE0417497106",
"company_number": "12345678"
}
],
"required": [],
"properties": {
"lei": {
"type": "string",
"description": "Vendor LEI (optional)."
},
"iban": {
"type": "string",
"description": "Vendor IBAN (optional)."
},
"vat_number": {
"type": "string",
"description": "Vendor VAT number, BE mod-97 (optional)."
},
"company_number": {
"type": "string",
"description": "Vendor UK company number (optional)."
}
}
}| invoice_amount_usd | number | Disbursement transaction amount in USD (optional). |
{
"type": "object",
"examples": [
{
"vendor_domain": "[email protected]",
"company_number": "01234567",
"recipient_iban": "GB82WEST12345698765432",
"declared_country": "GB",
"prev_receipt_hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"invoice_amount_usd": 4500
}
],
"required": [],
"properties": {
"lei": {
"type": "string",
"description": "ISO 17442 Legal Entity Identifier (optional)."
},
"vat_number": {
"type": "string",
"description": "EU VAT number (optional)."
},
"vendor_domain": {
"type": "string",
"description": "Vendor website domain or invoicing email address (optional)."
},
"company_number": {
"type": "string",
"description": "Official corporate registration number, e.g. UK Companies House 8 digits/chars (optional)."
},
"recipient_iban": {
"type": "string",
"description": "Recipient bank IBAN (optional)."
},
"declared_country": {
"type": "string",
"description": "2-letter ISO country code where vendor claims to be registered (optional, e.g. 'GB', 'US', 'DE')."
},
"physical_address": {
"type": "string",
"description": "Vendor physical office address (optional)."
},
"prev_receipt_hash": {
"type": "string",
"description": "Preceding verification receipt hash (may also be passed via X-PREV-RECEIPT-HASH header)."
},
"invoice_amount_usd": {
"type": "number",
"description": "Disbursement transaction amount in USD (optional)."
}
}
}