Standard
Precompiles 39 EVM precompiles for post-quantum cryptography, DeFi, ZK proofs, and attestation
Lux EVM includes 39 custom precompiles accessible as native Solidity calls. Interfaces are in contracts/precompile/interfaces/ and addresses in contracts/precompile/addresses/PrecompileRegistry.sol.
Address Name Interface Purpose 0x0200...0001DeployerAllowList -- Deployer permissions 0x0200...0002TxAllowList -- Transaction permissions 0x0200...0003FeeManager -- Dynamic fee management 0x0200...0004NativeMinter -- Native token minting 0x0200...0005Warp IWarp.solCross-chain messaging with BLS 0x0200...0006RewardManager -- Validator rewards
Address Name Interface Purpose 0x0200...0007ML-DSA IMLDSA.solFIPS 204 post-quantum signatures 0x0200...0008SLH-DSA ISLHDSA.solHash-based PQ signatures (SPHINCS+) 0x0200...0009PQCrypto IPQCrypto.solMulti-PQ operations 0x0200...000AQuasar IQuasar.solQuantum consensus operations 0x0200...000BRingtail IRingtailThreshold.solPost-quantum threshold signatures 0x0200...000CFROST IFROST.solSchnorr threshold (BIP-340 Taproot) 0x0200...000DCGGMP21 ICGGMP21.solECDSA threshold (MPC custody)
import "@luxfi/contracts/precompile/interfaces/IMLDSA.sol" ;
// Verify a post-quantum ML-DSA signature
bool valid = IMLDSA. verify (publicKey, message, signature);
import "@luxfi/contracts/precompile/interfaces/IFROST.sol" ;
// Verify 2-of-3 FROST threshold signature
FROSTLib. verifyOrRevert ( 2 , 3 , aggregatedPubKey, messageHash, signature);
Address Name Interface Purpose 0x0200...0010DEX ILXBook.solQuantumSwap on-chain CLOB 0x0200...0011Oracle IOracle.solMulti-source price aggregation 0x0200...0012Lending -- Lending operations 0x0200...0013Staking -- Staking operations 0x0200...0014Yield -- Yield operations 0x0200...0015Perps -- Perpetuals operations
Address Name Purpose 0x0200...0300Attestation GPU/TEE hardware attestation for AI mining
Address Name Interface Gas Purpose 0x0501Poseidon2 IHash.sol~20K ZK-friendly hash 0x0502Poseidon2Sponge IHash.sol~25K Variable-length Poseidon2 0x0503Pedersen IHash.sol~30K BN254 curve commitment 0x0504Blake3 IHash.sol~5K High-performance hash
import "@luxfi/contracts/precompile/interfaces/IHash.sol" ;
// Poseidon2 hash (ZK-friendly, post-quantum safe)
bytes32 hash = IHash ( 0x0501 ). hash ( abi . encode (left, right));
Address Name Interface Purpose 0x0900ZKVerify IZK.solGeneric ZK verification 0x0901Groth16 IZK.solGroth16 proof verification 0x0902PLONK IZK.solPLONK proof verification 0x0903fflonk IZK.solfflonk proof verification 0x0904Halo2 IZK.solHalo2 proof verification 0x0910KZG IZK.solKZG polynomial commitments 0x0912IPA IZK.solInner Product Arguments 0x0920PrivacyPool IZK.solConfidential pool operations 0x0921Nullifier IZK.solNullifier verification 0x0922Commitment IZK.solCommitment verification 0x0923RangeProof IZK.solBulletproof range proofs 0x0930RollupVerify IZK.solZK rollup batch verification 0x0931StateRoot IZK.solState root verification 0x0932BatchProof IZK.solBatch proof aggregation
Address Name Interface Purpose 0x0000...0000DeadZero IDead.solZero address intercept 0x0000...dEaDDeadShort IDead.solCommon dead address 0xdEaD...0000DeadFull IDead.solFull dead prefix
Tokens sent to dead addresses are split: 50% burned (deflationary) and 50% sent to the DAO treasury as Protocol-Owned Liquidity.
Precompile Gas (3-of-5) Signature Size FROST 75,000 64 bytes CGGMP21 125,000 65 bytes Ringtail 200,000 ~4 KB ML-DSA 100,000 3,309 bytes BLS (Warp) 120,000 96 bytes