# EIP-191 Signature Verifier & Signer Recovery

> EIP-191 Signature Verifier & Signer Recovery is a paid API for AI agents from api.x402node.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-14).

Recovers the signing address from an EIP-191 personal_sign signature and optionally validates it against an expected address

## Facts

- Endpoint: POST https://api.x402node.dev/crypto/sign-verify
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/eip-191-signature-verifier-signer-recovery-00f3a2ac
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_O7e5J7vpHkjLWedHc_D9O

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability eip-191-signature-verifier-signer-recovery-00f3a2ac -d '<json body>'
```

Example prompt: Can you recover the signer address from this EIP-191 personal_sign signature and check if it matches the wallet 0xAbCd1234...? The original message was 'Login to my app at 2024-01-15T12:00:00Z' and the signature is 0x4a5e1e...

## When to prefer this

Use this endpoint when you need to cryptographically verify that a specific Ethereum wallet signed a plaintext message using the standard EIP-191 personal_sign method (e.g. MetaMask 'Sign Message'). Prefer this over alternatives when you need both recovery and optional address matching in a single call, especially for agent or wallet authentication flows that rely on the x402 payment protocol ecosystem.

## Known failure modes

- Invalid signature format returns an error — signature must be a valid 65-byte hex string
- Malformed message input (e.g. wrong encoding) may yield an incorrect recovered address with no error
- If the expected address does not match the recovered signer, returns a mismatch/false result
- Missing required fields (message or signature) returns a 400-level error
- Signature from a non-personal_sign scheme (e.g. EIP-712 typed data) will produce an incorrect recovered address

## How this service works

Recover the signer of an EIP-191 personal_sign signature over a message, and optionally check it against an expected address. For verifying agent and wallet signatures. verify signature, ecrecover, personal sign, eip191, signer recovery

## Output

Returns the Ethereum address recovered via ecrecover from the EIP-191 personal_sign signature, plus a boolean or status indicating whether it matches the optionally provided expected address

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "address": {
   "type": "string",
   "description": "optional expected signer to compare against"
  },
  "message": {
   "type": "string",
   "description": "the signed message string (required)"
  },
  "signature": {
   "type": "string",
   "description": "0x signature (required)"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/eip-191-signature-verifier-signer-recovery-00f3a2ac/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.x402node.dev](https://www.zero.xyz/host/api.x402node.dev/llms.txt)
