---
title: "x402 Signer Recovery Verifier"
method: POST
path: "/v1/tools/verify_x402_signer_recovery"
tags: ["compliance_control", "x402", "eip-712", "eip-3009", "ecdsa-recovery", "crypto-primitive", "mcp:verify_x402_signer_recovery"]
---

# x402 Signer Recovery Verifier

`POST /v1/tools/verify_x402_signer_recovery`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/verify_x402_signer_recovery`
- Auth: none declared

Recovers the ECDSA signer address from a caller-supplied EIP-712 digest and signature in (r,s,v) or (r,s,yParity) form. Normalizes the recovery-id across the raw bit (0/1), legacy Ethereum v (27/28), and EIP-155 v (chainId*2+35/36) conventions, each a well-known transcription trap. Reports the recovered address plus a separate boolean comparison against any caller-claimed from address (never silently failing when no claim is supplied). Signature recovery comes from the already-vendored, pinned noble-curves bundle (@noble/curves secp256k1 Signature.recoverPublicKey); malformed or invalid-recovery-id signatures produce a clean INDETERMINATE/RECOVERY_FAILED finding, never a thrown exception. Proves that an address's private key signed the exact digest supplied; does not prove settlement, spend, that funds moved, or that the authorization was ever submitted on-chain. Zero network calls; never a facilitator, proxy, gateway, or settlement relay.

**Tool URL:** https://ainumbers.co/chaingraph/art-591-x402-signer-recovery-verifier.html

## Request body

- object
  - `digest` string
  - `signature` string
  - `r` string
  - `s` string
  - `v` number
  - `yParity` number
  - `chainId` number
  - `claimedFrom` string

## Response `200`

Successful tool execution result

- object
  - `verdict` string
  - `reasons` string[]
  - `digest` string, nullable
  - `recovered_signer` string, nullable
  - `claimed_from` string, nullable
  - `recovered_signer_matches_claimed_from` boolean, nullable
  - `recovery_id` number, nullable
  - `recovery_id_source` string, nullable
  - `scope_note` string

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
