Every withdrawal on Veil is verified on-chain using a Groth16 zero-knowledge proof. This page shows exactly what the Soroban verifier checks — the pairing equation, public inputs, and proof points. Nothing is hidden.
The on-chain verifier receives a proof (A, B, C) and public inputs (root, nullifierHash, recipient, relayer, fee, refund). It checks the following pairing equation:
Where:
IC[0] + Σ(input[i] · IC[i+1])This uses Stellar's native BN254 host functions:bn254_g1_add,bn254_g1_mul,bn254_multi_pairing_check.