An essential part of Abstract as a ZK rollup is the smart contracts deployed to Ethereum (L1) that store and verify information about the state of the L2.

By having these smart contracts deployed and performing these essential roles on the L1, Abstract inherits the security properties of Ethereum.

These smart contracts work together to:

  • Store the state diffs and compressed contract bytecode published from the L2 using blobs.
  • Receive and verify the validity proofs posted by the L2.
  • Facilitate communication between L1 and L2 to enable cross-chain messaging and bridging.

List of Abstract Contracts

Below is a list of the smart contracts that Abstract uses.

L1 Contracts

Mainnet

ContractAddress
L2 Operator (collects fees)0x459a5f1d4cfb01876d5022ae362c104034aabff9
L1 ETH Sender / Operator (Commits batches)0x11805594be0229ef08429d775af0c55f7c4535de
L1 ETH Sender / Operator (Prove and Execute batches)0x54ab716d465be3d5eeca64e63ac0048d7a81659a
Governor Address (ChainAdmin owner)0x7F3EaB9ccf1d8B9705F7ede895d3b4aC1b631063
create2_factory_addr0xce0042b868300000d44a59004da54a005ffdcf9f
create2_factory_salt0x8c8c6108a96a14b59963a18367250dc2042dfe62da8767d72ffddb03f269ffcc
BridgeHub Proxy Address0x303a465b659cbb0ab36ee643ea362c509eeb5213
State Transition Proxy Address0xc2ee6b6af7d616f6e27ce7f4a451aedc2b0f5f5c
Transparent Proxy Admin Address0xc2a36181fb524a6befe639afed37a67e77d62cf1
Validator Timelock Address0x5d8ba173dc6c3c90c8f7c04c9288bef5fdbad06e
ERC20 Bridge L1 Address0x57891966931eb4bb6fb81430e6ce0a03aabde063
Shared Bridge L1 Address0xd7f9f54194c633f36ccd5f3da84ad4a1c38cb2cb
Default Upgrade Address0x4d376798ba8f69ced59642c3ae8687c7457e855d
Diamond Proxy Address0x2EDc71E9991A962c7FE172212d1aA9E50480fBb9
Multicall3 Address0xca11bde05977b3631167028862be2a173976ca11
Verifier Address0x70f3fbf8a427155185ec90bed8a3434203de9604
Chain Admin Address0xA1f75f491f630037C4Ccaa2bFA22363CEC05a661

Testnet

ContractAddress
L1 ETH Sender / Operator (Commits batches)0x564D33DE40b1af31aAa2B726Eaf9Dafbaf763577
L1 ETH Sender / Operator (Prove and Execute batches)0xcf43bdB3115547833FFe4D33d864d25135012648
Governor Address (ChainAdmin owner)0x397aa1340B514cB3EF8F474db72B7e62C9159C63
create2_factory_addr0xce0042b868300000d44a59004da54a005ffdcf9f
create2_factory_salt0x8c8c6108a96a14b59963a18367250dc2042dfe62da8767d72ffddb03f269ffcc
BridgeHub Proxy Address0x35a54c8c757806eb6820629bc82d90e056394c92
State Transition Proxy Address0x4e39e90746a9ee410a8ce173c7b96d3afed444a5
Transparent Proxy Admin Address0x0358baca94dcd7931b7ba7aaf8a5ac6090e143a5
Validator Timelock Address0xd3876643180a79d0a56d0900c060528395f34453
ERC20 Bridge L1 Address0x2ae09702f77a4940621572fbcdae2382d44a2cba
Shared Bridge L1 Address0x3e8b2fe58675126ed30d0d12dea2a9bda72d18ae
Default Upgrade Address0x27a7f18106281fe53d371958e8bc3f833694d24a
Diamond Proxy Address0x8ad52ff836a30f063df51a00c99518880b8b36ac
Governance Address0x15d049e3d24fbcd53129bf7781a0c6a506690ff2
Multicall3 Address0xca11bde05977b3631167028862be2a173976ca11
Verifier Address0xac3a2dc46cea843f0a9d6554f8804aed18ff0795
Chain Admin Address0xEec1E1cFaaF993B3AbE9D5e78954f5691e719838

L2 Contracts

Mainnet

ContractAddress
ERC20 Bridge L2 Address0x954ba8223a6BFEC1Cc3867139243A02BA0Bc66e4
Shared Bridge L2 Address0x954ba8223a6BFEC1Cc3867139243A02BA0Bc66e4
Default L2 Upgrader0xd3A8626C3caf69e3287D94D43700DB25EEaCccf1

Testnet

ContractAddress
ERC20 Bridge L2 Address0xec089e40c40b12dd4577e0c5381d877b613040ec
Shared Bridge L2 Address0xec089e40c40b12dd4577e0c5381d877b613040ec