Skip to main content

Precompiles

Fluent installs a fixed set of system precompiles at genesis. Each entry below is a callable address with a specific role: dispatching execution to a delegated runtime, verifying a cryptographic primitive, gating a privileged operation, or providing a standard EVM service. The constants come from fluentbase/crates/types/src/genesis.rs; the contract code that backs each address lives in fluentbase/contracts/<dir>/.

User contracts on Fluent — Solidity, Rust/Wasm, Universal Token — route their execution into one of the delegated runtime dispatchers below. Solidity and Universal Token contracts are stored as ownable accounts (0xEF44 magic prefix) that hold a pointer to the dispatcher plus runtime metadata; Wasm contracts are stored as compiled rWasm directly (0xEF52 magic prefix) after the executor's deploy-time rewrite. The dispatcher's address holds the runtime bytecode either way. See Runtime Routing and Ownable Accounts for the full mechanism.

Addresses are identical across testnet, mainnet, and devnet. Authority addresses default to the values shown below at genesis, but live networks rotate them — treat the defaults as starting points, not current values.

💡Tip

On-chain state for any precompile address can be inspected on Fluentscan. The protocol source-of-truth for these constants is fluentbase/crates/types/src/genesis.rs.

Delegated runtime dispatchers

Calls to these addresses are not handled by deployed bytecode at the address itself. They are dispatchers: the executor loads the runtime's code, runs it, and the call's storage domain stays at the caller's account. See Runtime Routing and Ownable Accounts for the mechanism.

AddressConstantStatus
0x0000000000000000000000000000000000520001PRECOMPILE_EVM_RUNTIMEActive — see EVM Runtime
0x0000000000000000000000000000000000520003PRECOMPILE_SVM_RUNTIMEReserved — feature-gated, not currently active in mainnet build
0x0000000000000000000000000000000000520008PRECOMPILE_UNIVERSAL_TOKEN_RUNTIMEActive — see Universal Token Runtime
0x0000000000000000000000000000000000520009PRECOMPILE_WASM_RUNTIMEActive — see WASM Runtime

Verifier precompiles

Reserved addresses for cryptographic verification primitives that have not yet been activated. Each address has stub bytecode installed at genesis but a call returns an unreachable-code error today. Documentation will follow activation.

AddressConstantStatus
0x0000000000000000000000000000000000520005PRECOMPILE_WEBAUTHN_VERIFIERReserved — not yet active. Documentation will follow activation.
0x0000000000000000000000000000000000520006PRECOMPILE_OAUTH2_VERIFIERReserved — not yet active.
0x0000000000000000000000000000000000520007PRECOMPILE_NITRO_VERIFIERReserved — not yet active. Note: Nitro attestation is already used internally by the rollup preconfirmation flow — see Rollup Architecture. The verifier precompile address itself is not yet callable.

System contracts

Privileged contracts that gate runtime upgrades, fee withdrawal, deterministic deployment, and cross-domain settlement. Each has a Solidity-style ABI and an authority owner.

AddressConstantPurpose
0x0000000000000000000000000000000000520010PRECOMPILE_RUNTIME_UPGRADEReplaces the bytecode of a delegated runtime — see Runtime Upgrade Precompile
0x0000000000000000000000000000000000520feePRECOMPILE_FEE_MANAGERWithdraws accumulated protocol fees — see Fee Manager
0x9CAcf613fC29015893728563f423fD26dCdB8DdcPRECOMPILE_ROLLUP_BRIDGECross-chain settlement — see Bridge Architecture
0x4e59b44847b379578588920cA78FbF26c0B4956CPRECOMPILE_CREATE2_FACTORYDeterministic deployment proxy — see CREATE2 Factory

EIP-deployed system contracts

EIP-track precompiles deployed at protocol-specified addresses. Implementations live in fluentbase/contracts/ like the rest, but their addresses are dictated by the EIP, not by Fluent's 0x520xxx reservation range.

AddressConstantPurpose
0x0000F90827F1C53a10cb7A02335B175320002935PRECOMPILE_EIP2935Historical block-hash ring buffer (Prague) — see EIP-2935 Block Hash Service
0x0000000000000000000000000000000000000100PRECOMPILE_EIP7951secp256r1 (P-256) signature verification — see secp256r1 Signature Verification

Standard EVM precompiles

Fluent ships every standard Ethereum precompile from 0x01 to 0x11 — ecrecover, sha256, ripemd160, identity, modular exponentiation, BN254 curve operations, BLAKE2 compression, KZG point evaluation, and the BLS12-381 family. See Standard EVM Precompiles for the full list and any Fluent-specific notes.

Authority addresses

Two privileged keys exist at genesis. Both default to the same address; both are intended to be rotated immediately on a live chain (typically to a multisig). The defaults are documented for reference, not as current operational values.

ConstantDefault addressPurpose
DEFAULT_UPDATE_GENESIS_AUTH0xa7bf6a9168fe8a111307b7c94b8883fe02b30934Initial owner of PRECOMPILE_RUNTIME_UPGRADE. Rotated on live networks.
DEFAULT_FEE_MANAGER_AUTH0xa7bf6a9168fe8a111307b7c94b8883fe02b30934Initial owner of PRECOMPILE_FEE_MANAGER. Rotated on live networks.