Catalog/evm-verify-signature

EVM

Verify a signed message (recover signer) API

Recover the wallet address that signed a message (EIP-191 personal_sign) and optionally confirm it matches an expected signer. The core check for agent auth, login-with-wallet, and x402-style payment authorization.

Price$0.01per request
MethodPOST
Route/v1/evm/verify-signature
StatusLive
MIME typeapplication/json
Rate limit120/minute
CacheNo cache
evmsignatureecrecoverautheip191verifywallet
API URLhttps://x402.hexl.dev/v1/evm/verify-signature
Integration docs
Example request
{
  "message": "x402 marketplace signature demo",
  "signature": "0x9f63c92c5d5751515875261f638e9df309d6d156722834672bb4cf4663337db7795a962b02719c38942fb2d40e73818cffc62ee808bdc2afae15d07d4f2663821b",
  "expectedAddress": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
}
Example response
{
  "signer": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "valid": true,
  "expectedAddress": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
Input schema
{
  "type": "object",
  "required": [
    "message",
    "signature"
  ],
  "properties": {
    "message": {
      "type": "string",
      "examples": [
        "Login to Acme at 2026-06-02"
      ]
    },
    "signature": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]+$"
    },
    "expectedAddress": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  }
}
Output schema
{
  "type": "object",
  "required": [
    "signer",
    "valid"
  ],
  "properties": {
    "signer": {
      "type": "string"
    },
    "valid": {
      "type": "boolean"
    },
    "expectedAddress": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}