# EIP-191 / EIP-712 Signature Verifier & Signer Recovery

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

Verifies an Ethereum EIP-191 personal_sign or EIP-712 typed-data signature and recovers the signer's address from a message and signature pair.

## Facts

- Endpoint: POST https://api.agentstools.dev/crypto/verify
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/eip-191-eip-712-signature-verifier-signer-recovery-42d00068
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_4uG8QkJeWTqeKLcu62Pp7

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-eip-712-signature-verifier-signer-recovery-42d00068 -d '<json body>'
```

Example prompt: Can you verify this Ethereum EIP-191 personal_sign signature — the message is 'Hello, World!' and the signature is 0xabc123...def, and check if it was signed by 0xDeadBeef...1234?

## When to prefer this

Choose this endpoint when you need to cryptographically verify an Ethereum wallet signature (either EIP-191 personal_sign or EIP-712 typed-data) and recover the signing address without any signing capability — ideal for authentication flows, off-chain governance, permit validation, or any scenario where a user proves ownership of a wallet by signing a message.

## Known failure modes

- Invalid or malformed 0x signature (not 65 bytes) returns an error
- Mismatched scheme — passing EIP-712 typed-data with eip191 scheme or vice versa causes recovery failure
- Malformed typed-data object (missing types/domain/primaryType/message) for EIP-712 returns a parse error
- Non-hex or improperly encoded message may cause decoding errors
- Expected_signer address mismatch returns valid recovery result but a negative match flag

## How this service works

Verify an EIP-191 personal_sign or EIP-712 typed-data signature and recover the signer address from public inputs (message + signature). Verification/recovery only — never signs.

## Output

Returns the recovered Ethereum address derived from the message and signature, a boolean indicating whether the signature is valid, and optionally whether the recovered address matches the provided expected_signer address.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "scheme": {
   "enum": [
    "eip191",
    "eip712"
   ],
   "type": "string",
   "description": "eip191 personal_sign or eip712 typed-data"
  },
  "message": {
   "description": "Plain text / 0x-hex (eip191) OR a full typed-data object with types/domain/primaryType/message (eip712)"
  },
  "signature": {
   "type": "string",
   "description": "0x 65-byte signature"
  },
  "expected_signer": {
   "type": "string",
   "description": "Optional address to compare the recovered signer against"
  }
 }
}
```

## More

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