Free x402 offer/receipt checker: verifies signatures and whether the signer fits the host.
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.
Read-only ERC-8004 identity lookup (owner, agentWallet, registration file, endpoint-domain verification) on Ethereum, Base, Optimism, Arbitrum, Polygon, BNB, Avalanche, Gnosis, Celo, Linea or Scroll.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Read-only ERC-8004 identity lookup (owner, agentWallet, registration file, endpoint-domain verification) on Ethereum, Base, Optimism, Arbitrum, Polygon, BNB, Avalanche, Gnosis, Celo, Linea or Scroll.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | |
| chain_id* | integer |
{
"type": "object",
"required": [
"chain_id",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string"
},
"chain_id": {
"type": "integer"
}
}
}Unpaid preflight of an x402 URL: fetch its 402, summarise accepts[]/extensions, verify any signed offers and report who can vouch for the signer. Never pays. Free.
| Argument | Type | Description |
|---|---|---|
| url* | string | |
| method | string |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string"
},
"method": {
"enum": [
"GET",
"POST"
],
"type": "string"
}
}
}Verify an x402 signed offer (EIP-712 or JWS): signature, expiry, match to accepts[], and signer-authorization evidence (payTo, did:web, DNS _controllers, ERC-8004). Free.
| Argument | Type | Description |
|---|---|---|
| offer* | object | The offer object: {format, payload?, signature, acceptIndex?} |
| accepts | array | Optional accepts[] from the live 402 to match against |
| resource_url | string | |
| trusted_pay_to | array |
{
"type": "object",
"required": [
"offer"
],
"properties": {
"offer": {
"type": "object",
"description": "The offer object: {format, payload?, signature, acceptIndex?}"
},
"accepts": {
"type": "array",
"items": {
"type": "object"
},
"description": "Optional accepts[] from the live 402 to match against"
},
"resource_url": {
"type": "string"
},
"trusted_pay_to": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Verify every signed offer inside a PaymentRequired object (pass the decoded JSON, or the raw base64 PAYMENT-REQUIRED header). Free.
| Argument | Type | Description |
|---|---|---|
| resource_url | string | |
| payment_required* | any | Object or base64/JSON string |
{
"type": "object",
"required": [
"payment_required"
],
"properties": {
"resource_url": {
"type": "string"
},
"payment_required": {
"description": "Object or base64/JSON string"
}
}
}Verify an x402 signed receipt (EIP-712 or JWS) returned in the settlement response: signature, freshness, payer/resource/transaction match, signer-authorization evidence. Free.
| Argument | Type | Description |
|---|---|---|
| payer | string | |
| network | string | |
| receipt* | object | |
| transaction | string | |
| resource_url | string | |
| trusted_pay_to | array | |
| max_age_seconds | number |
{
"type": "object",
"required": [
"receipt"
],
"properties": {
"payer": {
"type": "string"
},
"network": {
"type": "string"
},
"receipt": {
"type": "object"
},
"transaction": {
"type": "string"
},
"resource_url": {
"type": "string"
},
"trusted_pay_to": {
"type": "array",
"items": {
"type": "string"
}
},
"max_age_seconds": {
"type": "number"
}
}
}