Mercury EVM: Seismic's Custom Execution Engine
Ethereum's EVM has been the foundation of smart contracts since 2015. Its execution model, storage slots and opcode based design are familiar across the entire ecosystem.
Seismic extended that model with Mercury.
Mercury is Seismic's custom EVM specification, the execution engine that brings privacy directly into contract execution.
Not a layer on top. not a wrapper. a different version of the EVM itself.
The core change is storage.
Standard EVM has one storage type. public.
Contract storage is transparent by design and there is no VM-level private storage flag.
SLOAD and SSTORE operate on this public storage model.
No private slots. no confidential access rules. complete transparency by default.
Mercury introduces two storage types: public and private, with separate opcodes to match.
SLOAD / SSTORE โ unchanged. standard public storage, identical to Ethereum.
CLOAD (0xB0) / CSTORE (0xB1) โ new confidential aware storage opcodes.
CLOAD works within Mercury's flagged storage model and can handle both public and private slots. CSTORE is the private storage write path.
Access rules are enforced at the VM level:
โ SLOAD attempting to read a private slot causes the transaction to HALT
โ SSTORE cannot write to private slots
โ Once a slot becomes private via CSTORE, it cannot be flipped back to public
Privacy is a one way door.
Gas costs for CLOAD and CSTORE are flat, set to the maximum SLOAD / SSTORE could ever cost.
This is a deliberate privacy property. variable gas costs would let observers infer information about private values by analyzing gas consumption.
Flat costs close that side channel.
Mercury also adds 6 new precompiles that do not exist in standard EVM:
โ 0x64 RNG
โ 0x65 ECDH
โ 0x66 AES-GCM Encryption
โ 0x67 AES-GCM Decryption
โ 0x68 HKDF
โ 0x69 SECP256K1 Signature
These precompiles make Seismic's cryptographic stack available natively inside contracts.
No external libraries. no offchain calls.
ECDH, AES-GCM and HKDF are all callable directly from Solidity at fixed addresses.
Mercury is designed as a minimal diff against standard EVM.
Only what had to change was changed.
Everything else stays compatible: Foundry, Viem, Reth and standard Solidity syntax.
The privacy layer is additive, not a replacement of the developer experience.