Skip to main content
POST
Verify a proof

Authorizations

Authorization
string
header
required

Your project secret key: sk_test_... (testnet) or sk_live_... (mainnet). Use it only on your server.

Path Parameters

proofId
string
required

ZK proof ID from the Warp Platform.

Body

application/json
proof
object
required

Proof object as produced by snarkjs groth16.fullProve.

public_signals
string[]
required

Public signals as decimal strings. The count must match the circuit and each value must be below the BN254 scalar field modulus.

nonce
string

Decimal nonce from the create-nonce endpoint. Required when the proof declares a nonce signal; it must equal that public signal. Otherwise optional: it is consumed but reported as unbound, because the proof itself does not commit to it.

Pattern: ^[0-9]{1,78}$
onchain
boolean
default:false

Also call verifyProof on the deployed verifier contract.

Response

Verification result

valid
boolean
proof_id
string
checks
object
verified_at
string<date-time>
receipt
string

Compact JWS (EdDSA, Ed25519, typ: warp-verify-receipt+jws) over a ZkReceiptClaims payload. Verify the signature with the JWKS endpoint, then check aud, exp, nonce and nonce_bound, and remember jti if you need single-use receipts.