System Contracts
System contracts are a set of pre-deployed smart contracts on Citrea that are responsible for the core functionalities. These contracts are embedded in the genesis state. They contain functions that can only be processed through a system transaction, in addition to regular functions that can be called by any address.
System contracts are also audited under Citrea and Clementine - you can find the reports at https://docs.citrea.xyz/security/audits-inquiries section.
0x3100000000000000000000000000000000000001
0x3100000000000000000000000000000000000002
0x3100000000000000000000000000000000000003
0x3100000000000000000000000000000000000004
0x3100000000000000000000000000000000000005
0x3100000000000000000000000000000000000006
0x3100000000000000000000000000000000000007
0x3200000000000000000000000000000000000001
0x3200000000000000000000000000000000000002
0x3200000000000000000000000000000000000003
0x3200000000000000000000000000000000000004
0x3200000000000000000000000000000000000005
0x3200000000000000000000000000000000000007
0x31ffffffffffffffffffffffffffffffffffffff
In this section we're going over three main system smart contracts of Citrea:

System Transactions
System transactions originate from a hardcoded address with no private key:
Finding the corresponding private key is a 1-in-2^160 problem, which is practically impossible within the lifetime of the universe.
The sequencer prepares the calls and injects them at the start of every block. They spend no balance from the sender, but their gas consumption still counts toward the block gas limit (which is 10 million).
Typical system transactions include the one-time bootstraps
as well as the per-Bitcoin-block maintenance call
and the bridge’s deposit handler:
Because their inclusion is enforced, these transactions are deterministic and cannot be censored by external actors even though no private key signs them.
Last updated
Was this helpful?