1fd9d390 (main)
and
e58e9d5d (PR)
+0 -50
+0 -50
{
"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",
"proofSystem": {
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"knownDeployments": [
{
"address": "eth:0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911"
}
],
"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."
},
{
"hash": "0x64b347c642ea60114c98b3976124ea8a7e0bb778bd7e479aedc02f994486c8a1",
"name": "Boojum Plonk prover-v22.0.0",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/prover-v22.0.0/prover",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "eth:0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6"
}
],
"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."
},
{
"hash": "0x8574e152c41dc39a2ecab984545e1cf21cb3ec250b919018a8053f2fa270784f",
"name": "Boojum Plonk zkLinkNova verifier",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "linea:0x902C3806A84f4e855a8746e92d7F1C9a51400458"
}
],
"verificationStatus": "notVerified"
},
{
"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": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"knownDeployments": [
{
"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.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": "0x1ffc56111a5cfaf5db387f6a31408ad20217e9bc1f31f2f5c1bd38b0d6d7968b",
"name": "Boojum Plonk prover-v23.2.0",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/prover-v23.2.0/prover",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"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 `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."
},
{
"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: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 `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": "0xc8cd705a0db89577146137de78eba6bd1f1c9c3f66dc52f7627e7c2df30895b2",
"name": "Boojum Fflonk core-v29.11.1",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/core-v29.11.1/prover",
"proofSystem": {
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"knownDeployments": [
{
"address": "eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442"
}
],
"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."
}
]
}
+63 -39
+4 -1
{
"redWarning": {
"text": "Critical contracts can be upgraded by an EOA which could result in the loss of all funds.",
"detailAnchor": "permissions"
},
"unverifiedContracts": []
"unverifiedContracts": [
"eth:0xfAaE2946e846133af314d1Df13684c89fA7d83DD",
"eth:0xfAaE2946e846133af314d1Df13684c89fA7d83DD"
]
}
+13 -2
[
{
"address": "0xfAaE2946e846133af314d1Df13684c89fA7d83DD",
"sinceTimestamp": 1720435859,
"tokens": [
"USDT"
],
"contract": {
"isVerified": true,
"isVerified": false,
"address": "eth:0xfAaE2946e846133af314d1Df13684c89fA7d83DD",
"upgradeability": {
"proxyType": "StarkWare diamond",
"admins": [
"eth:0x57814cC6e075f517781cB7c3B42897B3Bb2C54d8"
],
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x80961E33198fa91C43De1Bc1d07516148099D58D",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720435943,
"transactionHash": "0xb4a37a973c29b0213d2622a6ab1faac67ac73ca271c14664818b3f9604cb7eaf",
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
]
},
{
"timestamp": 1783236347,
"transactionHash": "0xa613c279b34ee7e5e767125c40a99b77136d6c4fd69042f618a5e3687a24c939",
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x80961E33198fa91C43De1Bc1d07516148099D58D",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
]
}
],
"url": "https://etherscan.io/address/0xfAaE2946e846133af314d1Df13684c89fA7d83DD#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
]
+9 -26
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with no delay**\n * StarkPerpetual \n* Can interact with StarkPerpetual\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), unfreeze the exchange and manage the governor set ",
"accounts": [
{
"address": "eth:0x57814cC6e075f517781cB7c3B42897B3Bb2C54d8",
"type": "Contract",
"isVerified": true,
"name": "0x5781…54d8",
"url": "https://etherscan.io/address/0x57814cC6e075f517781cB7c3B42897B3Bb2C54d8"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xb8E3c28e88F33B9F61a37E0eE86d29C48f1cAE09",
"type": "EOA",
"isVerified": true,
"name": "0xb8E3…AE09",
"url": "https://etherscan.io/address/0xb8E3c28e88F33B9F61a37E0eE86d29C48f1cAE09"
},
{
"address": "eth:0x656A28457C85483AA80499A4E8A739129CC77247",
"type": "EOA",
"isVerified": true,
"name": "0x656A…7247",
"url": "https://etherscan.io/address/0x656A28457C85483AA80499A4E8A739129CC77247"
},
{
"address": "eth:0xDcaA8bfe9644c27eF3b40EaCB7cE7535D3223798",
"type": "EOA",
"isVerified": true,
"name": "0xDcaA…3798",
"url": "https://etherscan.io/address/0xDcaA8bfe9644c27eF3b40EaCB7cE7535D3223798"
},
{
"address": "eth:0x0a7B0Ac8d40754545D5C1fD3607Ba64678a6CBC5",
"type": "EOA",
"isVerified": true,
"name": "0x0a7B…CBC5",
"url": "https://etherscan.io/address/0x0a7B0Ac8d40754545D5C1fD3607Ba64678a6CBC5"
},
{
"address": "eth:0x2818035FC753cAf8843C440919cc183bF7Da3742",
"type": "EOA",
"isVerified": true,
"name": "0x2818…3742",
"url": "https://etherscan.io/address/0x2818035FC753cAf8843C440919cc183bF7Da3742"
}
],
"discoveryDrivenData": true
},
{
"id": "SHARP Multisig",
"name": "SHARP Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with 8d delay**\n * SHARPVerifierCallProxy [via: - acting directly with 8d delay]\n* Can interact with SHARPVerifierCallProxy\n * manage the upgrade admin amd access control roles \n * set custom implementations for specific operators (changes the verifier based on who calls it) ",
"accounts": [
{
"address": "eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4",
"type": "Contract",
"isVerified": true,
"name": "0x21F9…AEc4",
"url": "https://etherscan.io/address/0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xebc8416179fE90854fe8B3f774801165572cfD7F",
"type": "EOA",
"isVerified": true,
"name": "0xebc8…fD7F",
"url": "https://etherscan.io/address/0xebc8416179fE90854fe8B3f774801165572cfD7F"
},
{
"address": "eth:0x955B978F3ee7818dA71fA25c676062E6BC462Fec",
"type": "EOA",
"isVerified": true,
"name": "0x955B…2Fec",
"url": "https://etherscan.io/address/0x955B978F3ee7818dA71fA25c676062E6BC462Fec"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 3/4 threshold. \n* Can interact with AggregationRouterV5\n * destroy the contract and rescue funds from it ",
"accounts": [
{
"address": "eth:0x5E89f8d81C74E311458277EA1Be3d3247c7cd7D1",
"type": "Contract",
"isVerified": true,
"name": "0x5E89…d7D1",
"url": "https://etherscan.io/address/0x5E89f8d81C74E311458277EA1Be3d3247c7cd7D1"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xD8A6A3ca1739423de5F634dFAa8BA224EAf16d0e",
"type": "EOA",
"isVerified": true,
"name": "0xD8A6…6d0e",
"url": "https://etherscan.io/address/0xD8A6A3ca1739423de5F634dFAa8BA224EAf16d0e"
},
{
"address": "eth:0x223c0EF36fEe905a40175d92704b1d3624218EE7",
"type": "EOA",
"isVerified": true,
"name": "0x223c…8EE7",
"url": "https://etherscan.io/address/0x223c0EF36fEe905a40175d92704b1d3624218EE7"
},
{
"address": "eth:0xd6970196Ff8CeF3Cdd61256C1841A085EEcD3ae8",
"type": "EOA",
"isVerified": true,
"name": "0xd697…3ae8",
"url": "https://etherscan.io/address/0xd6970196Ff8CeF3Cdd61256C1841A085EEcD3ae8"
},
{
"address": "eth:0x3A6ED6885608Ead8174789a81Eb2B05600ca89F8",
"type": "EOA",
"isVerified": true,
"name": "0x3A6E…89F8",
"url": "https://etherscan.io/address/0x3A6ED6885608Ead8174789a81Eb2B05600ca89F8"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x8847c33C6AEB53bf9a43D6b5579e9146478e6D3a",
"type": "EOA",
"isVerified": true,
"name": "0x8847…6D3a",
"url": "https://etherscan.io/address/0x8847c33C6AEB53bf9a43D6b5579e9146478e6D3a",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkPerpetual\n * manage supported tokens ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0xCBe6fbf5e3c427013688E04D0fDE56705890c4bE",
"type": "EOA",
"isVerified": true,
"name": "0xCBe6…c4bE",
"url": "https://etherscan.io/address/0xCBe6fbf5e3c427013688E04D0fDE56705890c4bE",
"displayName": "EOA 2"
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkPerpetual\n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x17b287122363a0a6dBA7F185347DFcfb9816dA6e",
"type": "EOA",
"isVerified": true,
"name": "0x17b2…dA6e",
"url": "https://etherscan.io/address/0x17b287122363a0a6dBA7F185347DFcfb9816dA6e",
"displayName": "EOA 3"
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * FinalizableGpsFactAdapter ",
"discoveryDrivenData": true
},
{
"id": "EOA-4,-EOA-5-and-EOA-6",
"name": "EOA 4, EOA 5 and EOA 6",
"id": "EOA-3,-EOA-4-and-EOA-5",
"name": "EOA 3, EOA 4 and EOA 5",
"accounts": [
{
"address": "eth:0x38ACC82ED19e303841e222d7e933846001F969F8",
"type": "EOA",
"isVerified": true,
"name": "0x38AC…69F8",
"url": "https://etherscan.io/address/0x38ACC82ED19e303841e222d7e933846001F969F8",
"displayName": "EOA 4"
"displayName": "EOA 3"
},
{
"address": "eth:0x5C37D9fCD71F8d0D9E11a58b73D49148cf3A0323",
"type": "EOA",
"isVerified": true,
"name": "0x5C37…0323",
"url": "https://etherscan.io/address/0x5C37D9fCD71F8d0D9E11a58b73D49148cf3A0323",
"displayName": "EOA 5"
"displayName": "EOA 4"
},
{
"address": "eth:0x811aBa59F2486A0a6D93b8c708086d9A789dcFe2",
"type": "EOA",
"isVerified": true,
"name": "0x811a…cFe2",
"url": "https://etherscan.io/address/0x811aBa59F2486A0a6D93b8c708086d9A789dcFe2",
"displayName": "EOA 6"
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with EdgeXDepositor\n * withdraw any funds from this deposit wrapper contract by reaching a threshold of 2 signers ",
"discoveryDrivenData": true
}
]
}
}
+36 -9
{
"addresses": {
"ethereum": [
{
"name": "StarkPerpetual",
"isVerified": true,
"isVerified": false,
"address": "eth:0xfAaE2946e846133af314d1Df13684c89fA7d83DD",
"upgradeability": {
"proxyType": "StarkWare diamond",
"admins": [
"eth:0x57814cC6e075f517781cB7c3B42897B3Bb2C54d8"
],
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x80961E33198fa91C43De1Bc1d07516148099D58D",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720435943,
"transactionHash": "0xb4a37a973c29b0213d2622a6ab1faac67ac73ca271c14664818b3f9604cb7eaf",
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
]
},
{
"timestamp": 1783236347,
"transactionHash": "0xa613c279b34ee7e5e767125c40a99b77136d6c4fd69042f618a5e3687a24c939",
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x80961E33198fa91C43De1Bc1d07516148099D58D",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
]
}
],
"description": "Central Validium contract. Receives (verified) state roots from the Operator, 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**: Safe\n * **operators**: EOA 2\n * **tokenAdmins**: EOA 1",
"description": "Central Validium contract. Receives (verified) state roots from the Operator, 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**: Safe\n * **operators**: EOA 1",
"upgradableBy": [
{
"name": "Safe",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfAaE2946e846133af314d1Df13684c89fA7d83DD#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": "AggregationRouterV5",
"isVerified": true,
"address": "eth:0x1111111254EEB25477B68fb85Ed929f73A960582",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "1inch DEX aggregator supporting RFQ fills, limit-order fills and direct DEX swaps.\n* Roles:\n * **owner**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1111111254EEB25477B68fb85Ed929f73A960582#code"
},
{
"name": "FinalizableCommittee",
"isVerified": true,
"address": "eth:0x23bf3dcc14680162b7f5355aAbb56D31823c946e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "DAC with admin funtions to manage members. Admins are not discoverable and thus not shown here.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x23bf3dcc14680162b7f5355aAbb56D31823c946e#code"
},
{
"name": "FinalizableGpsFactAdapter",
"isVerified": true,
"address": "eth:0x4abBc1826389aC0FEaA49E70c30a041b665e8562",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Adapter between the core contract and the SHARPVerifierCallProxy. Stores the Cairo programHash (`2530337539466159944237001094809327283009177793361359619481044346150483328860`), which can be changed until the adapter is finalized.\n* Roles:\n * **owner**: EOA 3 if the adapter is not finalized",
"description": "Adapter between the core contract and the SHARPVerifierCallProxy. Stores the Cairo programHash (`2530337539466159944237001094809327283009177793361359619481044346150483328860`), which can be changed until the adapter is finalized.\n* Roles:\n * **owner**: EOA 2 if the adapter is not finalized",
"upgradableBy": [
{
"id": "EOA-3",
"name": "EOA 3",
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4abBc1826389aC0FEaA49E70c30a041b665e8562#code"
},
{
"name": "PerpetualEscapeVerifier",
"isVerified": true,
"address": "eth:0xaadFdB9CAc145c65f2284fBe24600d07fb37F7BD",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Special verifier for the escape() function.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaadFdB9CAc145c65f2284fBe24600d07fb37F7BD#code"
},
{
"name": "EdgeXDepositor",
"isVerified": true,
"address": "eth:0xC0a1a1e4AF873E9A37a0caC37F3aB81152432Cc5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A deposit wrapper that allows users to deposit arbitrary tokens to EdgeX. Tokens are swapped to USDT via 1inch and deposited to edgeX. This deposit wrapper also has fast withdrawal support using liquidity providers, but it seems deprecated in practice. Standard direct deposits and withdrawals of USDT at the StarkPerpetual contract are fully supported.\n* Roles:\n * **signers**: EOA 4, EOA 5, EOA 6",
"description": "A deposit wrapper that allows users to deposit arbitrary tokens to EdgeX. Tokens are swapped to USDT via 1inch and deposited to edgeX. This deposit wrapper also has fast withdrawal support using liquidity providers, but it seems deprecated in practice. Standard direct deposits and withdrawals of USDT at the StarkPerpetual contract are fully supported.\n* Roles:\n * **signers**: EOA 3, EOA 4, EOA 5",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC0a1a1e4AF873E9A37a0caC37F3aB81152432Cc5#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": "0xfAaE2946e846133af314d1Df13684c89fA7d83DD",
"sinceTimestamp": 1720435859,
"tokens": [
"USDT"
],
"contract": {
"isVerified": true,
"isVerified": false,
"address": "eth:0xfAaE2946e846133af314d1Df13684c89fA7d83DD",
"upgradeability": {
"proxyType": "StarkWare diamond",
"admins": [
"eth:0x57814cC6e075f517781cB7c3B42897B3Bb2C54d8"
],
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x80961E33198fa91C43De1Bc1d07516148099D58D",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720435943,
"transactionHash": "0xb4a37a973c29b0213d2622a6ab1faac67ac73ca271c14664818b3f9604cb7eaf",
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
]
},
{
"timestamp": 1783236347,
"transactionHash": "0xa613c279b34ee7e5e767125c40a99b77136d6c4fd69042f618a5e3687a24c939",
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x80961E33198fa91C43De1Bc1d07516148099D58D",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
]
}
],
"url": "https://etherscan.io/address/0xfAaE2946e846133af314d1Df13684c89fA7d83DD#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "StarkEx program ApeX and EdgeX",
"description": "Cairo program that implements an application-specific L2 with spot and perpetual trading functionality.",
"proverSystemProject": "stone",
"verificationStatus": "notVerified",
"hash": "2530337539466159944237001094809327283009177793361359619481044346150483328860"
},
{
"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"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
},
{
"category": "Funds can be stolen if",
"text": "the source code of unverified contracts contains malicious code.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x9fb7F48dCB26b7bFA4e580b2dEFf637B13751942"
]
}
+1 -1
{
"baseTimestamp": 1782304372,
"baseTimestamp": 1783333087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+2 -30
+1 -29
{
"ethereum": {
"actors": [
{
"id": "ERC20Gateway pausers",
"name": "ERC20Gateway pausers",
"accounts": [
{
"address": "eth:0xE7DCFE1B21D4b9899A80Dc67847e03830a88585e",
"type": "EOA",
"isVerified": true,
"name": "0xE7DC…585e",
"url": "https://etherscan.io/address/0xE7DCFE1B21D4b9899A80Dc67847e03830a88585e"
},
{
"address": "eth:0x32da601374b38154f05904B16F44A1911Aa6f314",
"type": "Contract",
"isVerified": true,
"name": "0x32da…f314",
"url": "https://etherscan.io/address/0x32da601374b38154f05904B16F44A1911Aa6f314"
},
{
"address": "eth:0x958470a2ADe72b7a01A2e160F3286767b9623Ad7",
"type": "EOA",
"isVerified": true,
"name": "0x9584…3Ad7",
"url": "https://etherscan.io/address/0x958470a2ADe72b7a01A2e160F3286767b9623Ad7"
},
{
"address": "eth:0x81ACA96D4Ae0932d2F3463a043392efcCB1F05b6",
"type": "EOA",
"isVerified": true,
"name": "0x81AC…05b6",
"url": "https://etherscan.io/address/0x81ACA96D4Ae0932d2F3463a043392efcCB1F05b6"
},
{
"address": "eth:0x796C3f536C6bf5CB7661C9A0570da0e1ECD303Dd",
"type": "EOA",
"isVerified": true,
"name": "0x796C…03Dd",
"url": "https://etherscan.io/address/0x796C3f536C6bf5CB7661C9A0570da0e1ECD303Dd"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0xC8Bd2Ead61e54C53C5A1836352c29F10383FBad2",
"type": "EOA",
"isVerified": true,
"name": "0xC8Bd…Bad2",
"url": "https://etherscan.io/address/0xC8Bd2Ead61e54C53C5A1836352c29F10383FBad2"
},
{
"address": "eth:0x45aa9fF818Ffaca57CA31b1C624b2a8CBF5B417e",
"type": "EOA",
"isVerified": true,
"name": "0x45aa…417e",
"url": "https://etherscan.io/address/0x45aa9fF818Ffaca57CA31b1C624b2a8CBF5B417e"
},
{
"address": "eth:0xf88b0247e611eE5af8Cf98f5303769Cba8e7177C",
"type": "EOA",
"isVerified": true,
"name": "0xf88b…177C",
"url": "https://etherscan.io/address/0xf88b0247e611eE5af8Cf98f5303769Cba8e7177C"
}
],
"description": "Whitelisted addresses that can pause the ERC20Gateway.",
"chain": "ethereum"
},
{
"id": "FuelMessagePortal pausers",
"name": "FuelMessagePortal pausers",
"accounts": [
{
"address": "eth:0xE7DCFE1B21D4b9899A80Dc67847e03830a88585e",
"type": "EOA",
"isVerified": true,
"name": "0xE7DC…585e",
"url": "https://etherscan.io/address/0xE7DCFE1B21D4b9899A80Dc67847e03830a88585e"
},
{
"address": "eth:0xe7d56c84cEA9b58569fdfe8863085207F9a14881",
"type": "EOA",
"isVerified": true,
"name": "0xe7d5…4881",
"url": "https://etherscan.io/address/0xe7d56c84cEA9b58569fdfe8863085207F9a14881"
},
{
"address": "eth:0x32da601374b38154f05904B16F44A1911Aa6f314",
"type": "Contract",
"isVerified": true,
"name": "0x32da…f314",
"url": "https://etherscan.io/address/0x32da601374b38154f05904B16F44A1911Aa6f314"
},
{
"address": "eth:0x958470a2ADe72b7a01A2e160F3286767b9623Ad7",
"type": "EOA",
"isVerified": true,
"name": "0x9584…3Ad7",
"url": "https://etherscan.io/address/0x958470a2ADe72b7a01A2e160F3286767b9623Ad7"
},
{
"address": "eth:0x81ACA96D4Ae0932d2F3463a043392efcCB1F05b6",
"type": "EOA",
"isVerified": true,
"name": "0x81AC…05b6",
"url": "https://etherscan.io/address/0x81ACA96D4Ae0932d2F3463a043392efcCB1F05b6"
},
{
"address": "eth:0x796C3f536C6bf5CB7661C9A0570da0e1ECD303Dd",
"type": "EOA",
"isVerified": true,
"name": "0x796C…03Dd",
"url": "https://etherscan.io/address/0x796C3f536C6bf5CB7661C9A0570da0e1ECD303Dd"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0xC8Bd2Ead61e54C53C5A1836352c29F10383FBad2",
"type": "EOA",
"isVerified": true,
"name": "0xC8Bd…Bad2",
"url": "https://etherscan.io/address/0xC8Bd2Ead61e54C53C5A1836352c29F10383FBad2"
},
{
"address": "eth:0x45aa9fF818Ffaca57CA31b1C624b2a8CBF5B417e",
"type": "EOA",
"isVerified": true,
"name": "0x45aa…417e",
"url": "https://etherscan.io/address/0x45aa9fF818Ffaca57CA31b1C624b2a8CBF5B417e"
},
{
"address": "eth:0xf88b0247e611eE5af8Cf98f5303769Cba8e7177C",
"type": "EOA",
"isVerified": true,
"name": "0xf88b…177C",
"url": "https://etherscan.io/address/0xf88b0247e611eE5af8Cf98f5303769Cba8e7177C"
}
],
"description": "Whitelisted addresses that can pause the FuelMessagePortal and blacklist L2->L1 messages.",
"chain": "ethereum"
},
{
"id": "FuelChainState pausers",
"name": "FuelChainState pausers",
"accounts": [
{
"address": "eth:0xE7DCFE1B21D4b9899A80Dc67847e03830a88585e",
"type": "EOA",
"isVerified": true,
"name": "0xE7DC…585e",
"url": "https://etherscan.io/address/0xE7DCFE1B21D4b9899A80Dc67847e03830a88585e"
},
{
"address": "eth:0xe7d56c84cEA9b58569fdfe8863085207F9a14881",
"type": "EOA",
"isVerified": true,
"name": "0xe7d5…4881",
"url": "https://etherscan.io/address/0xe7d56c84cEA9b58569fdfe8863085207F9a14881"
},
{
"address": "eth:0x32da601374b38154f05904B16F44A1911Aa6f314",
"type": "Contract",
"isVerified": true,
"name": "0x32da…f314",
"url": "https://etherscan.io/address/0x32da601374b38154f05904B16F44A1911Aa6f314"
},
{
"address": "eth:0x958470a2ADe72b7a01A2e160F3286767b9623Ad7",
"type": "EOA",
"isVerified": true,
"name": "0x9584…3Ad7",
"url": "https://etherscan.io/address/0x958470a2ADe72b7a01A2e160F3286767b9623Ad7"
},
{
"address": "eth:0x81ACA96D4Ae0932d2F3463a043392efcCB1F05b6",
"type": "EOA",
"isVerified": true,
"name": "0x81AC…05b6",
"url": "https://etherscan.io/address/0x81ACA96D4Ae0932d2F3463a043392efcCB1F05b6"
},
{
"address": "eth:0x796C3f536C6bf5CB7661C9A0570da0e1ECD303Dd",
"type": "EOA",
"isVerified": true,
"name": "0x796C…03Dd",
"url": "https://etherscan.io/address/0x796C3f536C6bf5CB7661C9A0570da0e1ECD303Dd"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0xC8Bd2Ead61e54C53C5A1836352c29F10383FBad2",
"type": "EOA",
"isVerified": true,
"name": "0xC8Bd…Bad2",
"url": "https://etherscan.io/address/0xC8Bd2Ead61e54C53C5A1836352c29F10383FBad2"
},
{
"address": "eth:0x45aa9fF818Ffaca57CA31b1C624b2a8CBF5B417e",
"type": "EOA",
"isVerified": true,
"name": "0x45aa…417e",
"url": "https://etherscan.io/address/0x45aa9fF818Ffaca57CA31b1C624b2a8CBF5B417e"
},
{
"address": "eth:0xf88b0247e611eE5af8Cf98f5303769Cba8e7177C",
"type": "EOA",
"isVerified": true,
"name": "0xf88b…177C",
"url": "https://etherscan.io/address/0xf88b0247e611eE5af8Cf98f5303769Cba8e7177C"
}
],
"description": "Whitelisted addresses that can pause the FuelChainState.",
"chain": "ethereum"
},
{
"id": "Proposer",
"name": "Proposer",
"accounts": [
{
"address": "eth:0x83dC58504D1d2276Bc8D9Cf01d0B341D84A49cfF",
"type": "EOA",
"isVerified": true,
"name": "0x83dC…9cfF",
"url": "https://etherscan.io/address/0x83dC58504D1d2276Bc8D9Cf01d0B341D84A49cfF"
},
{
"address": "eth:0x32da601374b38154f05904B16F44A1911Aa6f314",
"type": "Contract",
"isVerified": true,
"name": "0x32da…f314",
"url": "https://etherscan.io/address/0x32da601374b38154f05904B16F44A1911Aa6f314"
}
],
"description": "Permissioned address that can propose new state roots.",
"chain": "ethereum"
},
{
"id": "Fuel Security Council",
"name": "Fuel Security Council",
"description": "A Multisig with 7/10 threshold. \nCan upgrade the FuelERC20Gateway, FuelMessagePortal and FuelChainState contracts, potentially gaining access to all funds. It can unpause contracts and remove L2->L1 messages from the blacklist. It can also limit the tokens that can be bridged to L2.",
"description": "A Multisig with 4/6 threshold. \nCan upgrade the FuelERC20Gateway, FuelMessagePortal and FuelChainState contracts, potentially gaining access to all funds. It can unpause contracts and remove L2->L1 messages from the blacklist. It can also limit the tokens that can be bridged to L2.",
"accounts": [
{
"address": "eth:0x32da601374b38154f05904B16F44A1911Aa6f314",
"type": "Contract",
"isVerified": true,
"name": "0x32da…f314",
"url": "https://etherscan.io/address/0x32da601374b38154f05904B16F44A1911Aa6f314"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - Fuel Ignition docs",
"url": "https://docs.fuel.network/docs/verified-addresses/security-council/#fuel-bridge-security-council"
}
],
"participants": [
{
"address": "eth:0x7cdbF64f57f0D623D924d2b4c17664c1Cd9f93d4",
"type": "EOA",
"isVerified": true,
"name": "0x7cdb…93d4",
"url": "https://etherscan.io/address/0x7cdbF64f57f0D623D924d2b4c17664c1Cd9f93d4"
},
{
"address": "eth:0x8a34B78Feb23b97b5ccDf83D9aDC7669C34D346F",
"type": "EOA",
"isVerified": true,
"name": "0x8a34…346F",
"url": "https://etherscan.io/address/0x8a34B78Feb23b97b5ccDf83D9aDC7669C34D346F"
},
{
"address": "eth:0xAA52e167e8Ad426054DCF0fd5BD5481348F4FfC8",
"type": "EOA",
"isVerified": true,
"name": "0xAA52…FfC8",
"url": "https://etherscan.io/address/0xAA52e167e8Ad426054DCF0fd5BD5481348F4FfC8"
},
{
"address": "eth:0xd4c29D8ddC7D3E326030270f35d9FD4973AbBE09",
"type": "EOA",
"isVerified": true,
"name": "0xd4c2…BE09",
"url": "https://etherscan.io/address/0xd4c29D8ddC7D3E326030270f35d9FD4973AbBE09"
},
{
"address": "eth:0x446f9d40cA491cf0788dacCAc4D16d5d8B4015Cc",
"type": "Contract",
"isVerified": true,
"name": "0x446f…15Cc",
"url": "https://etherscan.io/address/0x446f9d40cA491cf0788dacCAc4D16d5d8B4015Cc"
},
{
"address": "eth:0x515Fa9b26E195a043582377F51F9A9bAD2D10c7d",
"type": "EOA",
"isVerified": true,
"name": "0x515F…0c7d",
"url": "https://etherscan.io/address/0x515Fa9b26E195a043582377F51F9A9bAD2D10c7d"
},
{
"address": "eth:0x958470a2ADe72b7a01A2e160F3286767b9623Ad7",
"type": "EOA",
"isVerified": true,
"name": "0x9584…3Ad7",
"url": "https://etherscan.io/address/0x958470a2ADe72b7a01A2e160F3286767b9623Ad7"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0xC8Bd2Ead61e54C53C5A1836352c29F10383FBad2",
"type": "EOA",
"isVerified": true,
"name": "0xC8Bd…Bad2",
"url": "https://etherscan.io/address/0xC8Bd2Ead61e54C53C5A1836352c29F10383FBad2"
},
{
"address": "eth:0x796C3f536C6bf5CB7661C9A0570da0e1ECD303Dd",
"type": "EOA",
"isVerified": true,
"name": "0x796C…03Dd",
"url": "https://etherscan.io/address/0x796C3f536C6bf5CB7661C9A0570da0e1ECD303Dd"
}
]
}
]
}
}
+1 -1
{
"baseTimestamp": 1773319393,
"baseTimestamp": 1783335748,
"contractsDiscoDriven": false,
"hasDiscoUi": true,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+1 -1
+1 -1
{
"baseTimestamp": 1782901273,
"baseTimestamp": 1783332198,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+13 -13
+12 -12
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "Starkware Multisig 2",
"name": "Starkware Multisig 2",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with no delay**\n * StarkgateManager \n * StarkgateRegistry \n * WBTCBridge \n * FXSBridge \n * sfrxETHBridge \n * FRAXBridge \n * MultiBridge \n * UNIBridge \n* Can upgrade **with 3d delay**\n * USDTBridge [via: - acting directly with 3d delay]\n * wstETHBridge [via: - acting directly with 3d delay]\n * rETHBridge [via: - acting directly with 3d delay]\n * USDCBridge [via: - acting directly with 3d delay]\n* Can interact with StarkgateManager\n * enroll new tokens, deactivate existing ones (for deposits) or block tokens from being added to the Multibridge \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with StarkgateRegistry\n * manage critical access control roles and the role that can upgrade the implementation \n* Can interact with WBTCBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with FXSBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with USDTBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with wstETHBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with rETHBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with sfrxETHBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with FRAXBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with LUSDBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with MultiBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with USDCBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with UNIBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation ",
"accounts": [
{
"address": "eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec",
"type": "Contract",
"isVerified": true,
"name": "0x0152…C6Ec",
"url": "https://etherscan.io/address/0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xd38831Bcb40bdEE0577Ee064112Fa77a38cAd3F8",
"type": "EOA",
"isVerified": true,
"name": "0xd388…d3F8",
"url": "https://etherscan.io/address/0xd38831Bcb40bdEE0577Ee064112Fa77a38cAd3F8"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xCe958D997F4a5824D4d503A128216322C6C223a0",
"type": "EOA",
"isVerified": true,
"name": "0xCe95…23a0",
"url": "https://etherscan.io/address/0xCe958D997F4a5824D4d503A128216322C6C223a0"
},
{
"address": "eth:0x64F4396bb0669C72858Cc50C779b48EB25F45770",
"type": "EOA",
"isVerified": true,
"name": "0x64F4…5770",
"url": "https://etherscan.io/address/0x64F4396bb0669C72858Cc50C779b48EB25F45770"
}
],
"discoveryDrivenData": true
},
{
"id": "Starkware Security Council",
"name": "Starkware Security Council",
"description": "A Multisig with 9/12 threshold. \n* Can upgrade **with no delay**\n * ETHBridge \n * Starknet \n * STRKBridge \n* Can interact with ETHBridge\n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with Starknet\n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract \n* Can interact with STRKBridge\n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation ",
"accounts": [
{
"address": "eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361",
"type": "Contract",
"isVerified": true,
"name": "0x15e8…C361",
"url": "https://etherscan.io/address/0x15e8c684FD095d4796A0c0CF678554F4c1C7C361"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - Starkware Governance Hub",
"url": "https://governance.starknet.io/learn/security_council"
}
],
"participants": [
{
"address": "eth:0x0762bCc4D604Aa3B5122C7D6571Cf5368EF3F09c",
"type": "EOA",
"isVerified": true,
"name": "0x0762…F09c",
"url": "https://etherscan.io/address/0x0762bCc4D604Aa3B5122C7D6571Cf5368EF3F09c"
},
{
"address": "eth:0x5C7DcaECB4D8e49Ea2487c5Cc23C5131Ddb2252F",
"type": "EOA",
"isVerified": true,
"name": "0x5C7D…252F",
"url": "https://etherscan.io/address/0x5C7DcaECB4D8e49Ea2487c5Cc23C5131Ddb2252F"
},
{
"address": "eth:0x04D5b12b196a8CADEB2F476F22Ffb1334Ef9F94c",
"type": "EOA",
"isVerified": true,
"name": "0x04D5…F94c",
"url": "https://etherscan.io/address/0x04D5b12b196a8CADEB2F476F22Ffb1334Ef9F94c"
},
{
"address": "eth:0x2914767E232FD7708ab06bA60dB16c36C555751d",
"address": "eth:0x49C6396070D3310f335AE19169Da6B80ea67B831",
"type": "EOA",
"isVerified": true,
"name": "0x2914…751d",
"url": "https://etherscan.io/address/0x2914767E232FD7708ab06bA60dB16c36C555751d"
"name": "0x49C6…B831",
"url": "https://etherscan.io/address/0x49C6396070D3310f335AE19169Da6B80ea67B831"
},
{
"address": "eth:0xfaECfa5E4180dd55D15396F804Fd00C6dbA233B0",
"address": "eth:0x16117672EBF77d5DE9a1Af91F8F79b26421b310F",
"type": "EOA",
"isVerified": true,
"name": "0xfaEC…33B0",
"url": "https://etherscan.io/address/0xfaECfa5E4180dd55D15396F804Fd00C6dbA233B0"
"name": "0x1611…310F",
"url": "https://etherscan.io/address/0x16117672EBF77d5DE9a1Af91F8F79b26421b310F"
},
{
"address": "eth:0xF6AB8BD99EfE2515C45d6FeE8Ea32738877EFbD8",
"type": "EOA",
"isVerified": true,
"name": "0xF6AB…FbD8",
"url": "https://etherscan.io/address/0xF6AB8BD99EfE2515C45d6FeE8Ea32738877EFbD8"
},
{
"address": "eth:0x16aB869E6dEe6eF9068E5cF75C1a5A57981257CD",
"type": "EOA",
"isVerified": true,
"name": "0x16aB…57CD",
"url": "https://etherscan.io/address/0x16aB869E6dEe6eF9068E5cF75C1a5A57981257CD"
},
{
"address": "eth:0x10277B1922e56d1B69f4dCe5A35696C791F78cac",
"type": "EOA",
"isVerified": true,
"name": "0x1027…8cac",
"url": "https://etherscan.io/address/0x10277B1922e56d1B69f4dCe5A35696C791F78cac"
},
{
"address": "eth:0x7383DDEd70cCCFd99835612C4148fA986e9DE560",
"type": "EOA",
"isVerified": true,
"name": "0x7383…E560",
"url": "https://etherscan.io/address/0x7383DDEd70cCCFd99835612C4148fA986e9DE560"
},
{
"address": "eth:0x590Cb94bE977a769d9E7D95D9eff8DeAe82e430C",
"type": "EOA",
"isVerified": true,
"name": "0x590C…430C",
"url": "https://etherscan.io/address/0x590Cb94bE977a769d9E7D95D9eff8DeAe82e430C"
},
{
"address": "eth:0x7A3a1bE19470919318aAD57ba162891a97e2982E",
"type": "EOA",
"isVerified": true,
"name": "0x7A3a…982E",
"url": "https://etherscan.io/address/0x7A3a1bE19470919318aAD57ba162891a97e2982E"
},
{
"address": "eth:0xFf713991196F8a9D6838bA82C9Bb3579F8Cc0D90",
"type": "EOA",
"isVerified": true,
"name": "0xFf71…0D90",
"url": "https://etherscan.io/address/0xFf713991196F8a9D6838bA82C9Bb3579F8Cc0D90"
}
],
"discoveryDrivenData": true
},
{
"id": "Starkware Multisig 1",
"name": "Starkware Multisig 1",
"description": "A Multisig with 2/6 threshold. \n* Can upgrade **with 8d delay**\n * ETHBridge [via: DelayedExecutor with 8d delay]\n * Starknet [via: DelayedExecutor with 8d delay]\n * STRKBridge [via: DelayedExecutor with 8d delay]\n* Can interact with Starknet\n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract **with 8d delay** [via: DelayedExecutor with 8d delay]",
"accounts": [
{
"address": "eth:0x83C0A700114101D1283D1405E2c8f21D3F03e988",
"type": "Contract",
"isVerified": true,
"name": "0x83C0…e988",
"url": "https://etherscan.io/address/0x83C0A700114101D1283D1405E2c8f21D3F03e988"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xaDB26E60FA6e326B9Ee444D886B4B62EC7FA38fc",
"type": "EOA",
"isVerified": true,
"name": "0xaDB2…38fc",
"url": "https://etherscan.io/address/0xaDB26E60FA6e326B9Ee444D886B4B62EC7FA38fc"
},
{
"address": "eth:0x8e814672F5c559b15af2975fBf6Fab819A4B7Dd5",
"type": "EOA",
"isVerified": true,
"name": "0x8e81…7Dd5",
"url": "https://etherscan.io/address/0x8e814672F5c559b15af2975fBf6Fab819A4B7Dd5"
},
{
"address": "eth:0x804d60CB1ade94511f7915A2062948685Ca8C81f",
"type": "EOA",
"isVerified": true,
"name": "0x804d…C81f",
"url": "https://etherscan.io/address/0x804d60CB1ade94511f7915A2062948685Ca8C81f"
},
{
"address": "eth:0x2871B956bC19D25961E9a7519f32D7fDaA21B403",
"type": "EOA",
"isVerified": true,
"name": "0x2871…B403",
"url": "https://etherscan.io/address/0x2871B956bC19D25961E9a7519f32D7fDaA21B403"
},
{
"address": "eth:0x64F4396bb0669C72858Cc50C779b48EB25F45770",
"type": "EOA",
"isVerified": true,
"name": "0x64F4…5770",
"url": "https://etherscan.io/address/0x64F4396bb0669C72858Cc50C779b48EB25F45770"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
}
],
"discoveryDrivenData": true
},
{
"id": "SHARP Multisig",
"name": "SHARP Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with 8d delay**\n * SHARPVerifierCallProxy [via: - acting directly with 8d delay]\n* Can interact with SHARPVerifierCallProxy\n * manage the upgrade admin amd access control roles \n * set custom implementations for specific operators (changes the verifier based on who calls it) ",
"accounts": [
{
"address": "eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4",
"type": "Contract",
"isVerified": true,
"name": "0x21F9…AEc4",
"url": "https://etherscan.io/address/0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xebc8416179fE90854fe8B3f774801165572cfD7F",
"type": "EOA",
"isVerified": true,
"name": "0xebc8…fD7F",
"url": "https://etherscan.io/address/0xebc8416179fE90854fe8B3f774801165572cfD7F"
},
{
"address": "eth:0x955B978F3ee7818dA71fA25c676062E6BC462Fec",
"type": "EOA",
"isVerified": true,
"name": "0x955B…2Fec",
"url": "https://etherscan.io/address/0x955B978F3ee7818dA71fA25c676062E6BC462Fec"
}
],
"discoveryDrivenData": true
},
{
"id": "Starkware SCMinority Multisig",
"name": "Starkware SCMinority Multisig",
"description": "A Multisig with 3/12 threshold. \n* Can interact with ETHBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n* Can interact with Starknet\n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability \n* Can interact with STRKBridge\n * disable the withdrawal limit and manage the security agent role that can enable it ",
"accounts": [
{
"address": "eth:0xF6b0B3e8f57396CecFD788D60499DB49Ee6AbC6B",
"type": "Contract",
"isVerified": true,
"name": "0xF6b0…bC6B",
"url": "https://etherscan.io/address/0xF6b0B3e8f57396CecFD788D60499DB49Ee6AbC6B"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x2914767E232FD7708ab06bA60dB16c36C555751d",
"address": "eth:0x49C6396070D3310f335AE19169Da6B80ea67B831",
"type": "EOA",
"isVerified": true,
"name": "0x2914…751d",
"url": "https://etherscan.io/address/0x2914767E232FD7708ab06bA60dB16c36C555751d"
"name": "0x49C6…B831",
"url": "https://etherscan.io/address/0x49C6396070D3310f335AE19169Da6B80ea67B831"
},
{
"address": "eth:0x04D5b12b196a8CADEB2F476F22Ffb1334Ef9F94c",
"type": "EOA",
"isVerified": true,
"name": "0x04D5…F94c",
"url": "https://etherscan.io/address/0x04D5b12b196a8CADEB2F476F22Ffb1334Ef9F94c"
},
{
"address": "eth:0x5C7DcaECB4D8e49Ea2487c5Cc23C5131Ddb2252F",
"type": "EOA",
"isVerified": true,
"name": "0x5C7D…252F",
"url": "https://etherscan.io/address/0x5C7DcaECB4D8e49Ea2487c5Cc23C5131Ddb2252F"
},
{
"address": "eth:0x0762bCc4D604Aa3B5122C7D6571Cf5368EF3F09c",
"type": "EOA",
"isVerified": true,
"name": "0x0762…F09c",
"url": "https://etherscan.io/address/0x0762bCc4D604Aa3B5122C7D6571Cf5368EF3F09c"
},
{
"address": "eth:0xfaECfa5E4180dd55D15396F804Fd00C6dbA233B0",
"address": "eth:0x16117672EBF77d5DE9a1Af91F8F79b26421b310F",
"type": "EOA",
"isVerified": true,
"name": "0xfaEC…33B0",
"url": "https://etherscan.io/address/0xfaECfa5E4180dd55D15396F804Fd00C6dbA233B0"
"name": "0x1611…310F",
"url": "https://etherscan.io/address/0x16117672EBF77d5DE9a1Af91F8F79b26421b310F"
},
{
"address": "eth:0xF6AB8BD99EfE2515C45d6FeE8Ea32738877EFbD8",
"type": "EOA",
"isVerified": true,
"name": "0xF6AB…FbD8",
"url": "https://etherscan.io/address/0xF6AB8BD99EfE2515C45d6FeE8Ea32738877EFbD8"
},
{
"address": "eth:0x16aB869E6dEe6eF9068E5cF75C1a5A57981257CD",
"type": "EOA",
"isVerified": true,
"name": "0x16aB…57CD",
"url": "https://etherscan.io/address/0x16aB869E6dEe6eF9068E5cF75C1a5A57981257CD"
},
{
"address": "eth:0x10277B1922e56d1B69f4dCe5A35696C791F78cac",
"type": "EOA",
"isVerified": true,
"name": "0x1027…8cac",
"url": "https://etherscan.io/address/0x10277B1922e56d1B69f4dCe5A35696C791F78cac"
},
{
"address": "eth:0x7383DDEd70cCCFd99835612C4148fA986e9DE560",
"type": "EOA",
"isVerified": true,
"name": "0x7383…E560",
"url": "https://etherscan.io/address/0x7383DDEd70cCCFd99835612C4148fA986e9DE560"
},
{
"address": "eth:0x590Cb94bE977a769d9E7D95D9eff8DeAe82e430C",
"type": "EOA",
"isVerified": true,
"name": "0x590C…430C",
"url": "https://etherscan.io/address/0x590Cb94bE977a769d9E7D95D9eff8DeAe82e430C"
},
{
"address": "eth:0x7A3a1bE19470919318aAD57ba162891a97e2982E",
"type": "EOA",
"isVerified": true,
"name": "0x7A3a…982E",
"url": "https://etherscan.io/address/0x7A3a1bE19470919318aAD57ba162891a97e2982E"
},
{
"address": "eth:0xFf713991196F8a9D6838bA82C9Bb3579F8Cc0D90",
"type": "EOA",
"isVerified": true,
"name": "0xFf71…0D90",
"url": "https://etherscan.io/address/0xFf713991196F8a9D6838bA82C9Bb3579F8Cc0D90"
}
],
"discoveryDrivenData": true
},
{
"id": "StarkgateManager",
"name": "StarkgateManager",
"accounts": [
{
"address": "eth:0x0c5aE94f8939182F2D06097025324D1E537d5B60",
"type": "Contract",
"isVerified": true,
"name": "0x0c5a…5B60",
"url": "https://etherscan.io/address/0x0c5aE94f8939182F2D06097025324D1E537d5B60"
}
],
"chain": "ethereum",
"description": "Acts as a central contract to manage StarkGate bridge escrows (add new ones, deactivate existing, change configs) when given the Manager role from the respective escrows.\n* Can interact with MultiBridge\n * enroll new tokens or deactivate deposits into the escrow (for each token individually) ",
"discoveryDrivenData": true
},
{
"id": "Starkware Multisig 4",
"name": "Starkware Multisig 4",
"description": "A Multisig with 1/3 threshold. ",
"accounts": [
{
"address": "eth:0x77Dd0cf03e1cCbDC750c9E5FDc34b8A3671f88c5",
"type": "Contract",
"isVerified": true,
"name": "0x77Dd…88c5",
"url": "https://etherscan.io/address/0x77Dd0cf03e1cCbDC750c9E5FDc34b8A3671f88c5"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x030ceEE5D4CBc304287234720B11E00f47695755",
"type": "EOA",
"isVerified": true,
"name": "EOA 1",
"url": "#EOA-1-and-EOA-2"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0x35FD2dD14D96Ed455356B892cd4b2fCdc7F44a7b",
"type": "EOA",
"isVerified": true,
"name": "EOA 2",
"url": "#EOA-1-and-EOA-2"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 3/5 threshold. ",
"accounts": [
{
"address": "eth:0xd6FD2d2B18207a3b1A3d45C1ccA8c5624Ca82041",
"type": "Contract",
"isVerified": true,
"name": "0xd6FD…2041",
"url": "https://etherscan.io/address/0xd6FD2d2B18207a3b1A3d45C1ccA8c5624Ca82041"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x32369C32113D6A85d4B71faA40DDd048187DCe79",
"type": "EOA",
"isVerified": true,
"name": "0x3236…Ce79",
"url": "https://etherscan.io/address/0x32369C32113D6A85d4B71faA40DDd048187DCe79"
},
{
"address": "eth:0x81a3cb4FCaf11d55bD098175399DF09FB7970501",
"type": "EOA",
"isVerified": true,
"name": "0x81a3…0501",
"url": "https://etherscan.io/address/0x81a3cb4FCaf11d55bD098175399DF09FB7970501"
},
{
"address": "eth:0x5540E5e19a48172C37d3D79523ab7737c5b2033F",
"type": "EOA",
"isVerified": true,
"name": "0x5540…033F",
"url": "https://etherscan.io/address/0x5540E5e19a48172C37d3D79523ab7737c5b2033F"
},
{
"address": "eth:0x69638e337cdF22D68cAf227A0EE72B6ED1d89CAA",
"type": "EOA",
"isVerified": true,
"name": "0x6963…9CAA",
"url": "https://etherscan.io/address/0x69638e337cdF22D68cAf227A0EE72B6ED1d89CAA"
},
{
"address": "eth:0x6F8d3549eAA993755A99536566A4849B78517969",
"type": "EOA",
"isVerified": true,
"name": "0x6F8d…7969",
"url": "https://etherscan.io/address/0x6F8d3549eAA993755A99536566A4849B78517969"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"accounts": [
{
"address": "eth:0x030ceEE5D4CBc304287234720B11E00f47695755",
"type": "EOA",
"isVerified": true,
"name": "0x030c…5755",
"url": "https://etherscan.io/address/0x030ceEE5D4CBc304287234720B11E00f47695755",
"displayName": "EOA 1"
},
{
"address": "eth:0x35FD2dD14D96Ed455356B892cd4b2fCdc7F44a7b",
"type": "EOA",
"isVerified": true,
"name": "0x35FD…4a7b",
"url": "https://etherscan.io/address/0x35FD2dD14D96Ed455356B892cd4b2fCdc7F44a7b",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "Member of Starkware Multisig 4.\n* Can interact with WBTCBridge\n * enable the withdrawal limit [via: Starkware Multisig 4]\n* Can interact with ETHBridge\n * enable the withdrawal limit [via: Starkware Multisig 4]\n* Can interact with USDTBridge\n * enable the withdrawal limit [via: Starkware Multisig 4]\n* Can interact with STRKBridge\n * enable the withdrawal limit [via: Starkware Multisig 4]\n* Can interact with MultiBridge\n * enable the withdrawal limit [via: Starkware Multisig 4]\n* Can interact with USDCBridge\n * enable the withdrawal limit [via: Starkware Multisig 4]",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x2C169DFe5fBbA12957Bdd0Ba47d9CEDbFE260CA7",
"type": "EOA",
"isVerified": true,
"name": "0x2C16…0CA7",
"url": "https://etherscan.io/address/0x2C169DFe5fBbA12957Bdd0Ba47d9CEDbFE260CA7",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with Starknet\n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x4032bE860716F6e4488CBc9f1505E26E2FA3C2c2",
"type": "EOA",
"isVerified": true,
"name": "0x4032…C2c2",
"url": "https://etherscan.io/address/0x4032bE860716F6e4488CBc9f1505E26E2FA3C2c2",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with ETHBridge\n * enable the withdrawal limit \n* Can interact with STRKBridge\n * enable the withdrawal limit ",
"discoveryDrivenData": true
},
{
"id": "EOA-5",
"name": "EOA 5",
"accounts": [
{
"address": "eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A",
"type": "EOA",
"isVerified": true,
"name": "0x5751…f21A",
"url": "https://etherscan.io/address/0x5751a83170BeA11fE7CdA5D599B04153C021f21A",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * SolvBTCBridge \n * LUSDBridge \n* Can interact with SolvBTCBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation ",
"discoveryDrivenData": true
},
{
"id": "EOA-6",
"name": "EOA 6",
"accounts": [
{
"address": "eth:0xF689688640E88160c07C6FC5cc63039F29EDe86b",
"type": "EOA",
"isVerified": true,
"name": "0xF689…e86b",
"url": "https://etherscan.io/address/0xF689688640E88160c07C6FC5cc63039F29EDe86b",
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * LBTCBridge \n* Can interact with LBTCBridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1782304372,
"baseTimestamp": 1783335585,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+33 -13
+32 -12
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0xF2704433d11842d15aa76BBF0E00407267a99C92",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1740703583,
"transactionHash": "0xc4a64f76c03f5a13c02ef75b678c561fcbeac3d14d039d0c63d898009d8c4bca",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1740703583,
"transactionHash": "0xc4a64f76c03f5a13c02ef75b678c561fcbeac3d14d039d0c63d898009d8c4bca",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1742997647,
"transactionHash": "0x2b263b46f39c303439cc9863a7c0a4597a5b488c4d31ec46642e4567e190dc57",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1748553755,
"transactionHash": "0x96ca5b3c6c6131b5d6a538059dea8d2687a9e1ce8c9bed9aa8f97f80fa9e4617",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1752215135,
"transactionHash": "0x68f8e378453c0181098912cced5fca98f2e21964ba4235fa62a364e0d442110c",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1756219391,
"transactionHash": "0xba2ebefd8f2d5a07d43c02b04e871752d75554d166382e8911ba94af72f429d9",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1773017027,
"transactionHash": "0xe0f42328fde4d30995da466d585cb7887fb264080ad6d8d68a760994aa538e03",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1783169891,
"transactionHash": "0x61dd135cc44e61f4ea77857d455634a0a3a000b016ebf151060226b6f518121a",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1783328435,
"transactionHash": "0x6a2e26142cd72a8f1291b32cf365030f59d9238bb8bd0c052b31341cc80dc8d9",
"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**: zkCandyZkEvmAdmin; ultimately zkCandy Multisig\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF2704433d11842d15aa76BBF0E00407267a99C92#code"
},
{
"name": "ValidiumL1DAValidator",
"isVerified": true,
"address": "eth:0x907b30407249949521Bf0c89A43558dae200146A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that 'verifies' the data availability for validiums. This implementation only checks the correct formatting and does not serve as a DA oracle. Can be used by ZK stack validiums as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x907b30407249949521Bf0c89A43558dae200146A#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": "zkCandyZkEvmAdmin",
"isVerified": true,
"address": "eth:0x309EfA797ec5cd324Cb473F141F95214F3a25ab2",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets zkCandy Multisig act through it.\n* Roles:\n * **owner**: zkCandy Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x309EfA797ec5cd324Cb473F141F95214F3a25ab2#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": "DualVerifier",
"name": "L1VerifierPlonk",
"isVerified": true,
"address": "eth:0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3",
"address": "eth:0x7f33D100f482093182111d69a4a457289e99f4ec",
"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 PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3#code"
"url": "https://etherscan.io/address/0x7f33D100f482093182111d69a4a457289e99f4ec#code"
},
{
"name": "L1VerifierFflonk",
"isVerified": true,
"address": "eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c",
"address": "eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD324a7c8556A059371B207fB96FD77bE24E2042c#code"
"url": "https://etherscan.io/address/0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442#code"
},
{
"name": "L1VerifierPlonk",
"name": "DualVerifier",
"isVerified": true,
"address": "eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7",
"address": "eth:0xCD279BD537c8e1A1acC46aC2205bebD8902F7A45",
"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": "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/0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7#code"
"url": "https://etherscan.io/address/0xCD279BD537c8e1A1acC46aC2205bebD8902F7A45#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"
],
"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 zkCandy and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x8116A750e2091B2bA0D94223e7b20a6A65A279f4",
"l2EtherAddress": "0xE5ecd226b3032910CEaa43ba92EE8232f8237553"
},
"chainId": 1
}
],
"programHashes": [
{
"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.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.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:0xD324a7c8556A059371B207fB96FD77bE24E2042c",
"eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7"
"eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442",
"eth:0x7f33D100f482093182111d69a4a457289e99f4ec"
]
}
+1 -1
{
"baseTimestamp": 1782901273,
"baseTimestamp": 1783332265,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}