Verify a Sign-In-With-Ethereum (EIP-4361) signature. Stateless paid oracle: checks the signature against the message and returns the wallet address + chainId. Never mints sessions or consumes nonces. Get a checksummed address first via wallet_checksum.
{
"items": [
{
"proof": {
"merkleTreeDepth": 20,
"merkleTreeRoot": "0x...",
"nullifier": "0x...",
"message": "0x...",
"scope": "0x...",
"points": ["0x...", "0x...", "0x...", "0x...", "0x...", "0x...", "0x...", "0x..."]
}
}
]
}
Without payment, the server returns 402 Payment Required with x402 challenge details.
A paying agent signs a USDC transaction on Base and retries with the payment header.
{
"results": [
{ "valid": true, "method": "semaphore-official-vkey" },
{ "valid": true, "method": "semaphore-official-vkey" },
{ "valid": true, "method": "semaphore-official-vkey" }
],
"count": 3,
"duration_ms": 67,
"avg_ms": 22.33
}