1e8c379b (main)
and
0ac6e5b6 (PR)
+1 -1
+1 -1
{
"baseTimestamp": 1783513569,
"baseTimestamp": 1783679422,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+48 -48
+48 -48
{
"creator": "Matter Labs",
"projectsForTvs": [
{
"projectId": "zklinknova",
"sinceTimestamp": 1709217961
},
{
"projectId": "zksync2",
"sinceTimestamp": 1689544800
},
{
"projectId": "abstract",
"sinceTimestamp": 1737932400
},
{
"projectId": "sophon",
"sinceTimestamp": 1734476400
},
{
"projectId": "cronoszkevm",
"sinceTimestamp": 1723672800
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1731366000
},
{
"projectId": "lens",
"sinceTimestamp": 1743717600
},
{
"projectId": "wonder",
"sinceTimestamp": 1746741600
},
{
"projectId": "zkcandy",
"sinceTimestamp": 1743976800
},
{
"projectId": "grvt",
"sinceTimestamp": 1734649200
},
{
"projectId": "lachain",
"sinceTimestamp": 1747692000
}
],
"proofSystemInfo": "## Description\n\nBoojum is a proving system operating on [EraVM](https://matter-labs.github.io/zksync-era/core/latest/guides/advanced/12_alternative_vm_intro.html) ISA and supporting [zk stack](https://zkstack.io) chains. It includes recursive STARK proving of zkVM execution, as well as the final wrap with [Plonk](https://github.com/matter-labs/franklin-crypto/tree/dev/src/plonk) or [Fflonk](https://github.com/matter-labs/zksync-crypto/blob/main/crates/fflonk/docs/spec.pdf) SNARK proving system. Boojum targets [100 bits of security](https://github.com/matter-labs/era-boojum?tab=readme-ov-file#for-curions-in-benchmarks-only).\n\n## Proof system\n\n### zkVM component\n\n[Boojum](https://github.com/matter-labs/era-boojum/tree/main)'s core is an implementation of the [**Redshift**](https://eprint.iacr.org/2019/1400.pdf) protocol which uses the Plonk IOP with a polynomial commitment scheme based on List Polynomial Commitments (LPCs), which is in turn based on FRI, making the scheme transparent. The scheme makes use of the Goldilocks field, which is much smaller than BN254's field. This part of boojum implements a zkVM for EraVM, which is closely aligned with EVM but has essential differences like 16 registers.\n\n### Recursion circuits\n\nThe protocol makes use of several layers of recursive proof aggregation for 15 types of [circuits](https://github.com/matter-labs/era-zkevm_test_harness/blob/3cd647aa57fc2e1180bab53f7a3b61ec47502a46/circuit_definitions/src/circuit_definitions/recursion_layer/mod.rs#L29). In particular, node and scheduler circuits aggregate zk proofs and compressor and wrapper circuits reduce the final proof size. Further information about the aggregation architecture can be found [**here**](https://github.com/matter-labs/zksync-era/blob/1b61d0797062ab8b0aa2c1e92b23a3a0d8fd2c61/docs/guides/advanced/15_prover_keys.md#circuits).\n\n### Final wrap\n\nThe final proof could either be wrapped into a [Plonk](https://github.com/matter-labs/era-zkevm_test_harness/blob/3cd647aa57fc2e1180bab53f7a3b61ec47502a46/circuit_definitions/src/circuit_definitions/aux_layer/wrapper.rs)+KZG proof, or into [Fflonk](https://github.com/matter-labs/zksync-crypto/tree/main/crates/fflonk)+KZG for cheap verification. The KZG commitment is done over BN254 curve and it uses Aztec Ignition trusted setup ceremony, see [below](#trusted-setups) for more details.",
"techStack": {
"zkVM": [
{
"id": "Boojum",
"type": "STARK",
"name": "Boojum",
"description": "zkVM STARK proving system developed by Matter Labs for proving state transition of ZKsync Era."
},
{
"id": "EraVM",
"type": "ISA",
"name": "EraVM",
"description": "Instruction language for ZKsync Era virtual machine."
},
{
"id": "Goldilocks",
"type": "Field",
"name": "Goldilocks",
"description": "Prime field of order p = 2**64 - 2**32 + 1."
}
],
"finalWrap": [
{
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
{
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"participantCount": 176,
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": "Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \nIt included 176 participants and was publicly open for participation.\n\n- Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n- Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n- Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition)."
},
{
"proofSystem": {
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"participantCount": 176,
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": "Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \nIt included 176 participants and was publicly open for participation.\n\n- Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n- Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n- Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition)."
}
],
"verifierHashes": [
{
"hash": "0x6f36a08c517b060fa97308cdb3e23b04842ff839d451a753ec8fae1a5408304a",
"name": "Boojum Fflonk core-v29.1.0",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/core-v29.1.0/prover",
"hash": "0x8574e152c41dc39a2ecab984545e1cf21cb3ec250b919018a8053f2fa270784f",
"name": "Boojum Plonk zkLinkNova verifier",
"proofSystem": {
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "eth:0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911"
"address": "linea:0x902C3806A84f4e855a8746e92d7F1C9a51400458"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "Verification requires an Ubuntu 22.04 machine with an NVIDIA GPU. We used a g6.4xlarge aws instance with 24 GiB GPU memory and 64 GiB RAM. \nThe setup part is based on [this guide](https://paragraph.com/@zksync/from-integration-to-verification-completing-the-first-steps-in-zksync-s-prover-network) with modifications, the verification is done using [this script](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri).\n\n1. Install rust, yarn, some essential libraries, docker and cmake:\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash\nexport NVM_DIR=$HOME/.nvm\n. .bashrc\nnvm install 20\nnpm install -g yarn\nyarn set version 1.22.19\n\nsudo apt-get update\nsudo apt-get install -y build-essential pkg-config cmake clang lldb lld libssl-dev postgresql apt-transport-https ca-certificates curl software-properties-common\ncargo install sqlx-cli --version 0.8.1\n\n# install the latest version of cmake\nsudo apt remove cmake\ncurl -fsSL https://apt.kitware.com/kitware-archive.sh | sudo sh\nsudo apt-get install cmake\n```\n\n2. Install CUDA drivers and toolkit 12.2, export necessary env vars. On Ubuntu 22.04 this requires updating gcc to version 12.\n\n```\nsudo apt-get install gcc-12 g++-12\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100\nsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100\n\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get install -y cuda-drivers-535\nsudo apt-get install -y cuda-toolkit-12-2\n```\n\nReboot the machine to apply the drivers.\n\n3. Install `foundryup-zksync`.\n\n```\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\n. ~/.bashrc\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\n```\nexport CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64\nexport PATH=$PATH:$CUDA_HOME/bin\n\ngit clone https://github.com/matter-labs/era-bellman-cuda.git\ncd era-bellman-cuda\ngit checkout prerelease-dev-a87a309\ngit submodule update --init --recursive\ncmake -B./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\nexport BELLMAN_CUDA_DIR=$HOME/era-bellman-cuda\n```\n\n5. Run all scripts to regenerate verification keys. The correct tag version of the repo is `core-v29.1.0`, commit hash `3b61f62b3361404c0c94635caee68c855ce2b9f8`.\n```\ncd ~ \ngit clone https://github.com/matter-labs/zksync-era.git\ncd zksync-era/\ngit checkout core-v29.1.0\n\n# Download compact CRS for the compressor data step, put in repo root\ncurl -o setup_compact.key https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_compact.key\nexport COMPACT_CRS_FILE=~/zksync-era/setup_compact.key\n\ncd prover/crates/bin/vk_setup_data_generator_server_fri\nCRS_FILE=https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_2^24.key ZKSYNC_HOME=$HOME \n\n# Run regeneration steps\ncargo run --release --bin key_generator generate-vk\ncargo run --features gpu --release --bin key_generator generate-compressor-data\n```\n\nThe output of the last command will contain the required `fflonk_snark_wrapper` value."
"verificationStatus": "notVerified"
},
{
"hash": "0x64b347c642ea60114c98b3976124ea8a7e0bb778bd7e479aedc02f994486c8a1",
"name": "Boojum Plonk prover-v22.0.0",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/prover-v22.0.0/prover",
"hash": "0xb2f50340e0edbe49dc657d4eb298e07f13860c1be0fe2e438e44ef8fad133d84",
"name": "Boojum Plonk core-v29.11.1",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/core-v29.11.1/prover",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "eth:0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6"
"address": "eth:0x7f33D100f482093182111d69a4a457289e99f4ec"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "Verification requires an Ubuntu 22.04 machine with an NVIDIA GPU. We used a g6.4xlarge aws instance with 24 GiB GPU memory and 64 GiB RAM. \nThe setup part is based on [this guide](https://paragraph.com/@zksync/from-integration-to-verification-completing-the-first-steps-in-zksync-s-prover-network) with modifications, the verification is done using [this script](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri).\n\n1. Install rust, yarn, some essential libraries, docker and cmake:\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash\nexport NVM_DIR=$HOME/.nvm\n. .bashrc\nnvm install 20\nnpm install -g yarn\nyarn set version 1.22.19\n\nsudo apt-get update\nsudo apt-get install -y build-essential pkg-config cmake clang lldb lld libssl-dev postgresql apt-transport-https ca-certificates curl software-properties-common\ncargo install sqlx-cli --version 0.8.1\n\n# install the latest version of cmake\nsudo apt remove cmake\ncurl -fsSL https://apt.kitware.com/kitware-archive.sh | sudo sh\nsudo apt-get install cmake\n```\n\n2. Install CUDA drivers and toolkit 12.2, export necessary env vars. On Ubuntu 22.04 this requires updating gcc to version 12.\n\n```\nsudo apt-get install gcc-12 g++-12\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100\nsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100\n\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get install -y cuda-drivers-535\nsudo apt-get install -y cuda-toolkit-12-2\n```\n\nReboot the machine to apply the drivers.\n\n3. Install `foundryup-zksync`.\n\n```\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\n. ~/.bashrc\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\n```\nexport CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64\nexport PATH=$PATH:$CUDA_HOME/bin\n\ngit clone https://github.com/matter-labs/era-bellman-cuda.git\ncd era-bellman-cuda\ngit checkout prerelease-dev-a87a309\ngit submodule update --init --recursive\ncmake -B./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\nexport BELLMAN_CUDA_DIR=$HOME/era-bellman-cuda\n```\n\n5. Run all scripts to regenerate verification keys. The correct tag version of the repo is `prover-v22.0.0`, commit hash `157045b4f67546629fc2f7fb32cbbcb4daa2054d`.\n```\ncd ~ \ngit clone https://github.com/matter-labs/zksync-era.git\ncd zksync-era/\ngit checkout prover-v22.0.0\n\n# Download compact CRS for the compressor data step, put in repo root\ncurl -o setup_compact.key https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_compact.key\nexport COMPACT_CRS_FILE=~/zksync-era/setup_compact.key\n\ncd prover/crates/bin/vk_setup_data_generator_server_fri\nCRS_FILE=https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_2^24.key ZKSYNC_HOME=$HOME \n\n# Run regeneration steps\ncargo run --release --bin key_generator generate-vk\ncargo run --features gpu --release --bin key_generator generate-compressor-data\n```\n\nThe output of the last command will contain the required `snark_wrapper` value."
"verificationSteps": "Verification requires an Ubuntu 22.04 machine with an NVIDIA GPU. We used a g6.4xlarge aws instance with 24 GiB GPU memory and 64 GiB RAM. \nThe setup part is based on [this guide](https://paragraph.com/@zksync/from-integration-to-verification-completing-the-first-steps-in-zksync-s-prover-network) with modifications, the verification is done using [this script](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri).\n\n1. Install rust, yarn, some essential libraries, docker and cmake:\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash\nexport NVM_DIR=$HOME/.nvm\n. .bashrc\nnvm install 20\nnpm install -g yarn\nyarn set version 1.22.19\n\nsudo apt-get update\nsudo apt-get install -y build-essential pkg-config cmake clang lldb lld libssl-dev postgresql apt-transport-https ca-certificates curl software-properties-common\ncargo install sqlx-cli --version 0.8.1\n\n# install the latest version of cmake\nsudo apt remove cmake\ncurl -fsSL https://apt.kitware.com/kitware-archive.sh | sudo sh\nsudo apt-get install cmake\n```\n\n2. Install CUDA drivers and toolkit 12.2, export necessary env vars. On Ubuntu 22.04 this requires updating gcc to version 12.\n\n```\nsudo apt-get install gcc-12 g++-12\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100\nsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100\n\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get install -y cuda-drivers-535\nsudo apt-get install -y cuda-toolkit-12-2\n```\n\nReboot the machine to apply the drivers.\n\n3. Install `foundryup-zksync`.\n\n```\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\n. ~/.bashrc\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\n```\nexport CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64\nexport PATH=$PATH:$CUDA_HOME/bin\n\ngit clone https://github.com/matter-labs/era-bellman-cuda.git\ncd era-bellman-cuda\ngit checkout prerelease-dev-a87a309\ngit submodule update --init --recursive\ncmake -B./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\nexport BELLMAN_CUDA_DIR=$HOME/era-bellman-cuda\n```\n\n5. Run all scripts to regenerate verification keys. The correct tag version of the repo is `core-v29.11.1`, commit hash `3f71cb2230fb9c365c095ce7bcf3373ea63fbec2`.\n```\ncd ~ \ngit clone https://github.com/matter-labs/zksync-era.git\ncd zksync-era/\ngit checkout core-v29.11.1\n\n# Download compact CRS for the compressor data step, put in repo root\ncurl -o setup_compact.key https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_compact.key\nexport COMPACT_CRS_FILE=~/zksync-era/setup_compact.key\n\ncd prover/crates/bin/vk_setup_data_generator_server_fri\nCRS_FILE=https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_2^24.key ZKSYNC_HOME=$HOME \n\n# Run regeneration steps\ncargo run --release --bin key_generator generate-vk\ncargo run --features gpu --release --bin key_generator generate-compressor-data\n```\n\nThe output of the last command will contain the required `snark_wrapper` value."
},
{
"hash": "0x8574e152c41dc39a2ecab984545e1cf21cb3ec250b919018a8053f2fa270784f",
"name": "Boojum Plonk zkLinkNova verifier",
"hash": "0xc8cd705a0db89577146137de78eba6bd1f1c9c3f66dc52f7627e7c2df30895b2",
"name": "Boojum Fflonk core-v29.11.1",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/core-v29.11.1/prover",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"knownDeployments": [
{
"address": "linea:0x902C3806A84f4e855a8746e92d7F1C9a51400458"
"address": "eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442"
}
],
"verificationStatus": "notVerified"
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "Verification requires an Ubuntu 22.04 machine with an NVIDIA GPU. We used a g6.4xlarge aws instance with 24 GiB GPU memory and 64 GiB RAM. \nThe setup part is based on [this guide](https://paragraph.com/@zksync/from-integration-to-verification-completing-the-first-steps-in-zksync-s-prover-network) with modifications, the verification is done using [this script](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri).\n\n1. Install rust, yarn, some essential libraries, docker and cmake:\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash\nexport NVM_DIR=$HOME/.nvm\n. .bashrc\nnvm install 20\nnpm install -g yarn\nyarn set version 1.22.19\n\nsudo apt-get update\nsudo apt-get install -y build-essential pkg-config cmake clang lldb lld libssl-dev postgresql apt-transport-https ca-certificates curl software-properties-common\ncargo install sqlx-cli --version 0.8.1\n\n# install the latest version of cmake\nsudo apt remove cmake\ncurl -fsSL https://apt.kitware.com/kitware-archive.sh | sudo sh\nsudo apt-get install cmake\n```\n\n2. Install CUDA drivers and toolkit 12.2, export necessary env vars. On Ubuntu 22.04 this requires updating gcc to version 12.\n\n```\nsudo apt-get install gcc-12 g++-12\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100\nsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100\n\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get install -y cuda-drivers-535\nsudo apt-get install -y cuda-toolkit-12-2\n```\n\nReboot the machine to apply the drivers.\n\n3. Install `foundryup-zksync`.\n\n```\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\n. ~/.bashrc\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\n```\nexport CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64\nexport PATH=$PATH:$CUDA_HOME/bin\n\ngit clone https://github.com/matter-labs/era-bellman-cuda.git\ncd era-bellman-cuda\ngit checkout prerelease-dev-a87a309\ngit submodule update --init --recursive\ncmake -B./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\nexport BELLMAN_CUDA_DIR=$HOME/era-bellman-cuda\n```\n\n5. Run all scripts to regenerate verification keys. The correct tag version of the repo is `core-v29.11.1`, commit hash `3f71cb2230fb9c365c095ce7bcf3373ea63fbec2`.\n```\ncd ~ \ngit clone https://github.com/matter-labs/zksync-era.git\ncd zksync-era/\ngit checkout core-v29.11.1\n\n# Download compact CRS for the compressor data step, put in repo root\ncurl -o setup_compact.key https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_compact.key\nexport COMPACT_CRS_FILE=~/zksync-era/setup_compact.key\n\ncd prover/crates/bin/vk_setup_data_generator_server_fri\nCRS_FILE=https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_2^24.key ZKSYNC_HOME=$HOME \n\n# Run regeneration steps\ncargo run --release --bin key_generator generate-vk\ncargo run --features gpu --release --bin key_generator generate-compressor-data\n```\n\nThe output of the last command will contain the required `fflonk_snark_wrapper` value."
},
{
"hash": "0xb2f50340e0edbe49dc657d4eb298e07f13860c1be0fe2e438e44ef8fad133d84",
"name": "Boojum Plonk core-v29.11.1",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/core-v29.11.1/prover",
"hash": "0x49eae0bf5c7ea580f4979b366e52b386adc5f42e2ce50fc1d3c4de9a86052bff",
"name": "Boojum Fflonk core-v29.4.0",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/core-v29.4.0/prover",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"knownDeployments": [
{
"address": "eth:0x7f33D100f482093182111d69a4a457289e99f4ec"
"address": "eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "Verification requires an Ubuntu 22.04 machine with an NVIDIA GPU. We used a g6.4xlarge aws instance with 24 GiB GPU memory and 64 GiB RAM. \nThe setup part is based on [this guide](https://paragraph.com/@zksync/from-integration-to-verification-completing-the-first-steps-in-zksync-s-prover-network) with modifications, the verification is done using [this script](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri).\n\n1. Install rust, yarn, some essential libraries, docker and cmake:\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash\nexport NVM_DIR=$HOME/.nvm\n. .bashrc\nnvm install 20\nnpm install -g yarn\nyarn set version 1.22.19\n\nsudo apt-get update\nsudo apt-get install -y build-essential pkg-config cmake clang lldb lld libssl-dev postgresql apt-transport-https ca-certificates curl software-properties-common\ncargo install sqlx-cli --version 0.8.1\n\n# install the latest version of cmake\nsudo apt remove cmake\ncurl -fsSL https://apt.kitware.com/kitware-archive.sh | sudo sh\nsudo apt-get install cmake\n```\n\n2. Install CUDA drivers and toolkit 12.2, export necessary env vars. On Ubuntu 22.04 this requires updating gcc to version 12.\n\n```\nsudo apt-get install gcc-12 g++-12\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100\nsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100\n\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get install -y cuda-drivers-535\nsudo apt-get install -y cuda-toolkit-12-2\n```\n\nReboot the machine to apply the drivers.\n\n3. Install `foundryup-zksync`.\n\n```\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\n. ~/.bashrc\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\n```\nexport CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64\nexport PATH=$PATH:$CUDA_HOME/bin\n\ngit clone https://github.com/matter-labs/era-bellman-cuda.git\ncd era-bellman-cuda\ngit checkout prerelease-dev-a87a309\ngit submodule update --init --recursive\ncmake -B./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\nexport BELLMAN_CUDA_DIR=$HOME/era-bellman-cuda\n```\n\n5. Run all scripts to regenerate verification keys. The correct tag version of the repo is `core-v29.11.1`, commit hash `3f71cb2230fb9c365c095ce7bcf3373ea63fbec2`.\n```\ncd ~ \ngit clone https://github.com/matter-labs/zksync-era.git\ncd zksync-era/\ngit checkout core-v29.11.1\n\n# Download compact CRS for the compressor data step, put in repo root\ncurl -o setup_compact.key https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_compact.key\nexport COMPACT_CRS_FILE=~/zksync-era/setup_compact.key\n\ncd prover/crates/bin/vk_setup_data_generator_server_fri\nCRS_FILE=https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_2^24.key ZKSYNC_HOME=$HOME \n\n# Run regeneration steps\ncargo run --release --bin key_generator generate-vk\ncargo run --features gpu --release --bin key_generator generate-compressor-data\n```\n\nThe output of the last command will contain the required `snark_wrapper` value."
"verificationSteps": "Verification requires an Ubuntu 22.04 machine with an NVIDIA GPU. We used a g6.4xlarge aws instance with 24 GiB GPU memory and 64 GiB RAM. \nThe setup part is based on [this guide](https://paragraph.com/@zksync/from-integration-to-verification-completing-the-first-steps-in-zksync-s-prover-network) with modifications, the verification is done using [this script](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri).\n\n1. Install rust, yarn, some essential libraries, docker and cmake:\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash\nexport NVM_DIR=$HOME/.nvm\n. .bashrc\nnvm install 20\nnpm install -g yarn\nyarn set version 1.22.19\n\nsudo apt-get update\nsudo apt-get install -y build-essential pkg-config cmake clang lldb lld libssl-dev postgresql apt-transport-https ca-certificates curl software-properties-common\ncargo install sqlx-cli --version 0.8.1\n\n# install the latest version of cmake\nsudo apt remove cmake\ncurl -fsSL https://apt.kitware.com/kitware-archive.sh | sudo sh\nsudo apt-get install cmake\n```\n\n2. Install CUDA drivers and toolkit 12.2, export necessary env vars. On Ubuntu 22.04 this requires updating gcc to version 12.\n\n```\nsudo apt-get install gcc-12 g++-12\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100\nsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100\n\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get install -y cuda-drivers-535\nsudo apt-get install -y cuda-toolkit-12-2\n```\n\nReboot the machine to apply the drivers.\n\n3. Install `foundryup-zksync`.\n\n```\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\n. ~/.bashrc\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\n```\nexport CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64\nexport PATH=$PATH:$CUDA_HOME/bin\n\ngit clone https://github.com/matter-labs/era-bellman-cuda.git\ncd era-bellman-cuda\ngit checkout prerelease-dev-a87a309\ngit submodule update --init --recursive\ncmake -B./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\nexport BELLMAN_CUDA_DIR=$HOME/era-bellman-cuda\n```\n\n5. Run all scripts to regenerate verification keys. The correct tag version of the repo is `core-v29.4.0`, commit hash `fe0a73730853b291c3c1dd514a42a45625704b7b`.\n```\ncd ~ \ngit clone https://github.com/matter-labs/zksync-era.git\ncd zksync-era/\ngit checkout core-v29.4.0\n\n# Download compact CRS for the compressor data step, put in repo root\ncurl -o setup_compact.key https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_compact.key\nexport COMPACT_CRS_FILE=~/zksync-era/setup_compact.key\n\ncd prover/crates/bin/vk_setup_data_generator_server_fri\nCRS_FILE=https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_2^24.key ZKSYNC_HOME=$HOME \n\n# Run regeneration steps\ncargo run --release --bin key_generator generate-vk\ncargo run --features gpu --release --bin key_generator generate-compressor-data\n```\n\nThe output of the last command will contain the required `fflonk_snark_wrapper` value."
},
{
"hash": "0xc8cd705a0db89577146137de78eba6bd1f1c9c3f66dc52f7627e7c2df30895b2",
"name": "Boojum Fflonk core-v29.11.1",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/core-v29.11.1/prover",
"hash": "0x1ffc56111a5cfaf5db387f6a31408ad20217e9bc1f31f2f5c1bd38b0d6d7968b",
"name": "Boojum Plonk prover-v23.2.0",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/prover-v23.2.0/prover",
"proofSystem": {
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442"
"address": "eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "Verification requires an Ubuntu 22.04 machine with an NVIDIA GPU. We used a g6.4xlarge aws instance with 24 GiB GPU memory and 64 GiB RAM. \nThe setup part is based on [this guide](https://paragraph.com/@zksync/from-integration-to-verification-completing-the-first-steps-in-zksync-s-prover-network) with modifications, the verification is done using [this script](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri).\n\n1. Install rust, yarn, some essential libraries, docker and cmake:\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash\nexport NVM_DIR=$HOME/.nvm\n. .bashrc\nnvm install 20\nnpm install -g yarn\nyarn set version 1.22.19\n\nsudo apt-get update\nsudo apt-get install -y build-essential pkg-config cmake clang lldb lld libssl-dev postgresql apt-transport-https ca-certificates curl software-properties-common\ncargo install sqlx-cli --version 0.8.1\n\n# install the latest version of cmake\nsudo apt remove cmake\ncurl -fsSL https://apt.kitware.com/kitware-archive.sh | sudo sh\nsudo apt-get install cmake\n```\n\n2. Install CUDA drivers and toolkit 12.2, export necessary env vars. On Ubuntu 22.04 this requires updating gcc to version 12.\n\n```\nsudo apt-get install gcc-12 g++-12\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100\nsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100\n\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get install -y cuda-drivers-535\nsudo apt-get install -y cuda-toolkit-12-2\n```\n\nReboot the machine to apply the drivers.\n\n3. Install `foundryup-zksync`.\n\n```\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\n. ~/.bashrc\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\n```\nexport CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64\nexport PATH=$PATH:$CUDA_HOME/bin\n\ngit clone https://github.com/matter-labs/era-bellman-cuda.git\ncd era-bellman-cuda\ngit checkout prerelease-dev-a87a309\ngit submodule update --init --recursive\ncmake -B./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\nexport BELLMAN_CUDA_DIR=$HOME/era-bellman-cuda\n```\n\n5. Run all scripts to regenerate verification keys. The correct tag version of the repo is `core-v29.11.1`, commit hash `3f71cb2230fb9c365c095ce7bcf3373ea63fbec2`.\n```\ncd ~ \ngit clone https://github.com/matter-labs/zksync-era.git\ncd zksync-era/\ngit checkout core-v29.11.1\n\n# Download compact CRS for the compressor data step, put in repo root\ncurl -o setup_compact.key https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_compact.key\nexport COMPACT_CRS_FILE=~/zksync-era/setup_compact.key\n\ncd prover/crates/bin/vk_setup_data_generator_server_fri\nCRS_FILE=https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_2^24.key ZKSYNC_HOME=$HOME \n\n# Run regeneration steps\ncargo run --release --bin key_generator generate-vk\ncargo run --features gpu --release --bin key_generator generate-compressor-data\n```\n\nThe output of the last command will contain the required `fflonk_snark_wrapper` value."
"verificationSteps": "Verification requires an Ubuntu 22.04 machine with an NVIDIA GPU. We used a g6.4xlarge aws instance with 24 GiB GPU memory and 64 GiB RAM. \nThe setup part is based on [this guide](https://paragraph.com/@zksync/from-integration-to-verification-completing-the-first-steps-in-zksync-s-prover-network) with modifications, the verification is done using [this script](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri).\n\n1. Install rust, yarn, some essential libraries, docker and cmake:\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash\nexport NVM_DIR=$HOME/.nvm\n. .bashrc\nnvm install 20\nnpm install -g yarn\nyarn set version 1.22.19\n\nsudo apt-get update\nsudo apt-get install -y build-essential pkg-config cmake clang lldb lld libssl-dev postgresql apt-transport-https ca-certificates curl software-properties-common\ncargo install sqlx-cli --version 0.8.1\n\n# install the latest version of cmake\nsudo apt remove cmake\ncurl -fsSL https://apt.kitware.com/kitware-archive.sh | sudo sh\nsudo apt-get install cmake\n```\n\n2. Install CUDA drivers and toolkit 12.2, export necessary env vars. On Ubuntu 22.04 this requires updating gcc to version 12.\n\n```\nsudo apt-get install gcc-12 g++-12\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100\nsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100\n\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get install -y cuda-drivers-535\nsudo apt-get install -y cuda-toolkit-12-2\n```\n\nReboot the machine to apply the drivers.\n\n3. Install `foundryup-zksync`.\n\n```\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\n. ~/.bashrc\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\n```\nexport CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64\nexport PATH=$PATH:$CUDA_HOME/bin\n\ngit clone https://github.com/matter-labs/era-bellman-cuda.git\ncd era-bellman-cuda\ngit checkout prerelease-dev-a87a309\ngit submodule update --init --recursive\ncmake -B./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\nexport BELLMAN_CUDA_DIR=$HOME/era-bellman-cuda\n```\n\n5. Run all scripts to regenerate verification keys. The correct tag version of the repo is `prover-v23.2.0`, commit hash `2b188cd7ac139430d3cb1f27babc9693a2c83df6`.\n```\ncd ~ \ngit clone https://github.com/matter-labs/zksync-era.git\ncd zksync-era/\ngit checkout prover-v23.2.0\n\n# Download compact CRS for the compressor data step, put in repo root\ncurl -o setup_compact.key https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_compact.key\nexport COMPACT_CRS_FILE=~/zksync-era/setup_compact.key\n\ncd prover/crates/bin/vk_setup_data_generator_server_fri\nCRS_FILE=https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_2^24.key ZKSYNC_HOME=$HOME \n\n# Run regeneration steps\ncargo run --release --bin key_generator generate-vk\ncargo run --features gpu --release --bin key_generator generate-compressor-data\n```\n\nThe output of the last command will contain the required `snark_wrapper` value."
}
]
}
+1 -1
+1 -1
{
"baseTimestamp": 1783513569,
"baseTimestamp": 1783679422,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1783513569,
"baseTimestamp": 1783679422,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+9 -2
+8 -1
{
"addresses": {
"ethereum": [
{
"name": "ExchangeV3",
"isVerified": true,
"address": "eth:0x0BABA1Ad5bE3a5C0a66E7ac838a129Bf948f1eA4",
"upgradeability": {
"proxyType": "ZeppelinOS proxy",
"admins": [
"eth:0xDd2A08a1c1A28c1A571E098914cA10F2877D9c97"
],
"implementations": [
"eth:0xB40973B8bffDe1553AE05DE4b298610524E1c37a"
"eth:0xB2de2bff671b03612a0Fa3340E0e0eE7e1C0a388"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1603969940,
"transactionHash": "0xed8a952216607c164559f01d5f90066a7de65fdcc72146e71956865685a8eeab",
"implementations": [
"eth:0xa01d4d1FE18A34902Ac2e4045a5e8f553dDe9685"
]
},
{
"timestamp": 1607926574,
"transactionHash": "0xcfbaf71a511297fd7bc1452e5b274c056ba5a3ddf271b59012eff877dd4351b9",
"implementations": [
"eth:0x2fefbeF4d1445F523941c56349C2414cd5e9675d"
]
},
{
"timestamp": 1610939214,
"transactionHash": "0xce34e9483ec139aa6628ed29279b80f163ba9094ce1a848cbe640e438ad2eb20",
"implementations": [
"eth:0x8c63D8E608fF702a92D5908730C91457b0447Ad7"
]
},
{
"timestamp": 1616642770,
"transactionHash": "0x155d094b0d053837b4e252b69cb10c8157795274da1a9f4325519791c27bd294",
"implementations": [
"eth:0xCFba78aecfBcc0B4B748fA58c530D4675BB5D32F"
]
},
{
"timestamp": 1616990059,
"transactionHash": "0xb54c93da349065cc82e2ef150f07319b2522709e8fe7acbcb5a5edfdcf46f2d6",
"implementations": [
"eth:0x4fb117dcd6D09abF1a99B502d488A99F5a17e7eC"
]
},
{
"timestamp": 1630470259,
"transactionHash": "0x2ccbfd61faf2015457ec43fab0324dca7d75091aba7423fe2990307bbfe32e22",
"implementations": [
"eth:0x3c294fCF74129d649325F8995afC2f9CfaFAB9dA"
]
},
{
"timestamp": 1639448481,
"transactionHash": "0x0fa3763c4bd69cf9e77636b37b5b12c29f3b260d8e822ebe215b14c4602a716d",
"implementations": [
"eth:0x26d8Ba776a067C5928841985bCe342f75BAE7E82"
]
},
{
"timestamp": 1782719207,
"transactionHash": "0x9515d5aeed96ebdc21f10ec4d22c796a3dc752e5731bcfcb4dbe7e33a09cc496",
"implementations": [
"eth:0x9cFA61e1472f648cd01Ff05E658987A2abA40F1B"
]
},
{
"timestamp": 1782728687,
"transactionHash": "0xecb93127c952956993d2247504aecf504b4e48a26bcd758276242ec10ea35274",
"implementations": [
"eth:0xB40973B8bffDe1553AE05DE4b298610524E1c37a"
]
},
{
"timestamp": 1783600799,
"transactionHash": "0xc3371471d0daa75094515baac093f12c217b1e0147ddcf992496fcca9ea4721b",
"implementations": [
"eth:0xB2de2bff671b03612a0Fa3340E0e0eE7e1C0a388"
]
}
],
"description": "Main Loopring contract. It was upgraded to the ProxyAdminExecutor implementation on 2026-06-29.",
"upgradableBy": [
{
"name": "LoopringMultisig",
"delay": "no"
}
],
"upgradeConsiderations": "The proxy owner can upgrade the implementation without delay. The current ProxyAdminExecutor implementation lets the proxy owner execute arbitrary calls from the context of ExchangeV3, including sending tokens to arbitrary addresses.",
"url": "https://etherscan.io/address/0x0BABA1Ad5bE3a5C0a66E7ac838a129Bf948f1eA4#code"
},
{
"name": "DefaultDepositContract",
"isVerified": true,
"address": "eth:0x674bdf20A0F284D710BC40872100128e2d66Bd3f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "ERC 20 token basic deposit contract. Handles user deposits and withdrawals.",
"url": "https://etherscan.io/address/0x674bdf20A0F284D710BC40872100128e2d66Bd3f#code"
},
{
"name": "LoopringV3",
"isVerified": true,
"address": "eth:0xe56D6ccab6551932C0356E4e8d5dAF0630920C71",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract managing LRC staking for exchanges (one Loopring contract can manage many exchanges). It also allows to change the forced withdrawal fee and the Verifier address.",
"url": "https://etherscan.io/address/0xe56D6ccab6551932C0356E4e8d5dAF0630920C71#code"
},
{
"name": "FastWithdrawalAgent",
"isVerified": true,
"address": "eth:0xec3Cc6Cf0252565b56FC7AC396017Df5b9B78a31",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Auxiliary contract allowing users to process fast withdrawals.",
"url": "https://etherscan.io/address/0xec3Cc6Cf0252565b56FC7AC396017Df5b9B78a31#code"
},
{
"name": "ForcedWithdrawalAgent",
"isVerified": true,
"address": "eth:0x52ea1971C05B0169c02a0bBeC05Fe8b5E3A24470",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Auxiliary contract able to force withdrawals from L1 on behalf of users.",
"url": "https://etherscan.io/address/0x52ea1971C05B0169c02a0bBeC05Fe8b5E3A24470#code"
},
{
"name": "BlockVerifier",
"isVerified": true,
"address": "eth:0x6150343E0F43A17519c0327c41eDd9eBE88D01ef",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "zkSNARK Verifier based on ethsnarks library.",
"upgradableBy": [
{
"name": "LoopringMultisig",
"delay": "no"
}
],
"upgradeConsiderations": "The Verifier contract address can be changed by the ProxyOwner.",
"url": "https://etherscan.io/address/0x6150343E0F43A17519c0327c41eDd9eBE88D01ef#code"
}
]
},
"escrows": [
{
"address": "0x7D3D221A8D8AbDd868E8e88811fFaF033e68E108",
"sinceTimestamp": 1575539271,
"tokens": [
"LRC",
"USDT"
],
"isHistorical": true,
"chain": "ethereum",
"chainId": 1
},
{
"address": "0xD97D09f3bd931a14382ac60f156C1285a56Bb51B",
"sinceTimestamp": 1578284114,
"tokens": [
"LRC",
"USDT"
],
"isHistorical": true,
"chain": "ethereum",
"chainId": 1
},
{
"address": "0x674bdf20A0F284D710BC40872100128e2d66Bd3f",
"sinceTimestamp": 1603949642,
"tokens": "*",
"chain": "ethereum",
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x6150343E0F43A17519c0327c41eDd9eBE88D01ef"
]
}
+1 -1
{
"baseTimestamp": 1782730310,
"baseTimestamp": 1783679500,
"contractsDiscoDriven": false,
"hasDiscoUi": true,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+1 -1
+1 -1
{
"baseTimestamp": 1783513569,
"baseTimestamp": 1783679422,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1783513569,
"baseTimestamp": 1783679422,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1783513569,
"baseTimestamp": 1783679422,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1783513569,
"baseTimestamp": 1783679422,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+7 -7
+6 -6
{
"addresses": {
"ethereum": [
{
"name": "Starknet",
"isVerified": true,
"address": "eth:0xc662c410C0ECf747543f5bA90660f6ABeBD9C8c4",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361",
"eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c"
],
"implementations": [
"eth:0x9961D34D3baE6914635c882e8FE382e14E0F172A"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1636979180,
"transactionHash": "0xccde4b2c417c0361ca34b8896ff8ee8a471aeab423613db8175463d903d4c2fe",
"implementations": [
"eth:0xD8Cd77206fCb239BdDaaDDdA8C87CBFe7d67Ca2b"
]
},
{
"timestamp": 1643193921,
"transactionHash": "0xf928abd9eb81afac14d1e8f76a52de80f9c38cbe0e72d2f1ec922caf7bf1cad0",
"implementations": [
"eth:0x944960b90381d76368aecE61F269bD99FFfd627e"
]
},
{
"timestamp": 1647853574,
"transactionHash": "0x4e551f471810ea806502b1e24f9ef6793f0a0b68f24c3cdec44df444921d7689",
"implementations": [
"eth:0xDC109C4a1A3084Ed15A97692FBEF3e1FB32A6955"
]
},
{
"timestamp": 1655284858,
"transactionHash": "0x65e31a14e45c3f909c1f90e67b3bb9a54e256d28cb8a27432f73268a19ebab84",
"implementations": [
"eth:0x2B3B750f1f10c85c8A6D476Fc209A8DC7E4Ca3F8"
]
},
{
"timestamp": 1662879548,
"transactionHash": "0x6f7ff0be4f155165290702052683f0a87b5e660812949c6e10eac6602c6aa5e7",
"implementations": [
"eth:0xE267213B0749Bb94c575F6170812c887330d9cE3"
]
},
{
"timestamp": 1680085307,
"transactionHash": "0x861257880dfe325f603d4371a10888daa8fb0a16c205bb43647e8c5547298e36",
"implementations": [
"eth:0x739A654271c565839F0408546706bBea2F1FfE42"
]
},
{
"timestamp": 1684906283,
"transactionHash": "0x640cb38b6ffa91068da7cc15730268402661ec3f62f084b2a58522f600d89277",
"implementations": [
"eth:0x16938E4b59297060484Fa56a12594d8D6F4177e8"
]
},
{
"timestamp": 1710252923,
"transactionHash": "0xb9cd560bbc6f0478eeb5bed042a06d988ef6ebfd1cc9bfb509b4d8202b517ecc",
"implementations": [
"eth:0x6E0aCfDC3cf17A7f99ed34Be56C3DFb93F464e24"
]
},
{
"timestamp": 1724855579,
"transactionHash": "0x4186d705e39a8e7cb19069c9426e4b211fad28f97cb7f641e4bd240971318e8d",
"implementations": [
"eth:0x47103A9b801eB6a63555897d399e4b7c1c8Eb5bC"
]
},
{
"timestamp": 1742836319,
"transactionHash": "0x7e6e541652c8ed05afba0c7fd372d6a340d438d85a545666ee7ecd1a4046eb5b",
"implementations": [
"eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04"
]
},
{
"timestamp": 1776686015,
"transactionHash": "0xb2fd817ea47d39435e0b08825964bcb0b2ae08ebc4c5a47954f9b169235ed1c1",
"implementations": [
"eth:0x9961D34D3baE6914635c882e8FE382e14E0F172A"
]
}
],
"description": "Central rollup contract. Receives (verified) state roots from the Sequencer, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n* Roles:\n * **admin**: DelayedExecutor, Starkware Security Council; ultimately Starkware Multisig 1\n * **operators**: EOA 3, Starkware SCMinority Multisig",
"upgradableBy": [
{
"name": "Starkware Security Council",
"delay": "no"
},
{
"name": "Starkware Multisig 1",
"delay": "8d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc662c410C0ECf747543f5bA90660f6ABeBD9C8c4#code"
},
{
"name": "SHARPVerifierCallProxy",
"isVerified": true,
"address": "eth:0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
],
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1635080785,
"transactionHash": "0x80ebb7a22a207d00e26464db2f8a719d43eb3b836740a693aad13d5ef922f5e4",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1651510161,
"transactionHash": "0x604e235c6207b7909f6fc8dc0bd86b410e935dcf2f6f6bd37a5567a89379353a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1659869409,
"transactionHash": "0xc31b74237a0c68aa1b95fe2ed28ad54cf6d7df42a8beab1ea947532c95dda20a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1678106063,
"transactionHash": "0xbaa8ffb1b7e5177dbf75de753b9b2ff2fc313b244ff910cfd6d7f1f6254b6e1a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1708939523,
"transactionHash": "0x31e3caf3940dde662a1e98580259f79963dc5e098793b6519311e201d4e19312",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1708939523,
"transactionHash": "0x31e3caf3940dde662a1e98580259f79963dc5e098793b6519311e201d4e19312",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1722161267,
"transactionHash": "0x7c71592ea4c455371365d843f1a21bbf647aad7d6fae12f7187650ce24805f00",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1722197315,
"transactionHash": "0x4b25445a8e86b4620b9a19f747122b518d8973975ea73aa474b210395e277b66",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1747066175,
"transactionHash": "0x0764cd09cc5c9a96b151dd222bf14b9c33111c80bdddf27721a6406f4c0e1f3f",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1760862467,
"transactionHash": "0x7b4a25af246b28b6d5bed86942696273a84e57abc629b83072be370df2bdb797",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1765192091,
"transactionHash": "0xed93cf713d33ac63297d8c7e2eafc0d9f277b718b4074600536eb9a4205bcb81",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1769954759,
"transactionHash": "0x257cfdefacd18f0c221b1e486ee002cb974d14bb292884dfaf7f5aa987cc7170",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1777465247,
"transactionHash": "0xf088946bc461774cf86ce348fcee4d52bb27ebf049d99f3fab806226053b0d5b",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1782033359,
"transactionHash": "0x57f323ff6c828c8fe0c65c9c89d5b242264455cd5f3a5bacd25a78efa17b0ed4",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
}
],
"description": "Upgradable call proxy contract through which the SHARPVerifier can be called. A call proxy does not delegatecall and the storage context remains at the target contract. It allows SHARP Multisig to change the otherwise immutable verifier contract with 8d delay.\n* Roles:\n * **admin**: SHARP Multisig\n * **appGovernor**: SHARP Multisig\n * **governanceAdmin**: SHARP Multisig",
"upgradableBy": [
{
"name": "SHARP Multisig",
"delay": "8d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60#code"
},
{
"name": "SHARPVerifier_2026_13_1",
"isVerified": true,
"address": "eth:0x5C1Ce45534A9c5f7F3E6683Cd79a8ad57EE3a9fe",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Shared Starkware SHARP verifier used collectively by Starknet and other SN stack and StarkEx projects. It receives STARK proofs from the Prover and verifies the integrity of the offchain execution including a correctly computed state root which is part of the Program Output.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5C1Ce45534A9c5f7F3E6683Cd79a8ad57EE3a9fe#code"
},
{
"name": "SHARPVerifier_2026_13_2",
"isVerified": true,
"address": "eth:0x7Da1225C752ab37E610a242D9D8a0548262E3fF7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Shared Starkware SHARP verifier used collectively by Starknet and other SN stack and StarkEx projects. It receives STARK proofs from the Prover and verifies the integrity of the offchain execution including a correctly computed state root which is part of the Program Output.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7Da1225C752ab37E610a242D9D8a0548262E3fF7#code"
},
{
"name": "SHARPVerifier",
"isVerified": true,
"address": "eth:0xE67515a751291445B85b2F176c1eCdf08e86b406",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Shared Starkware SHARP verifier used collectively by Starknet and other SN stack and StarkEx projects. It receives STARK proofs from the Prover and verifies the integrity of the offchain execution including a correctly computed state root which is part of the Program Output.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE67515a751291445B85b2F176c1eCdf08e86b406#code"
},
{
"name": "DelayedExecutor",
"isVerified": true,
"address": "eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A simple Timelock contract with an immutable delay of 8d. The owner (Starkware Multisig 1) can queue transactions.\n* Roles:\n * **owner**: Starkware Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCA112018fEB729458b628AadC8f996f9deCbCa0c#code"
},
{
"name": "ETHBridge",
"isVerified": true,
"address": "eth:0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361"
],
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1647857960,
"transactionHash": "0x4c7952f4056367ec557d94b41d0784b7eb247d1f9de7378bdff7a5218c85314d",
"implementations": [
"eth:0x0205172F25e791975edB4dEF203f3789B01f43bb"
]
},
{
"timestamp": 1649596101,
"transactionHash": "0x9b76ede78b75c332ea2ae855b62a2363c197ee521522ab1a14aa5517f2610dd5",
"implementations": [
"eth:0x5e70F3301bbBBB1DFA2c8d20D75b162aFa6Dbe37"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0xa31315fda290a9ee1abf459ba81a8c5986c5c9da58cda4c20a144ab16e3a9ba1",
"implementations": [
"eth:0x5e70F3301bbBBB1DFA2c8d20D75b162aFa6Dbe37"
]
},
{
"timestamp": 1680016103,
"transactionHash": "0x826f7e63249e192040d6b9301a68a0c7fc1130d06339ab0c758ff14799f9adfb",
"implementations": [
"eth:0x455603AD9ae671F6c1f0f746F24d7904cA603581"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x455603AD9ae671F6c1f0f746F24d7904cA603581"
]
},
{
"timestamp": 1707738959,
"transactionHash": "0x1f56cc90fd40bcc00a27f94c989e93cb414a884e2fe971323426f40d58c71306",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
},
{
"timestamp": 1746967799,
"transactionHash": "0xf0fc6787173f9e4ee964487191601bf84e443f30192c896849df7fd12dfa1a95",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
}
],
"description": "Standard Starkware canonical bridge escrow for ETH. Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: DelayedExecutor, Starkware Security Council; ultimately Starkware Multisig 1\n * **govAdmin**: Starkware Security Council\n * **secAdmin**: Starkware SCMinority Multisig\n * **secAgent**: EOA 4, Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Security Council",
"delay": "no"
},
{
"name": "Starkware Multisig 1",
"delay": "8d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419#code"
},
{
"name": "LORDSBridge",
"isVerified": true,
"address": "eth:0x023A2aAc5d0fa69E3243994672822BA43E34E5C9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Custom (and immutable) entry point contract and escrow for users depositing LORDS to via StarkGate to the L2.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x023A2aAc5d0fa69E3243994672822BA43E34E5C9#code"
},
{
"name": "StarkgateRegistry",
"isVerified": true,
"address": "eth:0x1268cc171c54F2000402DfF20E93E60DF4c96812",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x39C3b4e670ACa8BC668e5A79680973e57a4C8CEC"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1707325511,
"transactionHash": "0x54e1021653aaca692f4ead2a85e5bd32648919d01953e88693a833d45c583fab",
"implementations": [
"eth:0x642F04899B6cA155c2a5eAdD4e4ed634f1B07Dd7"
]
},
{
"timestamp": 1740918611,
"transactionHash": "0x86ccb24833adb42f79ff55fcce4e69508e467df41c653a1b2578b5f2788f3c0c",
"implementations": [
"eth:0x39C3b4e670ACa8BC668e5A79680973e57a4C8CEC"
]
}
],
"description": "A simple registry that maps tokens to their StarkGate escrows. It also keeps a list of tokens that are blocked from being added to StarkGate.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1268cc171c54F2000402DfF20E93E60DF4c96812#code"
},
{
"name": "WBTCBridge",
"isVerified": true,
"address": "eth:0x283751A21eafBFcD52297820D27C1f1963D9b5b4",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0xE0D1fab527A85D955d4c05323250367E61bA3f18"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657138806,
"transactionHash": "0xeedccfe88453ea74a342ca57926a88b6033057eb15b43291332f0fa19c197eee",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630577,
"transactionHash": "0xc450cc918a45c46057f13a072c41a646e78f52af5e36f82b7061b478e44b7fb3",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x5bc722c79d5a4303b76638f6fc75d26c5dbfba39202c2a7ced89b96d3ead97e7",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016007,
"transactionHash": "0xb638d945b6a6feba94d6219f1618a6e279720e105d4476db19063abd4164117f",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707731699,
"transactionHash": "0x426174e7e63465569d28b3ca3e807e69859f9a2650702487260b9a45646d5f32",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
},
{
"timestamp": 1768834883,
"transactionHash": "0xdb7a4f9c3e38994d167d6943b6b7f247972ac3c7564febba428a407cf0e89e5b",
"implementations": [
"eth:0xE0D1fab527A85D955d4c05323250367E61bA3f18"
]
}
],
"description": "Haltable version of the Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually. Deposits for a particular token can be halted by app governor, halt must be finalized in the second transaction that also sweeps all funds into a clrearing address. There is no logic to resume bridging after the halt.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2\n * **secAgent**: Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x283751A21eafBFcD52297820D27C1f1963D9b5b4#code"
},
{
"name": "FXSBridge",
"isVerified": true,
"address": "eth:0x66ba83ba3D3AD296424a2258145d9910E9E40B7C",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x8a85416efb74a9a7b95f6596bbcf947bdea2e1664c1401fee191dbc35ed63b9e",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x66ba83ba3D3AD296424a2258145d9910E9E40B7C#code"
},
{
"name": "L1DaiGateway",
"isVerified": true,
"address": "eth:0x9F96fE0633eE838D0298E8b8980E6716bE81388d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Gateway contract that is the user entrypoint to deposit DAI to a custom escrow to bridge via StarkGate.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9F96fE0633eE838D0298E8b8980E6716bE81388d#code"
},
{
"name": "USDTBridge",
"isVerified": true,
"address": "eth:0xbb3400F107804DFB482565FF1Ec8D8aE66747605",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657139268,
"transactionHash": "0x3e25166c11d40ded7d1ae272a9e4eb416b2d35a8f4919ca0a07c55f0065de787",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630654,
"transactionHash": "0x55d370d26d45d7aee7f06e7f741d5f0d37154889faa1fa4e393370cae31a0f0f",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x33fdbe5a0d1ba784eb5e2f0f34b42d57c5c2b6b0bd3562746c7ee0447f7767aa",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016067,
"transactionHash": "0xac209ae933b3ae24348f926df5f8978093617c711baaceefa21b90c08c82a0af",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707732815,
"transactionHash": "0xe594bd2581f3da0e554ad8664aecc1441280850cc7827a9e42d172bbf54cac5d",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2\n * **secAgent**: Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbb3400F107804DFB482565FF1Ec8D8aE66747605#code"
},
{
"name": "wstETHBridge",
"isVerified": true,
"address": "eth:0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1685453471,
"transactionHash": "0xb4de1aa42c3ade894dd66e06e6125549e8004d2d6857cf456ef5bde3f583ea7c",
"implementations": [
"eth:0xEf3525a1081a4cf6f76E0B202a575195cEE083a2"
]
},
{
"timestamp": 1707416015,
"transactionHash": "0x4eb13c68776e5aa840ab59c3c4ff369372fd461bab760eee12d1ae7ccf7baa6e",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B#code"
},
{
"name": "STRKBridge",
"isVerified": true,
"address": "eth:0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1704907283,
"transactionHash": "0x4ea20358347292f048a26277477a9f145add434e50e3f64c85f494469768c876",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1705239263,
"transactionHash": "0x42056631084f574f2ed5f49bef3d1aabab22008266ac97afea3e5f42649bd7c3",
"implementations": [
"eth:0x052C81F05595B5DeF4fdFEdbD7CA7b4A8a7B50C1"
]
},
{
"timestamp": 1705249823,
"transactionHash": "0xe8154cce45dafa5cfcb95d134f3da8a13c80c6546da07ca92c88d5c54286cdc3",
"implementations": [
"eth:0x7f2a18900A978D4390a3640e34739BB697777A71"
]
},
{
"timestamp": 1707751031,
"transactionHash": "0x7c5561efa149f2be36fac917f47b0b107218b43de1eac56ceb97d008257bd850",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
},
{
"timestamp": 1739105903,
"transactionHash": "0xccb802ed2caee6856e9141983a642a0d4881cd64a209436d3fdeb4776c841175",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
},
{
"timestamp": 1746967799,
"transactionHash": "0xf0fc6787173f9e4ee964487191601bf84e443f30192c896849df7fd12dfa1a95",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: DelayedExecutor, Starkware Security Council; ultimately Starkware Multisig 1\n * **govAdmin**: Starkware Security Council\n * **secAdmin**: Starkware SCMinority Multisig\n * **secAgent**: EOA 4, Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Security Council",
"delay": "no"
},
{
"name": "Starkware Multisig 1",
"delay": "8d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4#code"
},
{
"name": "rETHBridge",
"isVerified": true,
"address": "eth:0xcf58536D6Fab5E59B654228a5a4ed89b13A876C2",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1685882531,
"transactionHash": "0x90d66157a3812393338739b0ee7a84d0d310b72a8282946e5874824c60d30c51",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707431855,
"transactionHash": "0x5420188e3cc869219076d140de7359aa4b930c51263c00728bb81e3a68c1ba8c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xcf58536D6Fab5E59B654228a5a4ed89b13A876C2#code"
},
{
"name": "sfrxETHBridge",
"isVerified": true,
"address": "eth:0xd8E8531fdD446DF5298819d3Bc9189a5D8948Ee8",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x368efd40dcf16ad376c8f38adf1e68361874e2b5b2de52d7088cd7de6b38f02a",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd8E8531fdD446DF5298819d3Bc9189a5D8948Ee8#code"
},
{
"name": "FRAXBridge",
"isVerified": true,
"address": "eth:0xDc687e1E0B85CB589b2da3C47c933De9Db3d1ebb",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x591030492947a546e11122e42c12975237d800d3d509d284b9c8aaf541dbdc79",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDc687e1E0B85CB589b2da3C47c933De9Db3d1ebb#code"
},
{
"name": "MultiBridge",
"isVerified": true,
"address": "eth:0xF5b6Ee2CAEb6769659f6C091D209DfdCaF3F69Eb",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1707325571,
"transactionHash": "0x52b4a75a83546e4e463a919cf778cb9a4882d536c4bf7b80a62098698c741fd8",
"implementations": [
"eth:0x594cCaDF93F860dc42Cf9fd7bCea47Ff4d135D7A"
]
},
{
"timestamp": 1740918611,
"transactionHash": "0x86ccb24833adb42f79ff55fcce4e69508e467df41c653a1b2578b5f2788f3c0c",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
}
],
"description": "Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **manager**: StarkgateManager\n * **secAdmin**: Starkware Multisig 2\n * **secAgent**: Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF5b6Ee2CAEb6769659f6C091D209DfdCaF3F69Eb#code"
},
{
"name": "USDCBridge",
"isVerified": true,
"address": "eth:0xF6080D9fbEEbcd44D89aFfBFd42F098cbFf92816",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657139268,
"transactionHash": "0x7fee1d4145372b9f1a39594bc71c9074f5982c5c546135c1aba6810c5c33cd15",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630654,
"transactionHash": "0x8c5f529b4aea40150673a24be2daf67b98dfea900848e2e4bfe863b29397cb16",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x100be562b99e029f2419718dfa5e722c6d27cd99e9e5fbbd61dbda223d8872c2",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016067,
"transactionHash": "0x1c54434b6dab2c13187d16161d7da8b6286b4f71d3ff3ab580ffcc90ac387d31",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707732959,
"transactionHash": "0x147393fe2175d3bd2a267730c8066afd475199c52a1895b5524100c3b2ca2c07",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2\n * **secAgent**: Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF6080D9fbEEbcd44D89aFfBFd42F098cbFf92816#code"
},
{
"name": "UNIBridge",
"isVerified": true,
"address": "eth:0xf76e6bF9e2df09D0f854F045A3B724074dA1236B",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1698061943,
"transactionHash": "0x9e8cd16d463bff3aaa9aca2f741819ccdba2148450f935446facdb498a424a1e",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707432767,
"transactionHash": "0x2513dff6fab1fe6b7f95d9e436c18c8dd79965a3c7217f79c69787b2f42abc4a",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835031,
"transactionHash": "0x80c2489d99e1aa4593e1749d905120a22bc688a8c62343edce82130c4566de72",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf76e6bF9e2df09D0f854F045A3B724074dA1236B#code"
},
{
"name": "DAIBridge",
"isVerified": true,
"address": "eth:0x0437465dfb5B79726e35F08559B0cBea55bb585C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple escrow that accepts tokens and allows to configure permissioned addresses that can access the tokens.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0437465dfb5B79726e35F08559B0cBea55bb585C#code"
},
{
"name": "LBTCBridge",
"isVerified": true,
"address": "eth:0x96C8AE2AC9A5cd5fC354e375dB4d0ca75fc0685e",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xF689688640E88160c07C6FC5cc63039F29EDe86b"
],
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1757941451,
"transactionHash": "0x503782544b4f41c5e38d13ba7e96e5dd4fb597abb7a595a7da2af8ddfaface58",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
}
],
"description": "Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually.\n* Roles:\n * **admin**: EOA 6\n * **govAdmin**: EOA 6\n * **secAdmin**: EOA 6",
"upgradableBy": [
{
"id": "EOA-6",
"name": "EOA 6",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x96C8AE2AC9A5cd5fC354e375dB4d0ca75fc0685e#code"
},
{
"name": "SolvBTCBridge",
"isVerified": true,
"address": "eth:0xA86b9b9c58d4f786F8ea89356c9c9Dde9432Ab10",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A"
],
"implementations": [
"eth:0x205Fef0daB48D83CbA6888C5F050FeE36C4762B7"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750862507,
"transactionHash": "0x9529b94a823908b9a8c9097a89ef76e034740a971363e3f7913f4971eb3633e3",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
},
{
"timestamp": 1768493183,
"transactionHash": "0x27532d9c2db25f9d053fe4246f83a8c719a0d0b000a9d0e9f1e7dae1e05f287a",
"implementations": [
"eth:0x205Fef0daB48D83CbA6888C5F050FeE36C4762B7"
]
},
{
"timestamp": 1768493315,
"transactionHash": "0x787522b1ecf6f59d77fdd6278cf3d92f7b28cc292264e5f7ae9ef93c1344d587",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
},
{
"timestamp": 1768831679,
"transactionHash": "0xa0ae9228abd03f1701caf995520b4ad4f9998bf46376e5f8cea39a24d0ee461a",
"implementations": [
"eth:0x205Fef0daB48D83CbA6888C5F050FeE36C4762B7"
]
}
],
"description": "Haltable version of the Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually. Deposits for a particular token can be halted by app governor, halt must be finalized in the second transaction that also sweeps all funds into a clrearing address. There is no logic to resume bridging after the halt.\n* Roles:\n * **admin**: EOA 5\n * **govAdmin**: EOA 5\n * **secAdmin**: EOA 5",
"upgradableBy": [
{
"id": "EOA-5",
"name": "EOA 5",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA86b9b9c58d4f786F8ea89356c9c9Dde9432Ab10#code"
},
{
"name": "LUSDBridge",
"isVerified": true,
"address": "eth:0xF3F62F23dF9C1D2C7C63D9ea6B90E8d24c7E3DF5",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1688046899,
"transactionHash": "0xa67fa2a98e3b92d67fe9ea402dd53955fc2d74f6af3ee0183e20afad68ac5621",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707433079,
"transactionHash": "0x1157d4bd2b7d00a0f9833ef0832822bc331d5f904c0c3f9f14fa7942678fbf58",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835007,
"transactionHash": "0x4a1c60505d4d6d22f51b164696b7eadba1955278a577c7e712b2cd0347bee330",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: EOA 5\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"id": "EOA-5",
"name": "EOA 5",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF3F62F23dF9C1D2C7C63D9ea6B90E8d24c7E3DF5#code"
},
{
"name": "CairoBootloaderProgram",
"isVerified": true,
"address": "eth:0x24105e6697AdD9B4B1BDE04079a91BDFCCa24A47",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x24105e6697AdD9B4B1BDE04079a91BDFCCa24A47#code"
},
{
"name": "MemoryPageFactRegistry",
"isVerified": true,
"address": "eth:0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Auxiliary to the SHARPVerifier contract: Verified 'memory fact pages' get stored here. This is important as it registers all necessary onchain data produced by the verifier.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460#code"
}
]
},
"escrows": [
{
"address": "0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419",
"sinceTimestamp": 1647857148,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361"
],
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1647857960,
"transactionHash": "0x4c7952f4056367ec557d94b41d0784b7eb247d1f9de7378bdff7a5218c85314d",
"implementations": [
"eth:0x0205172F25e791975edB4dEF203f3789B01f43bb"
]
},
{
"timestamp": 1649596101,
"transactionHash": "0x9b76ede78b75c332ea2ae855b62a2363c197ee521522ab1a14aa5517f2610dd5",
"implementations": [
"eth:0x5e70F3301bbBBB1DFA2c8d20D75b162aFa6Dbe37"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0xa31315fda290a9ee1abf459ba81a8c5986c5c9da58cda4c20a144ab16e3a9ba1",
"implementations": [
"eth:0x5e70F3301bbBBB1DFA2c8d20D75b162aFa6Dbe37"
]
},
{
"timestamp": 1680016103,
"transactionHash": "0x826f7e63249e192040d6b9301a68a0c7fc1130d06339ab0c758ff14799f9adfb",
"implementations": [
"eth:0x455603AD9ae671F6c1f0f746F24d7904cA603581"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x455603AD9ae671F6c1f0f746F24d7904cA603581"
]
},
{
"timestamp": 1707738959,
"transactionHash": "0x1f56cc90fd40bcc00a27f94c989e93cb414a884e2fe971323426f40d58c71306",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
},
{
"timestamp": 1746967799,
"transactionHash": "0xf0fc6787173f9e4ee964487191601bf84e443f30192c896849df7fd12dfa1a95",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
}
],
"description": "StarkGate bridge for ETH. There is no bridge cap.",
"url": "https://etherscan.io/address/0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x0437465dfb5B79726e35F08559B0cBea55bb585C",
"sinceTimestamp": 1652101033,
"tokens": [
"DAI"
],
"contract": {
"isVerified": true,
"address": "eth:0x0437465dfb5B79726e35F08559B0cBea55bb585C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "DAI Vault for custom DAI Gateway managed by MakerDAO. The current bridge cap is 5.00âM DAI.",
"url": "https://etherscan.io/address/0x0437465dfb5B79726e35F08559B0cBea55bb585C#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x283751A21eafBFcD52297820D27C1f1963D9b5b4",
"sinceTimestamp": 1657137600,
"tokens": [
"WBTC"
],
"contract": {
"isVerified": true,
"address": "eth:0x283751A21eafBFcD52297820D27C1f1963D9b5b4",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0xE0D1fab527A85D955d4c05323250367E61bA3f18"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657138806,
"transactionHash": "0xeedccfe88453ea74a342ca57926a88b6033057eb15b43291332f0fa19c197eee",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630577,
"transactionHash": "0xc450cc918a45c46057f13a072c41a646e78f52af5e36f82b7061b478e44b7fb3",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x5bc722c79d5a4303b76638f6fc75d26c5dbfba39202c2a7ced89b96d3ead97e7",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016007,
"transactionHash": "0xb638d945b6a6feba94d6219f1618a6e279720e105d4476db19063abd4164117f",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707731699,
"transactionHash": "0x426174e7e63465569d28b3ca3e807e69859f9a2650702487260b9a45646d5f32",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
},
{
"timestamp": 1768834883,
"transactionHash": "0xdb7a4f9c3e38994d167d6943b6b7f247972ac3c7564febba428a407cf0e89e5b",
"implementations": [
"eth:0xE0D1fab527A85D955d4c05323250367E61bA3f18"
]
}
],
"description": "StarkGate bridge for WBTC. The bridge is halted and WBTC migrated to external OFT bridging.",
"url": "https://etherscan.io/address/0x283751A21eafBFcD52297820D27C1f1963D9b5b4#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "custom-canonical",
"bridgedUsing": {
"bridges": [
{
"name": "Canonical + additional trust assumptions"
}
]
},
"untilTimestamp": 1768848455,
"chainId": 1
},
{
"address": "0xF6080D9fbEEbcd44D89aFfBFd42F098cbFf92816",
"sinceTimestamp": 1657137639,
"tokens": [],
"contract": {
"isVerified": true,
"address": "eth:0xF6080D9fbEEbcd44D89aFfBFd42F098cbFf92816",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657139268,
"transactionHash": "0x7fee1d4145372b9f1a39594bc71c9074f5982c5c546135c1aba6810c5c33cd15",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630654,
"transactionHash": "0x8c5f529b4aea40150673a24be2daf67b98dfea900848e2e4bfe863b29397cb16",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x100be562b99e029f2419718dfa5e722c6d27cd99e9e5fbbd61dbda223d8872c2",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016067,
"transactionHash": "0x1c54434b6dab2c13187d16161d7da8b6286b4f71d3ff3ab580ffcc90ac387d31",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707732959,
"transactionHash": "0x147393fe2175d3bd2a267730c8066afd475199c52a1895b5524100c3b2ca2c07",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for USDC. There is no bridge cap.",
"url": "https://etherscan.io/address/0xF6080D9fbEEbcd44D89aFfBFd42F098cbFf92816#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xbb3400F107804DFB482565FF1Ec8D8aE66747605",
"sinceTimestamp": 1657137615,
"tokens": [
"USDT"
],
"contract": {
"isVerified": true,
"address": "eth:0xbb3400F107804DFB482565FF1Ec8D8aE66747605",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657139268,
"transactionHash": "0x3e25166c11d40ded7d1ae272a9e4eb416b2d35a8f4919ca0a07c55f0065de787",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630654,
"transactionHash": "0x55d370d26d45d7aee7f06e7f741d5f0d37154889faa1fa4e393370cae31a0f0f",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x33fdbe5a0d1ba784eb5e2f0f34b42d57c5c2b6b0bd3562746c7ee0447f7767aa",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016067,
"transactionHash": "0xac209ae933b3ae24348f926df5f8978093617c711baaceefa21b90c08c82a0af",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707732815,
"transactionHash": "0xe594bd2581f3da0e554ad8664aecc1441280850cc7827a9e42d172bbf54cac5d",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for USDT. There is no bridge cap.",
"url": "https://etherscan.io/address/0xbb3400F107804DFB482565FF1Ec8D8aE66747605#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "custom-canonical",
"bridgedUsing": {
"bridges": [
{
"name": "Canonical + additional trust assumptions"
}
]
},
"chainId": 1
},
{
"address": "0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B",
"sinceTimestamp": 1657137623,
"tokens": [
"wstETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1685453471,
"transactionHash": "0xb4de1aa42c3ade894dd66e06e6125549e8004d2d6857cf456ef5bde3f583ea7c",
"implementations": [
"eth:0xEf3525a1081a4cf6f76E0B202a575195cEE083a2"
]
},
{
"timestamp": 1707416015,
"transactionHash": "0x4eb13c68776e5aa840ab59c3c4ff369372fd461bab760eee12d1ae7ccf7baa6e",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for wstETH. There is no bridge cap.",
"url": "https://etherscan.io/address/0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "custom-canonical",
"bridgedUsing": {
"bridges": [
{
"name": "Canonical + additional trust assumptions"
}
]
},
"chainId": 1
},
{
"address": "0xcf58536D6Fab5E59B654228a5a4ed89b13A876C2",
"sinceTimestamp": 1657137623,
"tokens": [
"rETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xcf58536D6Fab5E59B654228a5a4ed89b13A876C2",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1685882531,
"transactionHash": "0x90d66157a3812393338739b0ee7a84d0d310b72a8282946e5874824c60d30c51",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707431855,
"transactionHash": "0x5420188e3cc869219076d140de7359aa4b930c51263c00728bb81e3a68c1ba8c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for rETH. There is no bridge cap.",
"url": "https://etherscan.io/address/0xcf58536D6Fab5E59B654228a5a4ed89b13A876C2#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "custom-canonical",
"bridgedUsing": {
"bridges": [
{
"name": "Canonical + additional trust assumptions"
}
]
},
"chainId": 1
},
{
"address": "0xf76e6bF9e2df09D0f854F045A3B724074dA1236B",
"sinceTimestamp": 1698061847,
"tokens": [
"UNI"
],
"contract": {
"isVerified": true,
"address": "eth:0xf76e6bF9e2df09D0f854F045A3B724074dA1236B",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1698061943,
"transactionHash": "0x9e8cd16d463bff3aaa9aca2f741819ccdba2148450f935446facdb498a424a1e",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707432767,
"transactionHash": "0x2513dff6fab1fe6b7f95d9e436c18c8dd79965a3c7217f79c69787b2f42abc4a",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835031,
"transactionHash": "0x80c2489d99e1aa4593e1749d905120a22bc688a8c62343edce82130c4566de72",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for UNI. There is no bridge cap.",
"url": "https://etherscan.io/address/0xf76e6bF9e2df09D0f854F045A3B724074dA1236B#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "custom-canonical",
"bridgedUsing": {
"bridges": [
{
"name": "Canonical + additional trust assumptions"
}
]
},
"chainId": 1
},
{
"address": "0xDc687e1E0B85CB589b2da3C47c933De9Db3d1ebb",
"sinceTimestamp": 1692689255,
"tokens": [
"FRAX.legacy"
],
"contract": {
"isVerified": true,
"address": "eth:0xDc687e1E0B85CB589b2da3C47c933De9Db3d1ebb",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x591030492947a546e11122e42c12975237d800d3d509d284b9c8aaf541dbdc79",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for FRAX. There is no bridge cap.",
"url": "https://etherscan.io/address/0xDc687e1E0B85CB589b2da3C47c933De9Db3d1ebb#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "custom-canonical",
"bridgedUsing": {
"bridges": [
{
"name": "Canonical + additional trust assumptions"
}
]
},
"chainId": 1
},
{
"address": "0x66ba83ba3D3AD296424a2258145d9910E9E40B7C",
"sinceTimestamp": 1692689267,
"tokens": [
"FRAX"
],
"contract": {
"isVerified": true,
"address": "eth:0x66ba83ba3D3AD296424a2258145d9910E9E40B7C",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x8a85416efb74a9a7b95f6596bbcf947bdea2e1664c1401fee191dbc35ed63b9e",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for FRAX (prev. FXS). There is no bridge cap.",
"url": "https://etherscan.io/address/0x66ba83ba3D3AD296424a2258145d9910E9E40B7C#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "custom-canonical",
"bridgedUsing": {
"bridges": [
{
"name": "Canonical + additional trust assumptions"
}
]
},
"chainId": 1
},
{
"address": "0xd8E8531fdD446DF5298819d3Bc9189a5D8948Ee8",
"sinceTimestamp": 1692689279,
"tokens": [
"sfrxETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xd8E8531fdD446DF5298819d3Bc9189a5D8948Ee8",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x368efd40dcf16ad376c8f38adf1e68361874e2b5b2de52d7088cd7de6b38f02a",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for sfrxETH. There is no bridge cap.",
"url": "https://etherscan.io/address/0xd8E8531fdD446DF5298819d3Bc9189a5D8948Ee8#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "custom-canonical",
"bridgedUsing": {
"bridges": [
{
"name": "Canonical + additional trust assumptions"
}
]
},
"chainId": 1
},
{
"address": "0xF3F62F23dF9C1D2C7C63D9ea6B90E8d24c7E3DF5",
"sinceTimestamp": 1688046071,
"tokens": [
"LUSD"
],
"contract": {
"isVerified": true,
"address": "eth:0xF3F62F23dF9C1D2C7C63D9ea6B90E8d24c7E3DF5",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1688046899,
"transactionHash": "0xa67fa2a98e3b92d67fe9ea402dd53955fc2d74f6af3ee0183e20afad68ac5621",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707433079,
"transactionHash": "0x1157d4bd2b7d00a0f9833ef0832822bc331d5f904c0c3f9f14fa7942678fbf58",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835007,
"transactionHash": "0x4a1c60505d4d6d22f51b164696b7eadba1955278a577c7e712b2cd0347bee330",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for LUSD. There is no bridge cap.",
"url": "https://etherscan.io/address/0xF3F62F23dF9C1D2C7C63D9ea6B90E8d24c7E3DF5#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "custom-canonical",
"bridgedUsing": {
"bridges": [
{
"name": "Canonical + additional trust assumptions"
}
]
},
"chainId": 1
},
{
"address": "0x023A2aAc5d0fa69E3243994672822BA43E34E5C9",
"sinceTimestamp": 1687524587,
"tokens": [
"LORDS"
],
"contract": {
"isVerified": true,
"address": "eth:0x023A2aAc5d0fa69E3243994672822BA43E34E5C9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "StarkGate bridge for LORDS.",
"url": "https://etherscan.io/address/0x023A2aAc5d0fa69E3243994672822BA43E34E5C9#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4",
"sinceTimestamp": 1704905879,
"tokens": [
"STRK"
],
"contract": {
"isVerified": true,
"address": "eth:0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1704907283,
"transactionHash": "0x4ea20358347292f048a26277477a9f145add434e50e3f64c85f494469768c876",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1705239263,
"transactionHash": "0x42056631084f574f2ed5f49bef3d1aabab22008266ac97afea3e5f42649bd7c3",
"implementations": [
"eth:0x052C81F05595B5DeF4fdFEdbD7CA7b4A8a7B50C1"
]
},
{
"timestamp": 1705249823,
"transactionHash": "0xe8154cce45dafa5cfcb95d134f3da8a13c80c6546da07ca92c88d5c54286cdc3",
"implementations": [
"eth:0x7f2a18900A978D4390a3640e34739BB697777A71"
]
},
{
"timestamp": 1707751031,
"transactionHash": "0x7c5561efa149f2be36fac917f47b0b107218b43de1eac56ceb97d008257bd850",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
},
{
"timestamp": 1739105903,
"transactionHash": "0xccb802ed2caee6856e9141983a642a0d4881cd64a209436d3fdeb4776c841175",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
},
{
"timestamp": 1746967799,
"transactionHash": "0xf0fc6787173f9e4ee964487191601bf84e443f30192c896849df7fd12dfa1a95",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for STRK. There is no bridge cap.",
"url": "https://etherscan.io/address/0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xF5b6Ee2CAEb6769659f6C091D209DfdCaF3F69Eb",
"sinceTimestamp": 1707322643,
"tokens": [
"EKUBO",
"ZEND",
"NSTR"
],
"contract": {
"isVerified": true,
"address": "eth:0xF5b6Ee2CAEb6769659f6C091D209DfdCaF3F69Eb",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1707325571,
"transactionHash": "0x52b4a75a83546e4e463a919cf778cb9a4882d536c4bf7b80a62098698c741fd8",
"implementations": [
"eth:0x594cCaDF93F860dc42Cf9fd7bCea47Ff4d135D7A"
]
},
{
"timestamp": 1740918611,
"transactionHash": "0x86ccb24833adb42f79ff55fcce4e69508e467df41c653a1b2578b5f2788f3c0c",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
}
],
"description": "StarkGate bridge for EKUBO, ZEND, NSTR (and potentially other tokens listed via StarkgateManager).",
"url": "https://etherscan.io/address/0xF5b6Ee2CAEb6769659f6C091D209DfdCaF3F69Eb#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "custom-canonical",
"bridgedUsing": {
"bridges": [
{
"name": "Canonical + additional trust assumptions"
}
]
},
"chainId": 1
},
{
"address": "0xA86b9b9c58d4f786F8ea89356c9c9Dde9432Ab10",
"sinceTimestamp": 1750859519,
"tokens": [
"SolvBTC"
],
"contract": {
"isVerified": true,
"address": "eth:0xA86b9b9c58d4f786F8ea89356c9c9Dde9432Ab10",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A"
],
"implementations": [
"eth:0x205Fef0daB48D83CbA6888C5F050FeE36C4762B7"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750862507,
"transactionHash": "0x9529b94a823908b9a8c9097a89ef76e034740a971363e3f7913f4971eb3633e3",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
},
{
"timestamp": 1768493183,
"transactionHash": "0x27532d9c2db25f9d053fe4246f83a8c719a0d0b000a9d0e9f1e7dae1e05f287a",
"implementations": [
"eth:0x205Fef0daB48D83CbA6888C5F050FeE36C4762B7"
]
},
{
"timestamp": 1768493315,
"transactionHash": "0x787522b1ecf6f59d77fdd6278cf3d92f7b28cc292264e5f7ae9ef93c1344d587",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
},
{
"timestamp": 1768831679,
"transactionHash": "0xa0ae9228abd03f1701caf995520b4ad4f9998bf46376e5f8cea39a24d0ee461a",
"implementations": [
"eth:0x205Fef0daB48D83CbA6888C5F050FeE36C4762B7"
]
}
],
"description": "StarkGate bridge for SolvBTC. The bridge is halted and SolvBTC migrated to external OFT bridging.",
"url": "https://etherscan.io/address/0xA86b9b9c58d4f786F8ea89356c9c9Dde9432Ab10#code"
},
"chain": "ethereum",
"includeInTotal": true,
"untilTimestamp": 1768848971,
"chainId": 1
},
{
"address": "0x96C8AE2AC9A5cd5fC354e375dB4d0ca75fc0685e",
"sinceTimestamp": 1757941367,
"tokens": [
"LBTC"
],
"contract": {
"isVerified": true,
"address": "eth:0x96C8AE2AC9A5cd5fC354e375dB4d0ca75fc0685e",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xF689688640E88160c07C6FC5cc63039F29EDe86b"
],
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1757941451,
"transactionHash": "0x503782544b4f41c5e38d13ba7e96e5dd4fb597abb7a595a7da2af8ddfaface58",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
}
],
"description": "StarkGate bridge for LBTC.",
"url": "https://etherscan.io/address/0x96C8AE2AC9A5cd5fC354e375dB4d0ca75fc0685e#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Starknet OS",
"proverSystemProject": "stwo",
"description": "Proves correct state transition for a range of consecutive Starknet transactions.",
"programUrl": "https://github.com/starkware-libs/sequencer/blob/c294a8ba263834d45cf525217d8700f5de24a260/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os/os.cairo#L69",
"programUrl": "https://github.com/starkware-libs/sequencer/tree/APOLLO-0.14.3-RC.11/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os",
"verificationStatus": "successful",
"verificationSteps": "1. Install python and pip.\n2. Install rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`.\n3. Checkout the correct version of [https://github.com/starkware-libs/sequencer/tree/main](https://github.com/starkware-libs/sequencer/tree/main): `git checkout c294a8ba263834d45cf525217d8700f5de24a260`.\n4. Install required python dependencies: `python3 -m venv sequencer_venv`, then `. sequencer_venv/bin/activate && pip install -r scripts/requirements.txt`.\n5. Run `UPDATE_EXPECT=1 cargo test -p apollo_starknet_os_program test_program_hashes` to regenerate program hashes in `crates/apollo_starknet_os_program/src/program_hash.json`. The `\"os\"` value of this file will be equivalent to dec value of the hash.",
"hash": "2733003247060056328192560178934419513655729851806095615814023997114795707702"
"verificationSteps": "1. Install python and pip.\n2. Install rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`.\n3. Checkout the correct version of [https://github.com/starkware-libs/sequencer/tree/main](https://github.com/starkware-libs/sequencer/tree/main): `git checkout APOLLO-0.14.3-RC.11`. Commit hash should be `5114457ad4b5d6d1764b520dfa40b9e826f48854`.\n4. Install required python dependencies: `python3 -m venv sequencer_venv`, then `. sequencer_venv/bin/activate && pip install -r scripts/requirements.txt`.\n5. Run `UPDATE_EXPECT=1 cargo test -p apollo_starknet_os_program test_program_hashes` to regenerate program hashes in `crates/apollo_starknet_os_program/src/program_hash.json`. The `\"os\"` value of this file will be equivalent to dec value of the hash.",
"hash": "2006389624453304912912750132846114593020263069652857561377702883656839453432"
},
{
"title": "Aggregation program for SHARP prover",
"description": "Aggregates proofs of correct execution for several consecutive transaction ranges generated by StarkNet OS.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/sequencer/blob/c294a8ba263834d45cf525217d8700f5de24a260/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/aggregator/main.cairo#L15",
"programUrl": "https://github.com/starkware-libs/sequencer/tree/APOLLO-0.14.3-RC.11/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/aggregator",
"verificationStatus": "successful",
"verificationSteps": "1. Install python and pip.\n2. Install rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`.\n3. Checkout the correct version of [https://github.com/starkware-libs/sequencer/tree/main](https://github.com/starkware-libs/sequencer/tree/main): `git checkout c294a8ba263834d45cf525217d8700f5de24a260`.\n4. Install required python dependencies: `python3 -m venv sequencer_venv`, then `. sequencer_venv/bin/activate && pip install -r scripts/requirements.txt`.\n5. Run `UPDATE_EXPECT=1 cargo test -p apollo_starknet_os_program test_program_hashes` to regenerate program hashes in `crates/apollo_starknet_os_program/src/program_hash.json`. The `\"aggregator_with_prefix\"` value of this file will be equivalent to dec value of the hash.",
"hash": "2571508110958925737463010241874806654058743535666147712534445437599630018294"
"verificationSteps": "1. Install python and pip.\n2. Install rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`.\n3. Checkout the correct version of [https://github.com/starkware-libs/sequencer/tree/main](https://github.com/starkware-libs/sequencer/tree/main): `git checkout APOLLO-0.14.3-RC.11`. Commit hash should be `5114457ad4b5d6d1764b520dfa40b9e826f48854`.\n4. Install required python dependencies: `python3 -m venv sequencer_venv`, then `. sequencer_venv/bin/activate && pip install -r scripts/requirements.txt`.\n5. Run `UPDATE_EXPECT=1 cargo test -p apollo_starknet_os_program test_program_hashes` to regenerate program hashes in `crates/apollo_starknet_os_program/src/program_hash.json`. The `\"aggregator_with_prefix\"` value of this file will be equivalent to dec value of the hash.",
"hash": "1050253032170513549151251823521174837478197699740478552102884446098263561922"
},
{
"title": "Simple bootloader Cairo program StarkWare_GpsStatementVerifier_2026_13",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/src/starkware/cairo/bootloaders/simple_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "3442855748187296636739564186904728563385971901122957091055928358173521721079"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2026_13",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "2358844945297786488640123814540854423585455959362109345448922524567546993330"
}
],
"programHashesDescription": "Starknet state transition function could be proven with unverified ZK programs (bootloaders) on older versions of verifiers. Compliance with the rules of L2 STF can not be independently verified without the sources of these programs.",
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x13e120F6c8E747983F7aaF0f7731796bfcb0D934"
]
}
+1 -1
{
"baseTimestamp": 1783503373,
"baseTimestamp": 1783678624,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1783513569,
"baseTimestamp": 1783679422,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+1 -1
+1 -1
{
"baseTimestamp": 1783513569,
"baseTimestamp": 1783679422,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+485 -67
+11 -2
{
"architectureImage": "zkstack-rollup",
"dataAvailability": [
{
"name": "All data required for proofs is published on chain",
"description": "All the data that is used to construct the system state is published on chain in the form of cheap blobs or calldata. This ensures that it will be available for enough time.",
"risks": [],
"references": []
}
],
"exitMechanisms": [
{
"name": "Regular messaging",
"description": "The user initiates L2->L1 messages by submitting a regular transaction on this chain. When the block containing that transaction is settled, the message becomes available for processing on L1. ZK proofs are required to settle blocks.",
"risks": [],
"references": [
{
"title": "Withdrawing funds - ZKsync documentation",
"url": "https://docs.zksync.io/zksync-protocol/rollup/bridging-assets"
}
]
},
{
"name": "Forced messaging",
"description": "If the user experiences censorship from the operator with regular L2->L1 messaging they can submit their messages directly on L1. The system is then obliged to service this request or halt all messages from L1, including all forced withdrawals and deposits. Once the force operation is submitted and if the request is serviced, the operation follows the flow of a regular message.",
"risks": [],
"references": []
}
],
"forceTransactions": {
"name": "Users can force any transaction via L1",
"description": "If a user is censored by the L2 Sequencer, they can try to force their transaction via an L1 queue. Right now there is no mechanism that forces L2 Sequencer to include transactions from the queue in an L2 block. The operator can implement a TransactionFilterer that censors forced transactions.",
"risks": [
{
"category": "Users can be censored if",
"text": "the operator refuses to include their transactions."
},
{
"category": "Users can be censored if",
"text": "the operator implements a TransactionFilterer, which is possible without delay."
}
],
"references": [
{
"title": "L1 - L2 interoperability - Developer's documentation",
"url": "https://docs.zksync.io/zksync-protocol/era-vm/contracts/handling-l1-l2-ops"
}
]
},
"operator": {
"name": "The system has a centralized operator",
"description": "The operator is the only entity that can propose blocks. A live and trustworthy operator is vital to the health of the system.",
"description": "The operator is the only entity that can propose blocks. A live and trustworthy operator is vital to the health of the system.\n\nBatch execution is initiated by permissioned executor EOAs, but each batch also requires approval from the sufficient number of EraMultisigValidator members before it can be executed on L1.",
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
},
{
"category": "Users can be censored if",
"text": "the validator multisig does not approve batch execution."
}
],
"references": []
"references": [
{
"title": "EraMultisigValidator - Etherscan proxy contract",
"url": "https://etherscan.io/address/0xC62BDE55caaB102714c6b9F7e29e05D9237EfD83"
}
]
},
"stateDerivation": {
"nodeSoftware": "The node software is open-source, and its source code can be found [here](https://github.com/matter-labs/zksync-era).\n The main node software does not rely on Layer 1 (L1) to reconstruct the state, but you can use [this tool](https://github.com/eqlabs/zksync-state-reconstruct) for that purpose. Currently, there is no straightforward method to inject the state into the main node, but ZKsync is actively working on a solution for this.",
"compressionScheme": "Bytecodes undergo compression before deployment on Layer 1 (L1). You can find additional information on this process [here](https://github.com/matter-labs/zksync-era/blob/main/docs/src/guides/advanced/11_compression.md).",
"genesisState": "There have been neither genesis states nor regenesis.",
"dataFormat": "Details on data format can be found [here](https://github.com/matter-labs/zksync-era/blob/main/docs/src/guides/advanced/09_pubdata.md)."
},
"stateValidation": {
"description": "Each update to the system state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Ethereum by a smart contract.",
"categories": [
{
"title": "Prover Architecture",
"description": "ZKsync Era proof system Boojum can be found [here](https://github.com/matter-labs/era-boojum/tree/main) and contains essential tools like the Prover, the Verifier, and other backend components. The specs of the system can be found [here](https://github.com/matter-labs/zksync-era/tree/main/prover)."
},
{
"title": "ZK Circuits",
"description": "ZKsync Era circuits are built from Boojum and are designed to replicate the behavior of the EVM. The source code can be found [here](https://github.com/matter-labs/era-zkevm_circuits/tree/main). The circuits are checked against tests that can be found [here](https://github.com/matter-labs/era-zkevm_test_harness/tree/main).",
"risks": [
{
"category": "Funds can be lost if",
"text": "the proof system is implemented incorrectly."
}
]
},
{
"title": "Verification Keys Generation",
"description": "SNARK verification keys can be generated and checked against the Ethereum verifier contract using [this tool](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri). The system requires a trusted setup."
}
]
},
"upgradesAndGovernance": {
"content": "There are two main paths for contract upgrades in the shared ZK stack ecosystem - standard and emergency - both converging on the shared upgrade management contract ProtocolUpgradeHandler.\nThe standard path involves a governance proposal and voting through the DAO, multiple timelock delays and finally approval by the Guardians or 4 SecurityCouncil participants.\nThe emergency path allows for contract upgrades without any delay by the EmergencyUpgradeBoard, which acts as a 3/3 Multisig between SecurityCouncil, Guardians and the FoundationMultisig.\n## Standard path\n### On ZKsync Era\nDelegates can start new proposals by reaching a threshold of 21M ZK tokens on the ZKsync Era Rollup's ZkProtocolGovernor contract.\nThis launches a 3d 'voting delay' after which the 7d voting period starts. During these first two periods, the proposal can be canceled by the proposer or if it falls below the proposing threshold.\nA proposal is only successful if it reaches both quorum (630M ZK tokens) and simple majority. When it reaches quorum, a remaining voting period of 3d is guaranteed by a potential late quorum vote extension.\nIn the successful case, it can be queued in the 0s timelock which forwards it via the Gateway to Ethereum as an L2->L1 log.\n### On Ethereum\nAfter the execution of the proposal-containing batch (3h delay), the proposal is now picked up by the ProtocolUpgradeHandler and enters the 3d 'legal veto period'.\nThis serves as a window in which a veto could be coordinated offchain, to be then enforced by non-approval of Guardians and SecurityCouncil. A threshold of 2 Guardians can extend the veto period to 7d.\nAfter this a proposal enters a *waiting* state of 1mo, from which it can be immediately approved (cancelling the delay) by 4 participants of the SecurityCouncil.\nFor the unlikely case that the Security Council does not approve here, the Guardians can instead approve the proposal, or nobody. In the two latter cases, the waiting period is enforced in full.\nA proposal cannot be actively cancelled in the ProtocolUpgradeHandler, but will expire if not approved within the waiting period. An approved proposal now enters the *pendingExecution* state for a final delay of 1d and can then be executed.\n### Other governance tracks\nThere are two other tracks of Governance also starting with DAO Delegate proposals the ZKsync Era rollup: 1) Token Program Proposals that add new minters, allocations or upgrade the ZK token and\n2) Governance Advisory Proposals that e.g. change the ZK Credo or other offchain Governance Procedures without onchain targets.\nThe protocol for these two other tracks is similar to the first part of the standard path described above (albeit having different quorum and timelock values), and not passing over to the Ethereum L1.\nFurther customizations are that the ZkFoundationMultisig can propose to the ZkTokenGovernor without a threshold and that the Guardians' L2 alias can cancel proposals in the ZkTokenGovernor and the ZkGovOpsGovernor.\n## Emergency path\nSecurityCouncil (6/8), Guardians (5/8) and ZkFoundationMultisig (3/5) form a de-facto 3/3 Multisig\nby pushing an immediate upgrade proposal through the EmergencyUpgradeBoard, which circumvents all delays and executes immediately via the ProtocolUpgradeHandler.\n## Upgrade Delays\nThe cumulative duration of the upgrade paths from the moment of a voted 'successful' proposal is 4d 3h or 8d 3h (depending on Guardians extending the LegalVetoPeriod) for Standard, 0 for Emergency and 1mo 4d for the path in which the SecurityCouncil is not approving the proposal.\n## Freezing\nThe SecurityCouncil can freeze (pause withdrawals and settlement) all chains connected to the current ChainTypeManager.\nEither for a softFreeze of 12h or a hardFreeze of 7d.\nAfter a softFreeze and / or a hardFreeze, a proposal from the EmergencyUpgradeBoard has to be passed before subsequent freezes are possible.\nOnly the SecurityCouncil can unfreeze an active freeze.\n## ZK cluster Admin and Chain Admin\nApart from the paths that can upgrade all shared implementations, the ZK stack governance system defines other roles that can modify the system:\nA single *ZK cluster Admin* role who governs parameters in the shared contracts and a *Chain Admin* role (defined in each chain-specific diamond contract) for managing parameters of each individual ZK chain that builds on the stack.\nThese chain-specific actions include critical operations like setting a transaction filterer that can censor L1 -> L2 messages, changing the DA mode, migrating the chain to a different settlement layer and standard operations like setting fee parameters and adding / removing Validators in the ValidatorTimelock.\nFor rollups, data availability on Ethereum is validated by a RollupL1DAValidator contract (or a RelayedSLDAValidator on the Gateway). Each rollup can become a permanent rollup (through their Chain Admin) which disallows DA changes to non-whitelisted sources or settlement layers in the future.\nThe source of truth for rollup-compliant DA validator contracts is the RollupDAManager contract, which is administered via the ProtocolUpgradeHandler.\nZKsync Era's Chain Admin differs from the others as it also has the above *ZK cluster Admin* role in the shared ZK stack contracts.",
"image": "zkstack"
}
}
+83 -0
[
{
"projectId": "zeronetwork",
"sinceTimestamp": 1729616414,
"untilTimestamp": 1742860739,
"type": "l2costs",
"subtype": "batchSubmissions",
"params": {
"formula": "sharedBridge",
"address": "0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E",
"signature": "function commitBatchesSharedBridge(uint256 _chainId, (uint64 batchNumber, bytes32 batchHash, uint64 indexRepeatedStorageChanges, uint256 numberOfLayer1Txs, bytes32 priorityOperationsHash, bytes32 l2LogsTreeRoot, uint256 timestamp, bytes32 commitment) _lastCommittedBatchData, (uint64 batchNumber, uint64 timestamp, uint64 indexRepeatedStorageChanges, bytes32 newStateRoot, uint256 numberOfLayer1Txs, bytes32 priorityOperationsHash, bytes32 bootloaderHeapInitialContentsHash, bytes32 eventsQueueStateHash, bytes systemLogs, bytes pubdataCommitments)[] _newBatchesData)",
"selector": "0x6edd4f12",
"firstParameter": 543210
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1729616414,
"untilTimestamp": 1742860739,
"type": "liveness",
"subtype": "proofSubmissions",
"params": {
"formula": "sharedBridge",
"address": "0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E",
"signature": "function proveBatchesSharedBridge(uint256 _chainId,(uint64 batchNumber, bytes32 batchHash, uint64 indexRepeatedStorageChanges, uint256 numberOfLayer1Txs, bytes32 priorityOperationsHash, bytes32 l2LogsTreeRoot, uint256 timestamp, bytes32 commitment) _prevBatch, (uint64 batchNumber, bytes32 batchHash, uint64 indexRepeatedStorageChanges, uint256 numberOfLayer1Txs, bytes32 priorityOperationsHash, bytes32 l2LogsTreeRoot, uint256 timestamp, bytes32 commitment)[] _committedBatches, (uint256[] recursiveAggregationInput, uint256[] serializedProof) _proof)",
"selector": "0xc37533bb",
"firstParameter": 543210
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1729616414,
"untilTimestamp": 1742860739,
"type": "l2costs",
"subtype": "proofSubmissions",
"params": {
"formula": "sharedBridge",
"address": "0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E",
"signature": "function proveBatchesSharedBridge(uint256 _chainId,(uint64 batchNumber, bytes32 batchHash, uint64 indexRepeatedStorageChanges, uint256 numberOfLayer1Txs, bytes32 priorityOperationsHash, bytes32 l2LogsTreeRoot, uint256 timestamp, bytes32 commitment) _prevBatch, (uint64 batchNumber, bytes32 batchHash, uint64 indexRepeatedStorageChanges, uint256 numberOfLayer1Txs, bytes32 priorityOperationsHash, bytes32 l2LogsTreeRoot, uint256 timestamp, bytes32 commitment)[] _committedBatches, (uint256[] recursiveAggregationInput, uint256[] serializedProof) _proof)",
"selector": "0xc37533bb",
"firstParameter": 543210
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1729616414,
"untilTimestamp": 1742860739,
"type": "liveness",
"subtype": "stateUpdates",
"params": {
"formula": "sharedBridge",
"address": "0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E",
"signature": "function executeBatchesSharedBridge(uint256 _chainId, (uint64 batchNumber, bytes32 batchHash, uint64 indexRepeatedStorageChanges, uint256 numberOfLayer1Txs, bytes32 priorityOperationsHash, bytes32 l2LogsTreeRoot, uint256 timestamp, bytes32 commitment)[] _batchesData)",
"selector": "0x6f497ac6",
"firstParameter": 543210
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1729616414,
"untilTimestamp": 1742860739,
"type": "l2costs",
"subtype": "stateUpdates",
"params": {
"formula": "sharedBridge",
"address": "0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E",
"signature": "function executeBatchesSharedBridge(uint256 _chainId, (uint64 batchNumber, bytes32 batchHash, uint64 indexRepeatedStorageChanges, uint256 numberOfLayer1Txs, bytes32 priorityOperationsHash, bytes32 l2LogsTreeRoot, uint256 timestamp, bytes32 commitment)[] _batchesData)",
"selector": "0x6f497ac6",
"firstParameter": 543210
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1742860739,
"untilTimestamp": 1783512011,
"type": "l2costs",
"subtype": "batchSubmissions",
"params": {
"formula": "sharedBridge",
"address": "0x8c0Bfc04AdA21fd496c55B8C50331f904306F564",
"signature": "function commitBatchesSharedBridge(uint256 _chainId, uint256 _processBatchFrom, uint256 _processBatchTo, bytes)",
"selector": "0x98f81962",
"firstParameter": 543210
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1742860739,
"untilTimestamp": 1783512011,
"type": "liveness",
"subtype": "proofSubmissions",
"params": {
"formula": "sharedBridge",
"address": "0x8c0Bfc04AdA21fd496c55B8C50331f904306F564",
"signature": "function proveBatchesSharedBridge(uint256 _chainId, uint256, uint256, bytes)",
"selector": "0xe12a6137",
"firstParameter": 543210
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1742860739,
"untilTimestamp": 1783512011,
"type": "l2costs",
"subtype": "proofSubmissions",
"params": {
"formula": "sharedBridge",
"address": "0x8c0Bfc04AdA21fd496c55B8C50331f904306F564",
"signature": "function proveBatchesSharedBridge(uint256 _chainId, uint256, uint256, bytes)",
"selector": "0xe12a6137",
"firstParameter": 543210
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1742860739,
"untilTimestamp": 1783512011,
"type": "liveness",
"subtype": "stateUpdates",
"params": {
"formula": "sharedBridge",
"address": "0x8c0Bfc04AdA21fd496c55B8C50331f904306F564",
"signature": "function executeBatchesSharedBridge(uint256 _chainId, uint256 _processBatchFrom, uint256 _processBatchTo, bytes)",
"selector": "0xcf02827d",
"firstParameter": 543210
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1742860739,
"untilTimestamp": 1783512011,
"type": "l2costs",
"subtype": "stateUpdates",
"params": {
"formula": "sharedBridge",
"address": "0x8c0Bfc04AdA21fd496c55B8C50331f904306F564",
"signature": "function executeBatchesSharedBridge(uint256 _chainId, uint256 _processBatchFrom, uint256 _processBatchTo, bytes)",
"selector": "0xcf02827d",
"firstParameter": 543210
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1783512011,
"type": "l2costs",
"subtype": "batchSubmissions",
"params": {
"formula": "sharedBridge",
"address": "0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"signature": "function commitBatchesSharedBridge(address _chainAddress, uint256 _processBatchFrom, uint256 _processBatchTo, bytes)",
"selector": "0x0db9eb87",
"firstParameter": "0xdbD849acC6bA61F461CB8A41BBaeE2D673CA02d9"
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1783512011,
"type": "l2costs",
"subtype": "batchSubmissions",
"params": {
"formula": "sharedBridge",
"address": "0xC62BDE55caaB102714c6b9F7e29e05D9237EfD83",
"signature": "function commitBatchesSharedBridge(address _chainAddress, uint256 _processBatchFrom, uint256 _processBatchTo, bytes)",
"selector": "0x0db9eb87",
"firstParameter": "0xdbD849acC6bA61F461CB8A41BBaeE2D673CA02d9"
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1783512011,
"type": "liveness",
"subtype": "proofSubmissions",
"params": {
"formula": "sharedBridge",
"address": "0xC62BDE55caaB102714c6b9F7e29e05D9237EfD83",
"signature": "function proveBatchesSharedBridge(address _chainAddress, uint256, uint256, bytes)",
"selector": "0x9271e450",
"firstParameter": "0xdbD849acC6bA61F461CB8A41BBaeE2D673CA02d9"
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1783512011,
"type": "l2costs",
"subtype": "proofSubmissions",
"params": {
"formula": "sharedBridge",
"address": "0xC62BDE55caaB102714c6b9F7e29e05D9237EfD83",
"signature": "function proveBatchesSharedBridge(address _chainAddress, uint256, uint256, bytes)",
"selector": "0x9271e450",
"firstParameter": "0xdbD849acC6bA61F461CB8A41BBaeE2D673CA02d9"
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1783512011,
"type": "liveness",
"subtype": "stateUpdates",
"params": {
"formula": "sharedBridge",
"address": "0xC62BDE55caaB102714c6b9F7e29e05D9237EfD83",
"signature": "function executeBatchesSharedBridge(address _chainAddress, uint256 _processBatchFrom, uint256 _processBatchTo, bytes)",
"selector": "0xa085344d",
"firstParameter": "0xdbD849acC6bA61F461CB8A41BBaeE2D673CA02d9"
}
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1783512011,
"type": "l2costs",
"subtype": "stateUpdates",
"params": {
"formula": "sharedBridge",
"address": "0xC62BDE55caaB102714c6b9F7e29e05D9237EfD83",
"signature": "function executeBatchesSharedBridge(address _chainAddress, uint256 _processBatchFrom, uint256 _processBatchTo, bytes)",
"selector": "0xa085344d",
"firstParameter": "0xdbD849acC6bA61F461CB8A41BBaeE2D673CA02d9"
}
}
]
+3 -6
[
{
"type": "ethereum",
"daLayer": "ethereum",
"sinceBlock": 21809364,
"inbox": "0x8c0Bfc04AdA21fd496c55B8C50331f904306F564",
"sinceBlock": 23397515,
"inbox": "0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"sequencers": [
"0x479B7c95b9509E1A834C994fc94e3581aA8A73B9",
"0x0F9B807d5B0cE12450059B425Dc35C727D65CB2F",
"0xef854E09fa6e281268e1051D4d5465d8c92862ee",
"0x7b55c1D9b75Fa35793157aD674b0a1aEF7b8DdE0"
"0xC62BDE55caaB102714c6b9F7e29e05D9237EfD83"
]
}
]
+339 -35
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "EmergencyUpgradeBoard",
"name": "EmergencyUpgradeBoard",
"accounts": [
{
"address": "eth:0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111",
"type": "Contract",
"isVerified": true,
"name": "0xF73aâĻa111",
"url": "https://etherscan.io/address/0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111"
}
],
"chain": "ethereum",
"description": "A custom contract allowing a 3/3 of SecurityCouncil, ZK Foundation Multisig and Guardians to `executeEmergencyUpgrade()` via the ProtocolUpgradeHandler.\n* Can upgrade **with no delay**\n * BridgeHub [via: ProtocolUpgradeHandler â ProxyAdmin]\n * MessageRoot [via: ProtocolUpgradeHandler â ProxyAdmin]\n * CTMDeploymentTracker [via: ProtocolUpgradeHandler â ProxyAdmin]\n * L1AssetRouter [via: ProtocolUpgradeHandler â ProxyAdmin]\n * L1NativeTokenVault [via: ProtocolUpgradeHandler â ProxyAdmin]\n * ChainTypeManager [via: ProtocolUpgradeHandler â ProxyAdmin]\n * L1Nullifier [via: ProtocolUpgradeHandler â ProxyAdmin]\n * ChainAssetHandler [via: ProtocolUpgradeHandler â ProxyAdmin]\n * ProtocolUpgradeHandler [via: ProtocolUpgradeHandler â ProxyAdmin]\n* Can interact with BridgeHub\n * set critical contract addresses for the shared cluster, register settlement layers, pause and unpause migrations and the bridge and manage zk chain registration [via: ProtocolUpgradeHandler]\n* Can interact with L1NativeTokenVault\n * pause / unpause the bridge [via: ProtocolUpgradeHandler]\n* Can interact with ChainTypeManager\n * manage the shared ValidatorTimelock contract address and the admin role, register and execute upgrades (and set their deadlines), freeze, revert batches and set permissioned validators and fee params for all connected chains [via: ProtocolUpgradeHandler]\n* Can interact with L1Nullifier\n * pause, unpause and set critical escrow address references [via: ProtocolUpgradeHandler]\n* Can interact with ChainAssetHandler\n * pause, resume chain migrations [via: ProtocolUpgradeHandler]\n* Can interact with RollupDAManager\n * manage allowed rollup DA pairs (allowed to be used by rollups in permanent rollup mode) [via: ProtocolUpgradeHandler]",
"discoveryDrivenData": true
},
{
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy â ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * revert batches for any connected chain (ZK cluster Admin role) [via: EraChainAdminProxy]",
"accounts": [
{
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"type": "Contract",
"isVerified": true,
"name": "0x4e49âĻ7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEE7d66B84175cc423900595d1807A0371D66dE46",
"type": "EOA",
"isVerified": true,
"name": "0xEE7dâĻdE46",
"url": "https://etherscan.io/address/0xEE7d66B84175cc423900595d1807A0371D66dE46"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x3F00âĻc481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1",
"type": "EOA",
"isVerified": true,
"name": "0x5C7EâĻf1B1",
"url": "https://etherscan.io/address/0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x3068âĻd2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"type": "EOA",
"isVerified": true,
"name": "0xFAdbâĻ79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
},
{
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"type": "EOA",
"isVerified": true,
"name": "0xAf0BâĻ9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
},
{
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"type": "EOA",
"isVerified": true,
"name": "0x7408âĻ70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
}
],
"discoveryDrivenData": true
},
{
"id": "SecurityCouncil",
"name": "SecurityCouncil",
"description": "A Multisig with 6/8 threshold. \nCustom Multisig implementation that has a general threshold of 6 but also specific thresholds for upgrade approvals (4) or soft freezes (3).\n* Can interact with ProtocolUpgradeHandler\n * soft freeze, hard freeze, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x59195219d1176E42f8e607e9AC114926D47f9035",
"type": "Contract",
"isVerified": true,
"name": "0x5919âĻ9035",
"url": "https://etherscan.io/address/0x59195219d1176E42f8e607e9AC114926D47f9035"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-3-zksync-security-council"
}
],
"participants": [
{
"address": "eth:0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a"
},
{
"address": "eth:0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F"
},
{
"address": "eth:0x69462a81ba94D64c404575f1899a464F123497A2",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x69462a81ba94D64c404575f1899a464F123497A2"
},
{
"address": "eth:0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0"
},
{
"address": "eth:0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803"
},
{
"address": "eth:0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44"
},
{
"address": "eth:0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e"
},
{
"address": "eth:0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231"
}
],
"discoveryDrivenData": true
},
{
"id": "Guardians",
"name": "Guardians",
"description": "A Multisig with 5/8 threshold. \nCustom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n* Can interact with ProtocolUpgradeHandler\n * extend the legal veto period, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x600dA620Ab29F41ABC6596a15981e14cE58c86b8",
"type": "Contract",
"isVerified": true,
"name": "0x600dâĻ86b8",
"url": "https://etherscan.io/address/0x600dA620Ab29F41ABC6596a15981e14cE58c86b8"
}
],
"chain": "ethereum",
"references": [
{
"title": "Guardians - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-4-zksync-guardians"
}
],
"participants": [
{
"address": "eth:0x015318c16AE443a20DE0A776dB06a59F0D279057",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x015318c16AE443a20DE0A776dB06a59F0D279057"
},
{
"address": "eth:0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D"
},
{
"address": "eth:0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384"
},
{
"address": "eth:0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f"
},
{
"address": "eth:0x55c671BcE13120387Ded710A1d1b80C0e3d8E857",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x55c671BcE13120387Ded710A1d1b80C0e3d8E857"
},
{
"address": "eth:0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69"
},
{
"address": "eth:0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0"
},
{
"address": "eth:0xCe7a3dFcc35602155809920Ff65e093aa726f6cf",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xCe7a3dFcc35602155809920Ff65e093aa726f6cf"
}
],
"discoveryDrivenData": true
},
{
"id": "ValidatorTimelock",
"name": "ValidatorTimelock",
"accounts": [
{
"address": "eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"type": "Contract",
"isVerified": true,
"name": "0x2e51âĻb776",
"url": "https://etherscan.io/address/0x2e5110cF18678Ec99818bFAa849B8C881744b776"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n* Can interact with Diamond\n * commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock ",
"discoveryDrivenData": true
},
{
"id": "Zeronetwork Multisig",
"name": "Zeronetwork Multisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with Diamond\n * administrate operator roles for this chain in the ValidatorTimelock, manage fees, apply predefined upgrades, manage censorship through a TransactionFilterer, set DA mode, migrate the chain to whitelisted settlement layers (Chain Admin role) [via: ZeroNetworkZkEvmAdmin]",
"accounts": [
{
"address": "eth:0x2e5BE1479cF661eeD9F526b7926eA87F6A5dD6a9",
"type": "Contract",
"isVerified": true,
"name": "0x2e5BâĻD6a9",
"url": "https://etherscan.io/address/0x2e5BE1479cF661eeD9F526b7926eA87F6A5dD6a9"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xA167ca2984F7e08EFd4DDf9c5a4A21D66c07813E",
"type": "EOA",
"isVerified": true,
"name": "0xA167âĻ813E",
"url": "https://etherscan.io/address/0xA167ca2984F7e08EFd4DDf9c5a4A21D66c07813E"
},
{
"address": "eth:0xc858a504d6c267fe2d462D240b68A7D939B1fEC9",
"type": "EOA",
"isVerified": true,
"name": "0xc858âĻfEC9",
"url": "https://etherscan.io/address/0xc858a504d6c267fe2d462D240b68A7D939B1fEC9"
},
{
"address": "eth:0xF322467cec88d3CDFa9376B19bD5AD40da665277",
"type": "EOA",
"isVerified": true,
"name": "0xF322âĻ5277",
"url": "https://etherscan.io/address/0xF322467cec88d3CDFa9376B19bD5AD40da665277"
},
{
"address": "eth:0x3Bc72A56F9036B94ad14BF082bF93731e0545255",
"type": "EOA",
"isVerified": true,
"name": "0x3Bc7âĻ5255",
"url": "https://etherscan.io/address/0x3Bc72A56F9036B94ad14BF082bF93731e0545255"
},
{
"address": "eth:0x3Ec90fA056A39e7281a5b4c8c044B86667D770e1",
"type": "EOA",
"isVerified": true,
"name": "0x3Ec9âĻ70e1",
"url": "https://etherscan.io/address/0x3Ec90fA056A39e7281a5b4c8c044B86667D770e1"
}
],
"discoveryDrivenData": true
},
{
"id": "ValidatorTimelock",
"name": "ValidatorTimelock",
"id": "Abstract Multisig",
"name": "Abstract Multisig",
"description": "A Multisig with 4/8 threshold. \n* Can upgrade **with no delay**\n * EraMultisigValidator [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0x8c0Bfc04AdA21fd496c55B8C50331f904306F564",
"address": "eth:0x7F3EaB9ccf1d8B9705F7ede895d3b4aC1b631063",
"type": "Contract",
"isVerified": true,
"name": "0x8c0BâĻF564",
"url": "https://etherscan.io/address/0x8c0Bfc04AdA21fd496c55B8C50331f904306F564"
"name": "0x7F3EâĻ1063",
"url": "https://etherscan.io/address/0x7F3EaB9ccf1d8B9705F7ede895d3b4aC1b631063"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n* Can interact with Diamond\n * commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock ",
"references": [],
"participants": [
{
"address": "eth:0x57533344e91d29f927AAEBee364A33633Bd205Ab",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
},
{
"address": "eth:0xFC84E99984A3526dea97c408f5991A5E099f3Da2",
"type": "EOA",
"isVerified": true,
"name": "0xFC84âĻ3Da2",
"url": "https://etherscan.io/address/0xFC84E99984A3526dea97c408f5991A5E099f3Da2"
},
{
"address": "eth:0x58536761C97F5037931b56efeE922471add0eEe8",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
},
{
"address": "eth:0x0807C9f0247084cf1C5aB86A8fb00e7c70Cd27eB",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
},
{
"address": "eth:0x1CdfBDED92D46261837827607e674110Ca5a0575",
"type": "EOA",
"isVerified": true,
"name": "0x1CdfâĻ0575",
"url": "https://etherscan.io/address/0x1CdfBDED92D46261837827607e674110Ca5a0575"
},
{
"address": "eth:0x325407EEC948b97429068AF0cd8A8D95F06315a4",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
},
{
"address": "eth:0x77D1124E9061d238430Df3F4311111BDf69a4CFA",
"type": "EOA",
"isVerified": true,
"name": "0x77D1âĻ4CFA",
"url": "https://etherscan.io/address/0x77D1124E9061d238430Df3F4311111BDf69a4CFA"
},
{
"address": "eth:0x79CF3eCF9Bbfd793d8Be62ED44D98d9AfA657892",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
}
],
"discoveryDrivenData": true
},
{
"id": "EraMultisigValidator",
"name": "EraMultisigValidator",
"description": "A Multisig with 1/2 threshold. \nA multisig wrapper around `ValidatorTimelock` that requires a threshold of approvals before batch execution can proceed, provides additional security through 2FA.\n* Can interact with ValidatorTimelock\n * Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract ",
"accounts": [
{
"address": "eth:0xC62BDE55caaB102714c6b9F7e29e05D9237EfD83",
"type": "Contract",
"isVerified": true,
"name": "0xC62BâĻfD83",
"url": "https://etherscan.io/address/0xC62BDE55caaB102714c6b9F7e29e05D9237EfD83"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x8C84654F387e1c6b75B5ECF6A786997da2e8037a",
"type": "EOA",
"isVerified": true,
"name": "0x8C84âĻ037a",
"url": "https://etherscan.io/address/0x8C84654F387e1c6b75B5ECF6A786997da2e8037a"
},
{
"address": "eth:0xb279092b5D7637e22617178f31f08229bf4FCB42",
"type": "EOA",
"isVerified": true,
"name": "0xb279âĻCB42",
"url": "https://etherscan.io/address/0xb279092b5D7637e22617178f31f08229bf4FCB42"
}
],
"discoveryDrivenData": true
},
{
"id": "ZK Foundation Multisig",
"name": "ZK Foundation Multisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0xbC1653bd3829dfEc575AfC3816D4899cd103B51c",
"type": "Contract",
"isVerified": true,
"name": "0xbC16âĻB51c",
"url": "https://etherscan.io/address/0xbC1653bd3829dfEc575AfC3816D4899cd103B51c"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52",
"type": "EOA",
"isVerified": true,
"name": "0xA10fâĻbE52",
"url": "https://etherscan.io/address/0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52"
},
{
"address": "eth:0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222",
"type": "EOA",
"isVerified": true,
"name": "0x56B3âĻ2222",
"url": "https://etherscan.io/address/0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222"
},
{
"address": "eth:0x441e5c8910Ef39996B2D01499509861228cbc2d1",
"type": "EOA",
"isVerified": true,
"name": "0x441eâĻc2d1",
"url": "https://etherscan.io/address/0x441e5c8910Ef39996B2D01499509861228cbc2d1"
},
{
"address": "eth:0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709",
"type": "EOA",
"isVerified": true,
"name": "0x0B2EâĻ4709",
"url": "https://etherscan.io/address/0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709"
},
{
"address": "eth:0x610e45F112e0c8a9aA7137677C83E7A198A1b991",
"type": "EOA",
"isVerified": true,
"name": "0x610eâĻb991",
"url": "https://etherscan.io/address/0x610e45F112e0c8a9aA7137677C83E7A198A1b991"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 2/4 threshold. \nMember of Abstract Multisig.\n",
"accounts": [
{
"address": "eth:0x7b55c1D9b75Fa35793157aD674b0a1aEF7b8DdE0",
"address": "eth:0x0807C9f0247084cf1C5aB86A8fb00e7c70Cd27eB",
"type": "Contract",
"isVerified": true,
"name": "0x0807âĻ27eB",
"url": "https://etherscan.io/address/0x0807C9f0247084cf1C5aB86A8fb00e7c70Cd27eB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x277D26a45Add5775F21256159F089769892CEa5B",
"type": "EOA",
"isVerified": true,
"name": "0x7b55âĻDdE0",
"url": "https://etherscan.io/address/0x7b55c1D9b75Fa35793157aD674b0a1aEF7b8DdE0",
"displayName": "EOA 1"
"name": "0x277DâĻEa5B",
"url": "https://etherscan.io/address/0x277D26a45Add5775F21256159F089769892CEa5B"
},
{
"address": "eth:0xef854E09fa6e281268e1051D4d5465d8c92862ee",
"address": "eth:0xc12F6A2D93C0788366FC91aeBf21b33CCCb0c0d8",
"type": "EOA",
"isVerified": true,
"name": "0xef85âĻ62ee",
"url": "https://etherscan.io/address/0xef854E09fa6e281268e1051D4d5465d8c92862ee",
"displayName": "EOA 2"
"name": "0xc12FâĻc0d8",
"url": "https://etherscan.io/address/0xc12F6A2D93C0788366FC91aeBf21b33CCCb0c0d8"
},
{
"address": "eth:0xE57e5D24660d83bf8A40Ca2269d31D4A2F4F3C47",
"type": "EOA",
"isVerified": true,
"name": "0xE57eâĻ3C47",
"url": "https://etherscan.io/address/0xE57e5D24660d83bf8A40Ca2269d31D4A2F4F3C47"
},
{
"address": "eth:0x3846c3A30E62075Fa916216b35EF04B8F53931f6",
"type": "EOA",
"isVerified": true,
"name": "0x3846âĻ31f6",
"url": "https://etherscan.io/address/0x3846c3A30E62075Fa916216b35EF04B8F53931f6"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 2/6 threshold. \nMember of Abstract Multisig.\n",
"accounts": [
{
"address": "eth:0x325407EEC948b97429068AF0cd8A8D95F06315a4",
"type": "Contract",
"isVerified": true,
"name": "0x3254âĻ15a4",
"url": "https://etherscan.io/address/0x325407EEC948b97429068AF0cd8A8D95F06315a4"
}
],
"chain": "ethereum",
"description": "* Can interact with ValidatorTimelock\n * Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract ",
"references": [],
"participants": [
{
"address": "eth:0x392C009a49E9368Fc2bDd8B1e5520E62DEB8276c",
"type": "EOA",
"isVerified": true,
"name": "0x392CâĻ276c",
"url": "https://etherscan.io/address/0x392C009a49E9368Fc2bDd8B1e5520E62DEB8276c"
},
{
"address": "eth:0xfBbBa4FbAA3A99bA842924d4c47C14d6d61D9615",
"type": "EOA",
"isVerified": true,
"name": "0xfBbBâĻ9615",
"url": "https://etherscan.io/address/0xfBbBa4FbAA3A99bA842924d4c47C14d6d61D9615"
},
{
"address": "eth:0x23F48e7BF163941Ebeb7a6106B8ac712a8c54f75",
"type": "EOA",
"isVerified": true,
"name": "0x23F4âĻ4f75",
"url": "https://etherscan.io/address/0x23F48e7BF163941Ebeb7a6106B8ac712a8c54f75"
},
{
"address": "eth:0x4d64Ff9c7aB6F4Dc6dD7D9438BCBA70e3E094e3E",
"type": "EOA",
"isVerified": true,
"name": "0x4d64âĻ4e3E",
"url": "https://etherscan.io/address/0x4d64Ff9c7aB6F4Dc6dD7D9438BCBA70e3E094e3E"
},
{
"address": "eth:0xa925fac7B26C2959b5d55173B21CAc5729372459",
"type": "EOA",
"isVerified": true,
"name": "0xa925âĻ2459",
"url": "https://etherscan.io/address/0xa925fac7B26C2959b5d55173B21CAc5729372459"
},
{
"address": "eth:0xFa700392b4B2223356401eDb1AA51665CC4bD9A4",
"type": "EOA",
"isVerified": true,
"name": "0xFa70âĻD9A4",
"url": "https://etherscan.io/address/0xFa700392b4B2223356401eDb1AA51665CC4bD9A4"
}
],
"discoveryDrivenData": true
},
{
"id": "ProtocolTimelockController(L2->L1)",
"name": "ProtocolTimelockController(L2->L1)",
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 1/3 threshold. \nMember of Abstract Multisig.\n",
"accounts": [
{
"address": "eth:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"address": "eth:0x57533344e91d29f927AAEBee364A33633Bd205Ab",
"type": "Contract",
"isVerified": true,
"name": "0x5753âĻ05Ab",
"url": "https://etherscan.io/address/0x57533344e91d29f927AAEBee364A33633Bd205Ab"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xafc7805c640C4A9E5D28f6A5Eae23b50e59B831c",
"type": "EOA",
"isVerified": true,
"name": "0x085bâĻc714",
"url": "https://etherscan.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714",
"displayName": "ProtocolTimelockController(L2->L1)"
"name": "0xafc7âĻ831c",
"url": "https://etherscan.io/address/0xafc7805c640C4A9E5D28f6A5Eae23b50e59B831c"
},
{
"address": "eth:0xdF28907A6A272fa06333a197d7F0379A0f8f00aa",
"type": "EOA",
"isVerified": true,
"name": "0xdF28âĻ00aa",
"url": "https://etherscan.io/address/0xdF28907A6A272fa06333a197d7F0379A0f8f00aa"
},
{
"address": "eth:0xCe20135Ac0253650E28Ea14911c69F1fADD8b06f",
"type": "EOA",
"isVerified": true,
"name": "0xCe20âĻb06f",
"url": "https://etherscan.io/address/0xCe20135Ac0253650E28Ea14911c69F1fADD8b06f"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 1/3 threshold. \nMember of Abstract Multisig.\n",
"accounts": [
{
"address": "eth:0x58536761C97F5037931b56efeE922471add0eEe8",
"type": "Contract",
"isVerified": true,
"name": "0x5853âĻeEe8",
"url": "https://etherscan.io/address/0x58536761C97F5037931b56efeE922471add0eEe8"
}
],
"chain": "ethereum",
"description": "* Can interact with ProtocolUpgradeHandler\n * start (queue) upgrades ",
"references": [],
"participants": [
{
"address": "eth:0xe2eB80C72Fa12Ba50B3bD6545709DC153D5b26D2",
"type": "EOA",
"isVerified": true,
"name": "0xe2eBâĻ26D2",
"url": "https://etherscan.io/address/0xe2eB80C72Fa12Ba50B3bD6545709DC153D5b26D2"
},
{
"address": "eth:0xd757D6A02cD5af9AEF163D7eB8034f75ac22B553",
"type": "EOA",
"isVerified": true,
"name": "0xd757âĻB553",
"url": "https://etherscan.io/address/0xd757D6A02cD5af9AEF163D7eB8034f75ac22B553"
},
{
"address": "eth:0xbB943Cf3c5b90f2eD04F53658CCA49286601e808",
"type": "EOA",
"isVerified": true,
"name": "0xbB94âĻe808",
"url": "https://etherscan.io/address/0xbB943Cf3c5b90f2eD04F53658CCA49286601e808"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-3-and-EOA-4",
"name": "EOA 3 and EOA 4",
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 1/2 threshold. \nMember of Abstract Multisig.\n",
"accounts": [
{
"address": "eth:0x0F9B807d5B0cE12450059B425Dc35C727D65CB2F",
"address": "eth:0x79CF3eCF9Bbfd793d8Be62ED44D98d9AfA657892",
"type": "Contract",
"isVerified": true,
"name": "0x79CFâĻ7892",
"url": "https://etherscan.io/address/0x79CF3eCF9Bbfd793d8Be62ED44D98d9AfA657892"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x438Df339934B6Fb9dA8E0DC6f0Ba0bca22B8A7b5",
"type": "EOA",
"isVerified": true,
"name": "0x0F9BâĻCB2F",
"url": "https://etherscan.io/address/0x0F9B807d5B0cE12450059B425Dc35C727D65CB2F",
"displayName": "EOA 3"
"name": "0x438DâĻA7b5",
"url": "https://etherscan.io/address/0x438Df339934B6Fb9dA8E0DC6f0Ba0bca22B8A7b5"
},
{
"address": "eth:0x479B7c95b9509E1A834C994fc94e3581aA8A73B9",
"address": "eth:0x28228243eb37cd1754c85980c6F6Ce697d2a1332",
"type": "EOA",
"isVerified": true,
"name": "0x479BâĻ73B9",
"url": "https://etherscan.io/address/0x479B7c95b9509E1A834C994fc94e3581aA8A73B9",
"displayName": "EOA 4"
"name": "0x2822âĻ1332",
"url": "https://etherscan.io/address/0x28228243eb37cd1754c85980c6F6Ce697d2a1332"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"accounts": [
{
"address": "eth:0x6be789605b13Edb78749824633b9933D44B582ba",
"type": "EOA",
"isVerified": true,
"name": "0x6be7âĻ82ba",
"url": "https://etherscan.io/address/0x6be789605b13Edb78749824633b9933D44B582ba",
"displayName": "EOA 1"
},
{
"address": "eth:0xD85618da9E4A86DCC29180E0E683D3EA5412A0F8",
"type": "EOA",
"isVerified": true,
"name": "0xD856âĻA0F8",
"url": "https://etherscan.io/address/0xD85618da9E4A86DCC29180E0E683D3EA5412A0F8",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with ValidatorTimelock2\n * Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract \n* Can interact with ValidatorTimelock\n * Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract ",
"description": "* Can interact with EraMultisigValidator\n * initiate batch execution on L1 if approved by enough Validator Multisig members ",
"discoveryDrivenData": true
},
{
"id": "ProtocolTimelockController(L2->L1)",
"name": "ProtocolTimelockController(L2->L1)",
"accounts": [
{
"address": "eth:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"type": "EOA",
"isVerified": true,
"name": "0x085bâĻc714",
"url": "https://etherscan.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714",
"displayName": "ProtocolTimelockController(L2->L1)"
}
],
"chain": "ethereum",
"description": "* Can interact with ProtocolUpgradeHandler\n * start (queue) upgrades ",
"discoveryDrivenData": true
}
]
},
"zksync2": {
"roles": [],
"actors": [
{
"id": "ZkProtocolGovernor",
"name": "ZkProtocolGovernor",
"accounts": [
{
"address": "zksync:0x76705327e682F2d96943280D99464Ab61219e34f",
"type": "Contract",
"isVerified": true,
"name": "0x7670âĻe34f",
"url": "https://explorer.zksync.io/address/0x76705327e682F2d96943280D99464Ab61219e34f"
}
],
"chain": "zksync2",
"description": "Main Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for protocol upgrade proposals (ZIPs) that start on ZKsync Era, go through Ethereum Layer 1 and can - from there - target all L1 and L2 contracts. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ProtocolTimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: ProtocolTimelockController]\n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkTokenGovernor",
"name": "ZkTokenGovernor",
"accounts": [
{
"address": "zksync:0xb83FF6501214ddF40C91C9565d095400f3F45746",
"type": "Contract",
"isVerified": true,
"name": "0xb83FâĻ5746",
"url": "https://explorer.zksync.io/address/0xb83FF6501214ddF40C91C9565d095400f3F45746"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Token Program Proposals (TPPs) usually targeting the ZK token on ZKsync Era. At least 21M ZK tokens are necessary to start a proposal (for delegates) and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ZkToken\n * grant the MINTER_ROLE to arbitrary addresses, thus controlling the minting of the ZK token **with 3d delay** [via: ZkTokenTimelockController with 3d delay]\n* Can interact with ZkTokenTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: ZkTokenTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkGovOpsGovernor",
"name": "ZkGovOpsGovernor",
"accounts": [
{
"address": "zksync:0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160",
"type": "Contract",
"isVerified": true,
"name": "0xEEEaâĻb160",
"url": "https://explorer.zksync.io/address/0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Governance Advisory Proposals (GAPs) that are not executable onchain. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with GovOpsTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: GovOpsTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "Guardians_l2Alias",
"name": "Guardians_l2Alias",
"accounts": [
{
"address": "zksync:0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"type": "EOA",
"isVerified": true,
"name": "0x711eâĻ97c9",
"url": "https://explorer.zksync.io/address/0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"displayName": "Guardians_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) \n* Can interact with ZkGovOpsGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) ",
"discoveryDrivenData": true
},
{
"id": "ZKFoundationMultisig_l2Alias",
"name": "ZKFoundationMultisig_l2Alias",
"accounts": [
{
"address": "zksync:0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"type": "EOA",
"isVerified": true,
"name": "0xcd27âĻC62D",
"url": "https://explorer.zksync.io/address/0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"displayName": "ZKFoundationMultisig_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * make direct proposals without owning ZK tokens. In propose-guarded mode, this address is the ONLY allowed proposer. Propose-guarded mode is currently set to false ",
"discoveryDrivenData": true
},
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"accounts": [
{
"address": "zksync:0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"type": "EOA",
"isVerified": true,
"name": "0xF41EâĻ6bc4",
"url": "https://explorer.zksync.io/address/0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"displayName": "ProtocolUpgradeHandler_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can upgrade **with no delay**\n * ZkToken [via: ZkTokenProxyAdmin]\n* Can interact with ZkToken\n * control all roles in the ZkToken access control, including the minter roles ",
"discoveryDrivenData": true
}
]
}
}
+48 -23
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0xdbD849acC6bA61F461CB8A41BBaeE2D673CA02d9",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729268915,
"transactionHash": "0xa728db44825fd6e5aa33e91df199018db55a3c7376d49526abdd06402e24a5af",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1729268915,
"transactionHash": "0xa728db44825fd6e5aa33e91df199018db55a3c7376d49526abdd06402e24a5af",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1736984927,
"transactionHash": "0x43cc00fd7fc4cf95a1b1c73c015e995b9bd30b63f94d9c41a9ff5f6dc9a30f2f",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1742860739,
"transactionHash": "0x73c01b2ffc860cbae069cb2079376603a8a05aa57c005e8ab74b858353827f87",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1748397059,
"transactionHash": "0x76d47b3062b0dc7f0f5a40f726782dc3236c789ba526704f2c64e7c7551eaf83",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1759176779,
"transactionHash": "0x68ffcd55af3cc04620fcdb6ff5800c1bcbbd31d4363ae9f4fdb2091f7c24834d",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1759176779,
"transactionHash": "0x68ffcd55af3cc04620fcdb6ff5800c1bcbbd31d4363ae9f4fdb2091f7c24834d",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1783512011,
"transactionHash": "0x2133c718664d820546ee503c0a34b604a76c62d2e9db79cc28c122194dd0c613",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
}
],
"description": "The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n* Roles:\n * **getAdmin**: ZeroNetworkZkEvmAdmin; ultimately Zeronetwork Multisig\n * **validators**: ValidatorTimelock, ValidatorTimelock2",
"description": "The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n* Roles:\n * **getAdmin**: ZeroNetworkZkEvmAdmin; ultimately Zeronetwork Multisig\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xdbD849acC6bA61F461CB8A41BBaeE2D673CA02d9#code"
},
{
"name": "BridgeHub",
"isVerified": true,
"address": "eth:0x303a465B659cBB0ab36eE643eA362c509EEb5213",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0xc89423b4909080fB8F8A43dF5E1C27001e55C24B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717520639,
"transactionHash": "0xdbb03a14ea223de3db4ac0916e78123bd0a1dde68e98952326d8382d29ac4d61",
"implementations": [
"eth:0x12f893689f9603991a8c22C249FFd0509Be95661"
]
},
{
"timestamp": 1725887363,
"transactionHash": "0x21aec24a9df97ce4886d699314be627b0818da4d1987349421fb3df102c43f2b",
"implementations": [
"eth:0x509dA1BE24432F8804C4A9FF4a3c3f80284CDd13"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0x0029e562c0b54C0b88cB22adF4346DbfEC87400c"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xb720523EC3c615b069453bF4B0584CEbF034706f"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xcdd748d4A80CE6831080f1dA2CA9084CDa87Cc87"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x08A98B1048Fb61E9Fff7d7d98305aC6286Ae9F32"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0xc89423b4909080fB8F8A43dF5E1C27001e55C24B"
]
}
],
"description": "The main registry (hub) for all the contracts in the ZK stack cluster and central entrypoint for bridge transactions. Stores important mappings like from chainId to diamond address, from chainId to parent CTM, from chainId to base token etc. A clone of Bridgehub is also deployed on each L2 chain, but this clone is only used on settlement layers.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x303a465B659cBB0ab36eE643eA362c509EEb5213#code"
},
{
"name": "MessageRoot",
"isVerified": true,
"address": "eth:0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x669ed5BB1377C917333e7d4223ce3419EE4099fD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109035,
"transactionHash": "0xc47e24e8cc6c7a493bbb1a46b74f1ff113fad2e35d7596aa688df5bf0402fc65",
"implementations": [
"eth:0x19347Fb8eD3E8e35eb4a01c8B18Bd330194Cf0ad"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x382fb241396eA915108e7B7Ce1adE1322bA73aeE"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x669ed5BB1377C917333e7d4223ce3419EE4099fD"
]
}
],
"description": "Aggregates remote bridge message roots from all ZK stack chains. To be used with the Gateway when deployed.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD#code"
},
{
"name": "CTMDeploymentTracker",
"isVerified": true,
"address": "eth:0x6078F6B379f103de1Aa912dc46bb8Df0c8809860",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x00e9d8A4b35C32880A10Feb391aDEDA0D3F90991"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109203,
"transactionHash": "0x8b5a21b3473a638022e84097a99c4668bb0a454686b737e87957729c4822741b",
"implementations": [
"eth:0x1E405E5cdF127Dc98Eb490AB0e97345f892Ff7E1"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x00e9d8A4b35C32880A10Feb391aDEDA0D3F90991"
]
}
],
"description": "Asset deployment tracker where the 'asset' is a ChainTypeManager. The registering of asset IDs for ChainTypeManagers is necessary to be able to migrate them to a given settlement layer, for example the Gateway.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6078F6B379f103de1Aa912dc46bb8Df0c8809860#code"
},
{
"name": "RollupL1DAValidator",
"isVerified": true,
"address": "eth:0x72213dfe8CA61B0A782970dCFebFb877778f9119",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that verifies the data availability of ethereum calldata and blobs. Can be used by ZK stack rollups as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x72213dfe8CA61B0A782970dCFebFb877778f9119#code"
},
{
"name": "ChainTypeManager",
"isVerified": true,
"address": "eth:0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x4aB7204e4205c96C32E23ADa9191720976dC084f"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717520663,
"transactionHash": "0x514bbf46d227eee8567825bf5c8ee1855aa8a1916f7fee7b191e2e3d5ecba849",
"implementations": [
"eth:0x8279B7E48fA074f966385d87AEf29Bd031e54fD5"
]
},
{
"timestamp": 1722934619,
"transactionHash": "0xc1e73b06359759201b76ab7654e0bd49011f33c0230dfc24423985fbf36ea817",
"implementations": [
"eth:0xed1Dc7F0Be2B19cb02a2476150C8ea24A37c5274"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0xb39B175a5E0945F2FB6A7F31764c0e31D9cF5b75"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xA3bCcAEe38cb0273A979118a0DE483E47D50F6Cb"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0x6D598c77AF57Bfa17201483400615c61819dD45A"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x345314c7E4af84B763d98d23f772622E23AfB5CE"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x4aB7204e4205c96C32E23ADa9191720976dC084f"
]
}
],
"description": "Defines L2 diamond contract versions, creation and upgrade data and the proof system for all ZK stack chains connected to it. ZK chains are children of this central contract and can only upgrade to versions that were previously registered here. The current protocol version is 0,29,4.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C#code"
},
{
"name": "L1Nullifier",
"isVerified": true,
"address": "eth:0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x71759C4eA628293F5a99aAB1585dF1c8dA4718e0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717521479,
"transactionHash": "0xce3d72f23297a281cb58502dcc6a6c029489316a2faf9c4ef83141b1b254017c",
"implementations": [
"eth:0xCba1aF8f0bB223b2544F8eB8f69d1c7960f788dB"
]
},
{
"timestamp": 1724658671,
"transactionHash": "0xaec33529b74f8f9d56d7aa568c6358be299228a85e49ea85cb106eca5af7367c",
"implementations": [
"eth:0xb56A8225A745756DD215faf22E4796f373561AcD"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0xF5A14DCdde1143443f06033200D345c2a2828A99"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xda2866AF0e170d0867a3F3bB52Db10D6E09Df78A"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0x3B4FD84B27fE7B9247d5B8C6d1A29B2889C81518"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xC6f08EFb7BA78f40d00F41aFAC00211d59eb9431"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x71759C4eA628293F5a99aAB1585dF1c8dA4718e0"
]
}
],
"description": "Contract responsible for bookkeeping L1 bridging transactions. Used to finalize withdrawals and reclaim failed deposits. Does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB#code"
},
{
"name": "ProtocolUpgradeHandler",
"isVerified": true,
"address": "eth:0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e"
],
"implementations": [
"eth:0x36625Bd3dDB469377C6e9893712158cA3c0cC14B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1738855967,
"transactionHash": "0xa3d1fa107e6dc4ce67d92a5af74aa7dc34602c2a1d46727790819c1f974bed95",
"implementations": [
"eth:0xD5e9D3d483a93d03D8d604CC79dC9f2F4B78C604"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0x0A67f0Fd2f7523057039F14969Fe23a5f620f19A"
]
},
{
"timestamp": 1760519471,
"transactionHash": "0x2309df20dd1cb3f3a3289e97517d10d399989292f966578240ec387246a13e61",
"implementations": [
"eth:0x36625Bd3dDB469377C6e9893712158cA3c0cC14B"
]
}
],
"description": "The central upgrade contract and Governance proxy for all ZK stack contracts. Accepts successful DAO proposals from L2 and emergency proposals from the EmergencyUpgradeBoard. The three members of the EmergencyUpgradeBoard also have special roles and permissions in this contract.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **emergencyUpgradeBoard**: EmergencyUpgradeBoard\n * **guardians**: Guardians\n * **l2_protocol_governor**: ProtocolTimelockController(L2->L1)\n * **securityCouncil**: SecurityCouncil",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3#code"
},
{
"name": "RollupDAManager",
"isVerified": true,
"address": "eth:0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple registry for allowed DA address pairs for the 'rollup' data availability mode (can be permanently enforced with isPermanentRollup=true). Rollup DA address pairs (especially the L1 part) usually point to contracts that validate if data was made available on Ethereum.\n* Roles:\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45#code"
},
{
"name": "ZeroNetworkZkEvmAdmin",
"isVerified": true,
"address": "eth:0xCA8faaF5BA885fEC8C2c8CD49bADAa7589D173b3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Zeronetwork Multisig act through it.\n* Roles:\n * **owner**: Zeronetwork Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCA8faaF5BA885fEC8C2c8CD49bADAa7589D173b3#code"
},
{
"name": "EraChainAdminProxy",
"isVerified": true,
"address": "eth:0x2cf3bD6a9056b39999F3883955E183F655345063",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Matter Labs Multisig act through it.\n* Roles:\n * **owner**: Matter Labs Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2cf3bD6a9056b39999F3883955E183F655345063#code"
},
{
"name": "L1VerifierFflonk",
"name": "DualVerifier",
"isVerified": true,
"address": "eth:0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911",
"address": "eth:0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911#code"
"url": "https://etherscan.io/address/0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3#code"
},
{
"name": "L1VerifierPlonk",
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6",
"address": "eth:0x9B9256E7D5b696F7BD7525F42238Ba3d9BBD9cDA",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"description": "* Roles:\n * **owner**: Abstract Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6#code"
"url": "https://etherscan.io/address/0x9B9256E7D5b696F7BD7525F42238Ba3d9BBD9cDA#code"
},
{
"name": "DualVerifier",
"name": "L1VerifierFflonk",
"isVerified": true,
"address": "eth:0xD71DDC9956781bf07DbFb9fCa891f971dbE9868A",
"address": "eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD71DDC9956781bf07DbFb9fCa891f971dbE9868A#code"
"url": "https://etherscan.io/address/0xD324a7c8556A059371B207fB96FD77bE24E2042c#code"
},
{
"name": "L1VerifierPlonk",
"isVerified": true,
"address": "eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EraChainAdminProxy",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B#code"
},
{
"name": "L1NativeTokenVault",
"isVerified": true,
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109131,
"transactionHash": "0x50619c1506e8e93cc28017847b5690b6a0784bc2b08c1dbb8555b71525b72351",
"implementations": [
"eth:0x40B1060a114380f40faC6869c5B383f47e61530c"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xDf3a3E51aEABB5da548F854B608E3C9De1ae2947"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xBa05B8B761386289Ba413a74AF1933d6a76E1b52"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
}
],
"description": "Canonical central asset escrow for all ZK stack chains.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1#code"
},
{
"name": "ChainAssetHandler",
"isVerified": true,
"address": "eth:0xDd5CB8B9037357B4cD37391A073798f8aaB61076",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0xaa180C70126f751C164465638770B865965A744B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1758286391,
"transactionHash": "0x960c2e5bb98f4b9a07087b3b50fdc4681bbea1467aab3748dbb0050311f54ede",
"implementations": [
"eth:0xaa180C70126f751C164465638770B865965A744B"
]
}
],
"description": "Specialized contract for managing chain assets, i.e. chain migrations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDd5CB8B9037357B4cD37391A073798f8aaB61076#code"
},
{
"name": "ServerNotifier",
"isVerified": true,
"address": "eth:0xfca808A744735D9919EEBe4660B8Fd897456Ce31",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B"
],
"implementations": [
"eth:0x555D040F4A089D1dF14B372a87C5aF8FA37BDB7A"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747199375,
"transactionHash": "0xbeb7447fc88b154a4730b01cb1a75b7093095056e88818c3659253111d06e66f",
"implementations": [
"eth:0x555D040F4A089D1dF14B372a87C5aF8FA37BDB7A"
]
}
],
"description": "A simple contract that can be called by the ChainAdmin to emit notifications about chain migrations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Matter Labs Multisig",
"upgradableBy": [
{
"name": "Matter Labs Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfca808A744735D9919EEBe4660B8Fd897456Ce31#code"
}
],
"zksync2": [
{
"name": "ProtocolTimelockController",
"isVerified": true,
"address": "zksync:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 0s.\n* Roles:\n * **canceller**: ZkProtocolGovernor\n * **executor**: ZkProtocolGovernor\n * **proposer**: ZkProtocolGovernor\n * **timelockAdmin**: ProtocolTimelockController; ultimately ZkProtocolGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714#code"
},
{
"name": "ZkToken",
"isVerified": true,
"address": "zksync:0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC"
],
"implementations": [
"zksync:0x4fcd824D304e9b1584CdBb582c104BDcbFb11274"
]
},
"chain": "zksync2",
"pastUpgrades": [
{
"timestamp": 1716317326,
"transactionHash": "0x5bfce59c2ad18019ef20d58a3f1ec496cdc85537fc9564c932f7dcbbb2a15b56",
"implementations": [
"zksync:0x3931e73ebA79a7C898D3b0e02c7C62bA4F11cB14"
]
},
{
"timestamp": 1718011538,
"transactionHash": "0xa6bc022ba0f60ac6f10a6efb84b261e9ca1b327a611bdd7a1f4d37cc9b027a3c",
"implementations": [
"zksync:0x01a6715d3560241E09E865a46122bf347A576c09"
]
},
{
"timestamp": 1765195612,
"transactionHash": "0x749b9e6eed328052d679eb86639be807b4acf811ac8786f730b45258ba41ce6f",
"implementations": [
"zksync:0x4fcd824D304e9b1584CdBb582c104BDcbFb11274"
]
}
],
"description": "The ZK token contract on ZKsync Era. Mintable through access control roles. Used for voting in the ZK stack governance system.\n* Roles:\n * **admin**: ZkTokenProxyAdmin; ultimately ProtocolUpgradeHandler_l2Alias\n * **defaultAdmin**: ProtocolUpgradeHandler_l2Alias\n * **minterAdmin**: ZkTokenTimelockController; ultimately ZkTokenGovernor",
"upgradableBy": [
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E#code"
},
{
"name": "GovOpsTimelockController",
"isVerified": true,
"address": "zksync:0xC9E442574958f96C026DeF9a50C3236cab17428a",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 3d.\n* Roles:\n * **canceller**: ZkGovOpsGovernor\n * **executor**: ZkGovOpsGovernor\n * **proposer**: ZkGovOpsGovernor\n * **timelockAdmin**: GovOpsTimelockController; ultimately ZkGovOpsGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xC9E442574958f96C026DeF9a50C3236cab17428a#code"
},
{
"name": "ZkTokenProxyAdmin",
"isVerified": true,
"address": "zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler_l2Alias",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xdB1E46B448e68a5E35CB693a99D59f784aD115CC#code"
},
{
"name": "ZkTokenTimelockController",
"isVerified": true,
"address": "zksync:0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 3d.\n* Roles:\n * **canceller**: ZkTokenGovernor\n * **executor**: ZkTokenGovernor\n * **proposer**: ZkTokenGovernor\n * **timelockAdmin**: ZkTokenTimelockController; ultimately ZkTokenGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d#code"
}
]
},
"escrows": [
{
"address": "0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"sinceTimestamp": 1739109131,
"tokens": [
"ETH",
"USDC",
"WBTC",
"USDT"
],
"contract": {
"isVerified": true,
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109131,
"transactionHash": "0x50619c1506e8e93cc28017847b5690b6a0784bc2b08c1dbb8555b71525b72351",
"implementations": [
"eth:0x40B1060a114380f40faC6869c5B383f47e61530c"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xDf3a3E51aEABB5da548F854B608E3C9De1ae2947"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xBa05B8B761386289Ba413a74AF1933d6a76E1b52"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
}
],
"description": "Shared bridge for depositing tokens to ZERĪ´ and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x954ba8223a6BFEC1Cc3867139243A02BA0Bc66e4",
"l2EtherAddress": "0x000000000000000000000000000000000000800A"
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Boojum L2 Bootloader program v0.28.0",
"title": "Boojum L2 Bootloader program v0.29.2",
"description": "EraVM program that proves the correct execution of a batch of ZK Stack L2 blocks.",
"proverSystemProject": "boojum",
"programUrl": "https://github.com/matter-labs/era-contracts/blob/v0.28.0/system-contracts/bootloader/bootloader.yul",
"programUrl": "https://github.com/matter-labs/era-contracts/blob/v0.29.2/system-contracts/bootloader/bootloader.yul",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install npm and yarn: `npm install --global yarn`\n2. Install hardhat: `npm install -g hardhat`\n3. Install foundry-zksync: `curl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash` from [here](https://foundry-book.zksync.io/introduction/installation/).\n\nVerify:\n\n1. Checkout the correct branch in [era-contracts](https://github.com/matter-labs/era-contracts) repo: `git checkout v0.28.0`. Commit hash should be `cfd77cb6bc9ab3d751d42c6161f1b393a9c51647`.\n2. Execute recompute_hashes.sh script: `chmod +x recompute_hashes.sh` and `./recompute_hashes.sh`. Note that the script may require a specific version of `foundryup-zksync` and it will suggest the command to install it. However you might need to manually clear git working tree in the repo foundry-zksync (probably in ~/.foundry/matter-labs/foundry-zksync) to change versions.",
"hash": "0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35"
"verificationSteps": "Prepare:\n\n1. Install npm and yarn: `npm install --global yarn`\n2. Install hardhat: `npm install -g hardhat`\n3. Install foundry-zksync: `curl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash` from [here](https://foundry-book.zksync.io/introduction/installation/).\n\nVerify:\n\n1. Checkout the correct branch in [era-contracts](https://github.com/matter-labs/era-contracts) repo: `git checkout v0.29.2`. Commit hash should be `dbfc9b5a40d68007dc405a9b669230104c1646e4`.\n2. Execute recompute_hashes.sh script: `chmod +x recompute_hashes.sh` and `./recompute_hashes.sh`. Note that the script may require a specific version of `foundryup-zksync` and it will suggest the command to install it. However you might need to manually clear git working tree in the repo foundry-zksync (probably in ~/.foundry/matter-labs/foundry-zksync) to change versions.",
"hash": "0x01000911c4db4fe62c98e180cfa7e9b3a22fb15f505905d4bf36192f481551e6"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 4d 3h - 8d 3h delay on code upgrades unless upgrade is initiated by the EmergencyUpgradeBoard in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911",
"eth:0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6"
"eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c",
"eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7"
]
}
+1 -1
{
"baseTimestamp": 1783501445,
"baseTimestamp": 1783587324,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}