← Back to all APIs

Verify Semaphore

$0.002

Verify a Semaphore ZK proof locally using Groth16 (embedded official vkey). No external dependency. Send the proof object from @semaphore-protocol/proof generateProof().

POST https://x402.freeq.one/tools/verify_semaphore
Try it (x402 payment flow)

⚡ Try with your wallet — live payment

curl -X POST https://x402.freeq.one/tools/verify_semaphore \ -H "Content-Type: application/json" \ -d '{"proof":{"merkleTreeDepth":20,"merkleTreeRoot":"0x1","nullifier":"0x1","message":"0x1","scope":"0x1","points":["0x1","0x1","0x1","0x1","0x1","0x1","0x1","0x1"]}}'

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.