# EVM Signature Verifier (EIP-191 / EIP-712 / ERC-1271)

> EVM Signature Verifier (EIP-191 / EIP-712 / ERC-1271) is a paid API for AI agents from onchain-health.mick8511.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-11-02).

Verifies whether a given signature was produced by a claimed EVM address, supporting EIP-191 personal_sign, EIP-712 typed data, raw 32-byte digests, and ERC-1271 smart-contract wallets across five EVM chains.

## Facts

- Endpoint: POST https://onchain-health.mick8511.workers.dev/verify-signature?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/evm-signature-verifier-eip-191-eip-712-erc-1271-c46481e4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_cWTbJLDDHJ--FkdYnk5Jv

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 evm-signature-verifier-eip-191-eip-712-erc-1271-c46481e4 -d '<json body>'
```

Example prompt: Can you check whether the address 0xAbC...123 actually signed this EIP-191 message 'Welcome to MyApp' with the signature 0xdeadbeef...abc on Ethereum?

## When to prefer this

Choose this endpoint when you need to cryptographically verify that an EVM wallet (EOA or smart-contract wallet like Safe or Coinbase Smart Wallet) produced a given signature, especially when you need multi-chain support (Ethereum, Base, Arbitrum, Optimism, Polygon) and ERC-1271 smart-contract wallet support in a single call. Prefer it over rolling your own ecrecover when smart-contract wallets may be involved, or when you need to handle EIP-191 and EIP-712 formats without custom parsing logic.

## Known failure modes

- Invalid or malformed signature hex returns an error or validity=false
- Mismatched address and signer returns validity=false with recovered signer shown
- ERC-1271 check fails if the contract is not deployed or does not implement isValidSignature
- Unsupported chain identifier causes an error response
- Providing neither message, typed_data, nor hash results in a missing-input error
- RPC node timeout for ERC-1271 on-chain call may return a transient error

## How this service works

Checks whether a signature was made by a claimed EVM address: EIP-191 personal_sign messages, EIP-712 typed data or a raw 32-byte digest, verified by ecrecover for wallets or ERC-1271 isValidSignature for smart-contract wallets (Safe, Coinbase Smart Wallet) on Ethereum, Base, Arbitrum, Optimism or Polygon. Returns validity, method, recovered signer and digest. Free sample: https://onchain-health.mick8511.workers.dev/sample

## Output

Returns a JSON object containing: a boolean validity flag indicating whether the signature is authentic, the verification method used (ecrecover or ERC-1271 isValidSignature), the recovered or confirmed signer address, and the computed message digest.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "hash": {
   "type": "string",
   "description": "32-byte digest"
  },
  "chain": {
   "type": "string",
   "description": "Chain for ERC-1271 checks (default ethereum)"
  },
  "address": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]{40}$",
   "description": "Claimed signer"
  },
  "message": {
   "type": "string",
   "description": "EIP-191 message text (or use typed_data / hash)"
  },
  "signature": {
   "type": "string",
   "description": "0x hex signature"
  },
  "typed_data": {
   "type": "object",
   "description": "EIP-712 typed data {types, primaryType, domain, message}"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/evm-signature-verifier-eip-191-eip-712-erc-1271-c46481e4/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from onchain-health.mick8511.workers.dev](https://www.zero.xyz/host/onchain-health.mick8511.workers.dev/llms.txt)
