Predeploys
Predeploys are real accounts with real bytecode, present from genesis at fixed addresses. They differ from precompiles, which are implemented natively by the client and have no code.
Developer-facing
Section titled “Developer-facing”| Address | Contract | Purpose |
|---|---|---|
0x4e59b44847b379578588920cA78FbF26c0B4956C | CREATE2 factory | The EIP-7997 deterministic deployment proxy. Counterfactual account addresses are defined against it, and any CREATE2 deployment pattern works without deploying a factory first. |
0xca11bde05977b3631167028862be2a173976ca11 | Multicall3 | The standard batch-read contract, at its canonical address. Works with every library that expects it. |
Both are at the same addresses they occupy on other EVM chains, so tooling that hardcodes them works unmodified.
EIP-8141 infrastructure
Section titled “EIP-8141 infrastructure”| Address | Name | Purpose |
|---|---|---|
0x…00aa | Frame entry point | The caller that frame execution presents to an account. Account contracts dispatch on CALLER == 0x…aa to distinguish a frame invocation from an ordinary call. |
0x…8141 | Frame expiry verifier | A canonical VERIFY-frame target that enforces a deadline. Its data is exactly 8 bytes — a big-endian expiry timestamp — and it reverts once that time has passed. At most one such frame per transaction, with zero flags and zero value. |
The expiry verifier is a small, general facility: it gives any account a way to make a signed transaction stop being valid after a deadline, without the account having to implement time logic itself.
Full addresses: 0x00000000000000000000000000000000000000aa and
0x0000000000000000000000000000000000008141.
Ethereum system contracts
Section titled “Ethereum system contracts”Present at their standard addresses, as required by the forks Frost activates at genesis.
| Address | Contract | EIP |
|---|---|---|
0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02 | Beacon roots | EIP-4788 |
0x0000F90827F1C53a10cb7A02335B175320002935 | History storage | EIP-2935 |
0x00000961Ef480Eb55e80D19ad83579A64c007002 | Withdrawal queue | EIP-7002 |
0x0000BBdDc7CE488642fb579F8B00f3a590007251 | Consolidation queue | EIP-7251 |
System address
Section titled “System address”0xfffffffffffffffffffffffffffffffffffffffe is the caller the protocol itself
uses to invoke system contracts at block boundaries. It is not an account you
can control or send from.
Checking a predeploy
Section titled “Checking a predeploy”curl -s https://rpc.frostfi.net -H 'content-type: application/json' \ --data '{"jsonrpc":"2.0","id":1,"method":"eth_getCode", "params":["0x4e59b44847b379578588920cA78FbF26c0B4956C","latest"]}'A non-empty result confirms the contract is live.
See also
Section titled “See also”- Precompiled contracts — the natively implemented contracts at low addresses.
- Account contracts — the account family deployed through the CREATE2 factory.