Lux Docs
Precompile

ZK Precompiles

Zero-knowledge proof verification, commitments, and rollup support

ZK precompiles provide native proof verification for Groth16, PLONK, Halo2, and KZG commitments, enabling privacy-preserving transactions and ZK rollups on Lux.

Proof Verification

AddressNameGasDescription
0x0900ZK_VERIFY200,000Generic ZK proof verification
0x0901GROTH16200,000Groth16 verifier
0x0902PLONK250,000PLONK verifier
0x0903FFLONK250,000fflonk verifier
0x0904HALO2300,000Halo2 verifier (no trusted setup)

Commitments

AddressNameGasDescription
0x0910KZG50,000KZG polynomial commitments (EIP-4844)
0x0911PEDERSEN10,000Pedersen commitments
0x0912IPA75,000Inner product arguments (Verkle trees)

Privacy

AddressNameGasDescription
0x0920PRIVACY_POOL50,000Confidential transaction pool
0x0921NULLIFIER5,000Nullifier verification (double-spend prevention)
0x0922COMMITMENT10,000Commitment verification
0x0923RANGE_PROOF100,000Range proof verification (hidden amounts)

Rollups

AddressNameGasDescription
0x0930ROLLUP_VERIFY500,000ZK rollup batch verification
0x0931STATE_ROOT25,000State root verification
0x0932BATCH_PROOF100,000Batch proof aggregation

Privacy Precompiles

AddressNameGasDescription
0x0700FHE500,000Fully Homomorphic Encryption
0x0701ECIES25,000Elliptic Curve Integrated Encryption
0x0702RING50,000Ring signatures (anonymous signing)
0x0703HPKE20,000Hybrid Public Key Encryption

Threshold Signatures

AddressNameGasDescription
0x0800FROST25,000Schnorr threshold signatures
0x0801CGGMP2150,000ECDSA threshold signatures
0x0802RINGTAIL75,000Post-quantum threshold lattice signatures

On this page