| EZKL | Reusable Verifier only (v0.1.0), BN254 (Curve), BDFG21 (batch opening scheme), no accumulator | Max number of Public Inputs: 32 |
| Fflonk | BN128 | Max number of Public Inputs: 1 |
| Groth16 | BLS12-381, BN128, BN254 | Max number of Public Inputs: 64 |
| Noir UltraHonk | Noir v1.0.0-beta.14 to v1.0.0-beta.18, bb and bb.js v3.0.x (v4.0.0 and later not supported yet), both ZK and non-ZK variants, Keccak256 only (evm / evm-no-zk verifier target). Submission variants: V0_84, V3_0, and Legacy (backward-compatible alias for V0_84 that reproduces the pre-versioning statement hash). | Max number of Public Inputs: 32, Max Evaluation Domain Size: 225 |
| Noir UltraPlonk | Noir âĨ v0.31.0, bb ⤠v0.76.4 | Max number of Public Inputs: 32 |
| Risc0 | v2.1, v2.2, v2.3 | Max Public Inputs Size: 2052 bytes (2048 bytes user input), Format: cbor |
| Plonky2 | Keccak256, Poseidon | Max number of Public Inputs: 64, Max Proof Size: 256 KiB, Max Verification Key Size: 50 KB |
| SP1 | v5.x | Max Public Inputs Size: 2048 bytes |
| TEE | Intel TDX, AWS Nitro | Max Proof Size: 8192 bytes, Max VK Size: 8192 bytes per field, Public Inputs: none |