a43df22f (main)
and
fd5b29e6 (PR)
+0 -16
+0 -16
{
"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
},
{
"projectId": "sxt",
"sinceTimestamp": 1746741600
}
],
"proofSystemInfo": "\n ## Description\n\n Boojum 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\n The 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\n The 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.\n ",
"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",
"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": " \n 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. \n It 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).\n "
},
{
"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",
"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": " \n 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. \n It 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).\n "
}
],
"verifierHashes": [
{
"hash": "0x6f36a08c517b060fa97308cdb3e23b04842ff839d451a753ec8fae1a5408304a",
"proofSystem": {
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"knownDeployments": [
{
"address": "0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911",
"chain": "ethereum"
},
{
"address": "0x3CFB3a80Af42cBE4d82C14301690A62D53e870a5",
"chain": "zksync"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "\nVerification 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\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\n# install the latest version of 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\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```\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\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\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/\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.\n "
},
{
"hash": "0x64b347c642ea60114c98b3976124ea8a7e0bb778bd7e479aedc02f994486c8a1",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6",
"chain": "ethereum"
},
{
"address": "0x92A9Fd0E84354213D9c3d33128eDd6Ea55ee0717",
"chain": "zksync"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "\nVerification 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\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\n# install the latest version of 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\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```\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\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\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/\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.\n "
},
{
"hash": "0x8574e152c41dc39a2ecab984545e1cf21cb3ec250b919018a8053f2fa270784f",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0x902C3806A84f4e855a8746e92d7F1C9a51400458",
"chain": "linea"
}
],
"verificationStatus": "notVerified"
},
{
"hash": "0x49eae0bf5c7ea580f4979b366e52b386adc5f42e2ce50fc1d3c4de9a86052bff",
"proofSystem": {
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"knownDeployments": [
{
"address": "0xD324a7c8556A059371B207fB96FD77bE24E2042c",
"chain": "ethereum"
},
{
"address": "0xD324a7c8556A059371B207fB96FD77bE24E2042c",
"chain": "gateway"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "\nVerification 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\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\n# install the latest version of 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\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```\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\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\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/\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.\n "
},
{
"hash": "0x1ffc56111a5cfaf5db387f6a31408ad20217e9bc1f31f2f5c1bd38b0d6d7968b",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7",
"chain": "ethereum"
},
{
"address": "0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7",
"chain": "gateway"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "\n\nVerification 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\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\n# install the latest version of 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\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```\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\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\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/\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.\n "
}
]
}
+119 -0
+119 -0
{
"creator": "Axiom",
"projectsForTvs": [
{
"projectId": "scroll",
"sinceTimestamp": 1697493600
}
],
"proofSystemInfo": "\n \n ## Description\n\n [OpenVM](https://github.com/openvm-org/openvm?tab=readme-ov-file) is a STARK proving system based on [Plonky3 proving library](https://github.com/Plonky3/Plonky3), that has “no-CPU” design paradigm and allows adding new custom instructions to its instruction set architecture (ISA). It supports [recursive STARK aggregation](https://docs.openvm.dev/book/guest-libraries/verify-stark) and provides an [SDK](https://github.com/openvm-org/openvm-solidity-sdk) for creating Solidity verifier smart contracts. \n\n ## Proof system\n\n The proof system is split into ZK frontend, i.e. arithmetization, and ZK backend, i.e. a polynomial IOP with the Fiat-Shamir heuristic. In practice, a batched FRI-based polynomial commitment is used as the backend. OpenVM backend relies on Plonky3 prover system.\n\n OpenVM arithmetizes the execution trace using AIR with Interactions over BabyBear prime field. Interactions which include LogUp, permutation check and others.\n\n ### zkVM design\n\n OpenVM uses read-only program memory, read/write data memory as well as inputs and hints from host to enable non-deterministic computation. The execution logic is organized into a set of system chips and custom chips, without any centralized CPU-like chip. Interactions between chips are managed by program, execution and memory buses.\n\n Currently OpenVM ISA supports RISC-V instructions, keccak-256 and SHA256 hash functions, int256 arithmetic, modular arithmetic over arbitrary fields, some elliptic curve operations for the secp256k1 and secp256r1 curves and pairing operations on the BN254 and BLS12-381 curves.\n\n ### Recursion circuits\n\n OpenVM supports recursive proving and continuations, i.e. splitting a single execution trace into several rather independent ones, by recursive verification of generated STARK proofs in a specialized OpenVM program optimized for efficient proof verification (called native VM).\n\n ### Final wrap\n\nThe STARK proof is wrapped in Halo2 SNARK with KZG commitments over BN254 curve for efficient onchain processing. KZG commitment relies on Perpetual Powers of Tau trusted setup ceremony, see [below](#trusted-setups) for more details.\n",
"techStack": {
"zkVM": [
{
"id": "Plonky3",
"type": "STARK",
"name": "Plonky3",
"description": "Toolkit that implements a set of primitives for STARK-based zkVMs developed by Polygon Zero team."
},
{
"id": "OpenVM",
"type": "ISA",
"name": "OpenVM",
"description": "Extensible instruction set for OpenVM zkVM developed by Axiom."
},
{
"id": "BabyBear",
"type": "Field",
"name": "Baby Bear",
"description": "Prime field of order p = 15 * 2**27 + 1."
}
],
"finalWrap": [
{
"id": "Halo2",
"type": "Plonk",
"name": "Halo2",
"description": "Rust implementation of Halo2 SNARK proving system, originally developed for ZCash."
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
},
{
"id": "KZG",
"type": "PCS",
"name": "KZG",
"description": "Polynomial commitment scheme that requires a universal trusted setup, introduced by Kate, Zaverucha and Goldberg."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Halo2",
"type": "Plonk",
"name": "Halo2",
"description": "Rust implementation of Halo2 SNARK proving system, originally developed for ZCash."
},
"id": "Halo2KZG",
"name": "Halo2 KZG over BN254",
"risk": "yellow",
"shortDescription": "Trusted setup for KZG commitments managed by Halo2 team on the base of the first 71 contributions to the Perpetual Powers of Tau contributions.",
"longDescription": "\n A trusted setup used for KZG commitments over BN254 curve for Halo2 SNARK proving system \n (when it is set up not in a transparent way). De-facto it is the first 71 entries in the Perpetual Powers of Tau\n ceremony that were converted to a particular format.\n\n - The main coordination point is this Halo2 KZG repo to convert pptau format into Halo2-suitable format: [https://github.com/han0110/halo2-kzg-srs?tab=readme-ov-file#perpetual-powers-of-tau](https://github.com/han0110/halo2-kzg-srs?tab=readme-ov-file#perpetual-powers-of-tau)\n - Ceremony is [Perpetual Powers of Tau](https://github.com/weijiekoh/perpetualpowersoftau): [https://github.com/scroll-tech/scroll-prover/blob/main/circuit-assets.md](https://github.com/scroll-tech/scroll-prover/blob/main/circuit-assets.md)\n "
}
],
"verifierHashes": [
{
"hash": "0xeea69613c0ab56b156122ce41ac52afc8434e8d2fa1b57cdd5e2c1491e06aaf9",
"proofSystem": {
"id": "Halo2",
"type": "Plonk",
"name": "Halo2",
"description": "Rust implementation of Halo2 SNARK proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0x39854DF30b3482Ef546F68B8981Fae5A2C426eA4",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the verifier byte code string in the hex format '0x...'."
},
{
"hash": "0xd20da378d89e8ff0cb8da8f2e3316b11a1da263111de94a6d2ab0bd9a69c0160",
"proofSystem": {
"id": "Halo2",
"type": "Plonk",
"name": "Halo2",
"description": "Rust implementation of Halo2 SNARK proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0x749fC77A1a131632a8b88e8703E489557660C75e",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the verifier byte code string in the hex format '0x...'."
},
{
"hash": "0xdd4e59c1c10f04e88f31d9a6cc28e8915b18a3b9770454818f9332bf8c5bb86e",
"proofSystem": {
"id": "Halo2",
"type": "Plonk",
"name": "Halo2",
"description": "Rust implementation of Halo2 SNARK proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0xd1638c0C7Bd6bf49D655D855d353aC8b4f949582",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the verifier byte code string in the hex format '0x...'."
},
{
"hash": "0x84bee8abb47e23e48f2803a65467c82e2ce7241ee3a2166b0c50f1961afc5636",
"proofSystem": {
"id": "Halo2",
"type": "Plonk",
"name": "Halo2",
"description": "Rust implementation of Halo2 SNARK proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0x8c1b52757b5c571ADcB5572E992679d4D48e30f7",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the verifier byte code string in the hex format '0x...'."
},
{
"hash": "0x4ec51340896884b1ee3cbbe582a591603fe6079a269658f5885598e9681b8da3",
"proofSystem": {
"id": "Halo2",
"type": "Plonk",
"name": "Halo2",
"description": "Rust implementation of Halo2 SNARK proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0x8759E83b6570A0bA46c3CE7eB359F354F816c9a9",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the verifier byte code string in the hex format '0x...'."
},
{
"hash": "0x2d16d04b31777cac46405a5f8db57df83992422fa9eba9eedd5b23567e1b92ac",
"proofSystem": {
"id": "Halo2",
"type": "Plonk",
"name": "Halo2",
"description": "Rust implementation of Halo2 SNARK proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0x03a72B00D036C479105fF98A1953b15d9c510110",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the verifier byte code string in the hex format '0x...'."
},
{
"hash": "0x566598f3b1e7cc2f2eb7ee51aecdb6d7b2607ed3ecd7426e6bdfd40ea478c59f",
"proofSystem": {
"id": "Halo2",
"type": "Plonk",
"name": "Halo2",
"description": "Rust implementation of Halo2 SNARK proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0x2293cd12e8564e8219d314b075867c2f66ac6941",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the verifier byte code string in the hex format '0x...'."
},
{
"hash": "0xf4d2667a66e6ce10c953f77163ebb17a9e6add82a825e5aad4e55760dd1a5945",
"proofSystem": {
"id": "Halo2",
"type": "Plonk",
"name": "Halo2",
"description": "Rust implementation of Halo2 SNARK proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "0x4B8Aa8A96078689384DAb49691E9bA51F9d2F9E1",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the verifier byte code string in the hex format '0x...'."
}
]
}
+4 -2
+4 -2
{
"addresses": {
"ethereum": [
{
"name": "Paradex",
"isVerified": true,
"address": "eth:0xF338cad020D506e8e3d9B4854986E0EcE6C23640",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x0a64d3D7747549aF6d65C225D56ac8f71e436B93"
],
"implementations": [
"eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1689851135,
"transactionHash": "0x7862f09db4097dc43ad1972ca9ee11eaf64a1fbfdb21fe6f84ad6b68d4b9fa56",
"implementations": [
"eth:0xA964D693cd45FCBe4303524E0EFe0988cfF5ed08"
]
},
{
"timestamp": 1710346919,
"transactionHash": "0x7292984e71d89bd82d8555a1060cf741e9090f33874c6bc3b87db6d1352784d0",
"implementations": [
"eth:0x6E0aCfDC3cf17A7f99ed34Be56C3DFb93F464e24"
]
},
{
"timestamp": 1725811535,
"transactionHash": "0xe78b11cbf1332af60b8da9b2eaf51ec52cdc5bdc7cc0a89af3c2fbb0936c14d8",
"implementations": [
"eth:0x47103A9b801eB6a63555897d399e4b7c1c8Eb5bC"
]
},
{
"timestamp": 1744056299,
"transactionHash": "0x63d55b2c0cfa3b1866e99b66c6632e5474e177ce0e3b5d5b68ed8b801d76cc53",
"implementations": [
"eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04"
]
}
],
"description": "Central rollup contract. Receives (verified) state roots from the Sequencer, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n* Roles:\n * **admin**: Paradex Multisig\n * **operators**: EOA 1",
"upgradableBy": [
{
"name": "Paradex Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xF338cad020D506e8e3d9B4854986E0EcE6C23640#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"
]
}
],
"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/eth:0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60#code"
},
{
"name": "SHARPVerifier",
"isVerified": true,
"address": "eth:0xFE5e5b24FfE981C9faA0d4F36Ce346c3B22B0066",
"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/eth:0xFE5e5b24FfE981C9faA0d4F36Ce346c3B22B0066#code"
},
{
"name": "USDC Bridge",
"isVerified": true,
"address": "eth:0xE3cbE3A636AB6A754e9e41B12b09d09Ce9E53Db3",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xFF57A3bB6465501c993acF8f3b29125a862661C0"
],
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692341231,
"transactionHash": "0x25fbb19a94fb450c7254e45b992272c2d6dd6b24692e34e87052621e4df3cfed",
"implementations": [
"eth:0x6Fd62239f3A441d1898683C5a84ce3681bB42C16"
]
},
{
"timestamp": 1716894071,
"transactionHash": "0x015d716fec0e72b13c6ec480a008653d2402eb0e216c3b1adcb87d13582c6a7a",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
},
{
"timestamp": 1718445143,
"transactionHash": "0x7288e6bd014f04b9aa916599a60854eb8de2106cb95030762a2372751de95922",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
},
{
"timestamp": 1747418723,
"transactionHash": "0x6df9f1b6e2fe53f2ea980ff4908aca6e43dc77e17cfdb869c67e4879c49eabf2",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 0% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Paradex Multisig 2\n * **govAdmin**: Paradex Multisig 2\n * **secAdmin**: Paradex Multisig 2\n * **secAgent**: Paradex Multisig 2",
"upgradableBy": [
{
"name": "Paradex Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xE3cbE3A636AB6A754e9e41B12b09d09Ce9E53Db3#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/eth:0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460#code"
}
]
},
"escrows": [
{
"address": "0xE3cbE3A636AB6A754e9e41B12b09d09Ce9E53Db3",
"sinceTimestamp": 1692341159,
"tokens": [
"USDC"
],
"contract": {
"isVerified": true,
"address": "eth:0xE3cbE3A636AB6A754e9e41B12b09d09Ce9E53Db3",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xFF57A3bB6465501c993acF8f3b29125a862661C0"
],
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692341231,
"transactionHash": "0x25fbb19a94fb450c7254e45b992272c2d6dd6b24692e34e87052621e4df3cfed",
"implementations": [
"eth:0x6Fd62239f3A441d1898683C5a84ce3681bB42C16"
]
},
{
"timestamp": 1716894071,
"transactionHash": "0x015d716fec0e72b13c6ec480a008653d2402eb0e216c3b1adcb87d13582c6a7a",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
},
{
"timestamp": 1718445143,
"transactionHash": "0x7288e6bd014f04b9aa916599a60854eb8de2106cb95030762a2372751de95922",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
},
{
"timestamp": 1747418723,
"transactionHash": "0x6df9f1b6e2fe53f2ea980ff4908aca6e43dc77e17cfdb869c67e4879c49eabf2",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
}
],
"description": "Paradex USDC Escrow. The current bridge cap is 250 M USDC.",
"upgradableBy": [
{
"name": "USDC Escrow owner",
"delay": "0s"
}
],
"url": "https://etherscan.io/address/0xE3cbE3A636AB6A754e9e41B12b09d09Ce9E53Db3#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkProgramHashes": [
{
"title": "Starknet OS",
"proverSystemProject": "stwo",
"description": "Proves correct state transition for a range of consecutive Starknet transactions.",
"programUrl": "https://github.com/starkware-libs/sequencer/blob/9b4f27df41e8c45aeeb155d4fe84a1df18a8358a/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os/os.cairo#L69",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install python and pip.\n2. Install rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`.\n3. Checkout the correct version of [https://github.com/starkware-libs/sequencer/tree/main](https://github.com/starkware-libs/sequencer/tree/main): `git checkout 9b4f27df41e8c45aeeb155d4fe84a1df18a8358a`.\n4. Install required python dependencies: `python3 -m venv sequencer_venv`, then `. sequencer_venv/bin/activate && pip install -r scripts/requirements.txt`.\n5. Run `UPDATE_EXPECT=1 cargo test -p apollo_starknet_os_program test_program_hashes` to regenerate program hashes in `crates/apollo_starknet_os_program/src/program_hash.json`. The `\"os\"` value of this file will be equivalent to dec value of the hash.\n ",
"hash": "918745833886511857768061986591752808672496300091957204265383861063635175685"
},
{
"title": "Aggregation program for SHARP prover",
"description": "Cairo program that squashes the state diffs of several blocks.",
"programUrl": "https://github.com/starkware-libs/sequencer/blob/9b4f27df41e8c45aeeb155d4fe84a1df18a8358a/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/aggregator/main.cairo#L15",
"proverSystemProject": "stwo",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install python and pip.\n2. Install rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`.\n3. Checkout the correct version of [https://github.com/starkware-libs/sequencer/tree/main](https://github.com/starkware-libs/sequencer/tree/main): `git checkout 9b4f27df41e8c45aeeb155d4fe84a1df18a8358a`.\n4. Install required python dependencies: `python3 -m venv sequencer_venv`, then `. sequencer_venv/bin/activate && pip install -r scripts/requirements.txt`.\n5. Run `UPDATE_EXPECT=1 cargo test -p apollo_starknet_os_program test_program_hashes` to regenerate program hashes in `crates/apollo_starknet_os_program/src/program_hash.json`. The `\"aggregator_with_prefix\"` value of this file will be equivalent to dec value of the hash.\n ",
"hash": "1701025211190912681772481128523426351562426117847395998223683709327746845867"
},
{
"title": "Simple bootloader Cairo program (StarkWare_GpsStatementVerifier_2025_11)",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"verificationStatus": "notVerified",
"hash": "37889379279861089970868356983774360253508326951064758033885675883862334778"
},
{
"title": "Applicative bootloader Cairo program (StarkWare_GpsStatementVerifier_2025_11)",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"verificationStatus": "notVerified",
"hash": "3480185788024326007166778030599498673382667448173974782477620863541158415714"
}
]
}
+0 -4
+0 -4
{
"creator": "RISC Zero",
"projectsForTvs": [
{
"projectId": "taiko",
"sinceTimestamp": 1730452800
},
{
"projectId": "bob",
"sinceTimestamp": 1752703200
}
],
"proofSystemInfo": "\n \n ## Description\n\n RISC Zero is the first zkVM proving RISC-V ISA programs. Its STARK proving system is based on a rather standard theoretical construction of [Ben-Sasson et al paper](https://eprint.iacr.org/2018/046) and [DEEP-ALI version of FRI](https://eprint.iacr.org/2019/336). The proof of zkVM execution is wrapped in Groth16 SNARK for efficient onchain verification. RISC Zero onchain verifier targets [96 bits of security](https://dev.risczero.com/api/security-model#cryptographic-security).\n\n ## Proof system\n\n ### RISC-V circuit\n\n RISC Zero implements a [circuit that proves RISC-V RV32IM instruction set](https://github.com/risc0/risc0/tree/main/risc0/circuit/rv32im) (see [here](https://dev.risczero.com/api/zkvm/zkvm-specification#the-zkvm-execution-model) for more details). Arithmetization of this circuit has different types of columns: control, data and accumulator. Control columns contain public data that describes the RISC-V program being executed and proven. Data and accumulator columns contain private data (accessible only to prover), data represents the running state of the processor and memory and accumulator is auxiliary data for the PLOOKUP argument.\n\n ### Recursion circuit\n\n RISC Zero prover supports recursive proving of RISC-V programs using [recursion circuit](https://github.com/risc0/risc0/tree/main/risc0/circuit/recursion). This is a separate STARK circuit that is designed to efficiently generate proofs for the verification of STARK proofs, it uses the same proving system as the RISC-V circuit.\n\n Big programs are split into several segments that are executed and proven in parallel. Segment receipts (i.e. proofs of correct execution) are verified with recursion circuits and succinct receipts are produced. These succinct receipts could be recursively joined in pairs of two until a single succinct proof of the whole execution is produced. \n\n ### Final wrap\n\n RISC Zero [implements a SNARK wrapping](https://github.com/risc0/risc0/tree/main/risc0/groth16) of a recursive succinct receipt into a Groth16 proof over BN254 curve for onchain verification. This Groth16 R1CS circuit uses a circuit-specific trusted setup, the ceremony was run by RISC Zero, see [below](#trusted-setups) for more details. \n\n The final wrap circuit has a [control root](https://dev.risczero.com/terminology#control-root) public input that depends on the RISC-V and recursion circuit versions. This design allows upgrading RISC Zero proving system without changing the final wrapper and thus without running a new trusted setup ceremony.\n ",
"techStack": {
"zkVM": [
{
"id": "RISC0",
"type": "STARK",
"name": "Risc0",
"description": "zkVM STARK proving system developed by RISC ZERO for RISC-V programs."
},
{
"id": "RISCV",
"type": "ISA",
"name": "RISC-V",
"description": "Free and open-source universal 32-bit ISA used across a variety of hardware and software."
},
{
"id": "BabyBear",
"type": "Field",
"name": "Baby Bear",
"description": "Prime field of order p = 15 * 2**27 + 1."
}
],
"finalWrap": [
{
"id": "Snarkjs",
"type": "Groth16",
"name": "Snarkjs",
"description": "Circom / iden3 implementation of Groth16 proving system written in JS."
},
{
"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": "Snarkjs",
"type": "Groth16",
"name": "Snarkjs",
"description": "Circom / iden3 implementation of Groth16 proving system written in JS."
},
"id": "Risc0",
"name": "Risc0 Groth16",
"risk": "green",
"shortDescription": "Circuit-specific trusted setup for Risc0 final wrap Groth16 onchain verifier. It was publicly announced and run with 238 participants.",
"longDescription": "\n Ceremony for a circuit-specific trusted setup run by Risc0 for Groth16 circuits verifying Risc0 STARK proof. \n It was publicly announced and run with 238 participants. Ceremony transcript, as well as instructions for participation and verification \n are publicly available.\n\n - Ceremony instructions: [https://risczero.com/blog/ceremony-contribution-public-instructions](https://risczero.com/blog/ceremony-contribution-public-instructions)\n - Link to the verification: [https://dev.risczero.com/api/trusted-setup-ceremony#the-transcript-matches-the-circuit](https://dev.risczero.com/api/trusted-setup-ceremony#the-transcript-matches-the-circuit)\n - Post with a call to community to participate: [https://x.com/RiscZero/status/1781110200923275769](https://x.com/RiscZero/status/1781110200923275769)\n "
}
],
"verifierHashes": [
{
"hash": "0x1dcf73cbd51c9eba43c437c5a5ebc5328ca2d7a590c701a9a9bc1136eceeeea7",
"proofSystem": {
"id": "Snarkjs",
"type": "Groth16",
"name": "Snarkjs",
"description": "Circom / iden3 implementation of Groth16 proving system written in JS."
},
"knownDeployments": [
{
"address": "0xafB31f5b70623CDF4b20Ada3f7230916A5A79df9",
"chain": "ethereum"
},
{
"address": "0x34Eda8BfFb539AeC33078819847B36D221c6641c",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the following values abi packed together: the bytes32 value of internal pure function verifier_key_digest() of the RiscZeroGroth16Verifier.sol, bytes16 value of CONTROL_ROOT_1, bytes16 value of CONTROL_ROOT_2."
},
{
"hash": "0xc6fcb1951eb5b45a669431346a01577df99f30d72baa9d5c7eea40ec6cccfab9",
"proofSystem": {
"id": "Snarkjs",
"type": "Groth16",
"name": "Snarkjs",
"description": "Circom / iden3 implementation of Groth16 proving system written in JS."
},
"knownDeployments": [
{
"address": "0x2a098988600d87650Fb061FfAff08B97149Fa84D",
"chain": "ethereum"
},
{
"address": "0x7CCA385bdC790c25924333F5ADb7F4967F5d1599",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the following values abi packed together: the bytes32 value of internal pure function verifier_key_digest() of the RiscZeroGroth16Verifier.sol, bytes16 value of CONTROL_ROOT_1, bytes16 value of CONTROL_ROOT_2."
}
]
}
+105 -0
+105 -0
{
"addresses": {
"ethereum": [
{
"name": "MultipleVersionRollupVerifier",
"isVerified": true,
"address": "eth:0x4CEA3E866e7c57fD75CB0CA3E9F5f1151D4Ead3F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract used to update the verifier and keep track of current and old versions.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x4CEA3E866e7c57fD75CB0CA3E9F5f1151D4Ead3F#code"
},
{
"name": "L1MessageQueueV2",
"isVerified": true,
"address": "eth:0x56971da63A3C0205184FEF096E9ddFc7A8C2D18a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x39C36c9026ac18104839A50c61a4507ea5052ECa"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1742476139,
"transactionHash": "0xa44917bb285df86b23937d2180e5e2d21d47407803736797bc8cdbaf59d8f256",
"implementations": [
"eth:0xFAf8f72e54d1089fa1882b6f597BfDFF59a8AFca"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0xEfA158006b072793a49E622B26761cD0eC38591d"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x39C36c9026ac18104839A50c61a4507ea5052ECa"
]
}
],
"description": "Contains the array of queued L1 -> L2 messages, either appended using the L1ScrollMessenger or the EnforcedTxGateway.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x56971da63A3C0205184FEF096E9ddFc7A8C2D18a#code"
},
{
"name": "L1ScrollMessenger",
"isVerified": true,
"address": "eth:0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x79b6eAbfFAa958FDF2Aa2Bf632878bD323DCbF69"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xcad9f31340db6aca3a5da0d704ee33a9b6c43a5b1be4406cc0ed33edbdd7c92e",
"implementations": [
"eth:0xAf2F898a8680cb52766ABE0588ebe6b9bFe37845"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x72981fD00087fF4F60aBFdE9f353cB1912A37fb6"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0xc6326109E33465d6d61e4Cb7AFCe7B1bE7cfF868"
]
},
{
"timestamp": 1745564819,
"transactionHash": "0x783703d4e94de48edb75261149a540cbf7abb7ef077865c11080e622a508ab86",
"implementations": [
"eth:0x84791281EF5cb8Af5dCd4c122f7A42FeD38Fef5b"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x79b6eAbfFAa958FDF2Aa2Bf632878bD323DCbF69"
]
}
],
"description": "Contract used to send L1 -> L2 and relay messages from L2. It allows to replay failed messages and to drop skipped messages. L1 -> L2 messages sent using this contract pay for L2 gas on L1 and will have the aliased address of this contract as the sender.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367#code"
},
{
"name": "EnforcedTxGateway",
"isVerified": true,
"address": "eth:0x72CAcBcfDe2d1e19122F8A36a4d6676cd39d7A5d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x7e87c75BBe7991bbCEBd2C7a56f4cFC923BDDBcc"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xd2e3c3d2839a35492419c5a1ae863e7a23d963cb4853c59e8e20832e0ee4ed3e",
"implementations": [
"eth:0x642af405bF64660665B37977449C9C536B806318"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0x7e87c75BBe7991bbCEBd2C7a56f4cFC923BDDBcc"
]
}
],
"description": "Contracts to force L1 -> L2 messages with the proper sender.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x72CAcBcfDe2d1e19122F8A36a4d6676cd39d7A5d#code"
},
{
"name": "ScrollOwner",
"isVerified": true,
"address": "eth:0x798576400F7D662961BA15C6b3F3d813447a26a6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Owner of all contracts in the system. It implements an extension of AccessControl that manages roles and functions allowed to be called by each role.\n* Roles:\n * **opsFast**: TimelockFast; ultimately Scroll Multisig 3\n * **opsNoDelay**: TimelockEmergency; ultimately Scroll Multisig 2\n * **scMinorityNoDelay**: Scroll Security Council Minority\n * **scNoDelay**: TimelockSCEmergency; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x798576400F7D662961BA15C6b3F3d813447a26a6#code"
},
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x8432728A257646449245558B8b7Dbe51A16c7a4D",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xf15a4b6D1fE2Ca6eE38BC3fb957f43F58b515eeE"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1742476115,
"transactionHash": "0x693533d50e553bb88df2025b2f294549a13cc6ed266de233429ac8742314c77a",
"implementations": [
"eth:0xFAf8f72e54d1089fa1882b6f597BfDFF59a8AFca"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0x6A124779fDf107c3F6BcB992731dCAaD09f2276A"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0xf15a4b6D1fE2Ca6eE38BC3fb957f43F58b515eeE"
]
}
],
"description": "System configuration contract for Scroll, contains enforcedBatchParameters and messageQueueParameters determining permissionless mode.\n* Roles:\n * **admin**: ProxyAdmin\n * **owner**: ScrollOwner",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x8432728A257646449245558B8b7Dbe51A16c7a4D#code"
},
{
"name": "ScrollChain",
"isVerified": true,
"address": "eth:0xa13BAF47339d63B743e7Da8741db5456DAc1E556",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x0a20703878E68E587c59204cc0EA86098B8c3bA7"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xecc94033ca66ea9068acde109b0c9e3c539191645916a35952bb6d9fd2be3a02",
"implementations": [
"eth:0x2E07f0FBA71709bb5e1f045b02152E45B451D75f"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0xFA148514d03420b7b1a13eC74da06D2Ca875539C"
]
},
{
"timestamp": 1714341995,
"transactionHash": "0x6eb161ed649cf22771e586a8546eec157717e2dec4c871e7ad4e4d2c5c59a905",
"implementations": [
"eth:0xaa6d0F2490AC3957B97e11afEC6F0f250593CaC8"
]
},
{
"timestamp": 1719915047,
"transactionHash": "0x87f533704b3cdac75c20bbdcd202a97ee62075c188ccea27ab7ff494cdeea247",
"implementations": [
"eth:0x4F250B05262240C787a1eE222687C6eC395C628A"
]
},
{
"timestamp": 1724196995,
"transactionHash": "0x3928e0223337a112ea68c84db95441185a3e1da809638be13c0135761aa19ee7",
"implementations": [
"eth:0x9bB163401E8C72573854c4Cd968aFA7A7b02D25f"
]
},
{
"timestamp": 1744728443,
"transactionHash": "0xa1faad1ccd2c390641b46d50d93c26b7369137f021e528acfec78385494b2fb0",
"implementations": [
"eth:0x8f339292d2b3909574B2bEB051a613a987dB538f"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0xb7c8833F5627a8a12558cAFa0d0EBD1ACBDce43f"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x0a20703878E68E587c59204cc0EA86098B8c3bA7"
]
}
],
"description": "The main contract of the Scroll chain. Allows to post transaction data and state roots, along with proofs. Sequencing and proposing are behind a whitelist unless enforcedBatchMode is activated.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xa13BAF47339d63B743e7Da8741db5456DAc1E556#code"
},
{
"name": "TimelockSCEmergency",
"isVerified": true,
"address": "eth:0x0CD4c0F24a0A9f3E2Fe80ed385D8AD5a2FfECA44",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 0s. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Security Council\n * **executor**: Scroll Multisig 1, Scroll Security Council; ultimately EOA 1, EOA 2, EOA 3, EOA 4\n * **proposer**: Scroll Security Council\n * **timelockAdmin**: Scroll Security Council, TimelockSCEmergency; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x0CD4c0F24a0A9f3E2Fe80ed385D8AD5a2FfECA44#code"
},
{
"name": "TimelockFast",
"isVerified": true,
"address": "eth:0x0e58939204eEDa84F796FBc86840A50af10eC4F4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Multisig 3\n * **executor**: Scroll Multisig 1; ultimately EOA 1, EOA 2, EOA 3, EOA 4\n * **proposer**: Scroll Multisig 3\n * **timelockAdmin**: Scroll Multisig 3, TimelockFast; ultimately Scroll Multisig 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x0e58939204eEDa84F796FBc86840A50af10eC4F4#code"
},
{
"name": "TimelockSCSlow",
"isVerified": true,
"address": "eth:0x3f9041350B661c74C6CbE440c8Bd6BC4C168a9fd",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 3d. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Security Council\n * **executor**: Scroll Multisig 1, Scroll Security Council; ultimately EOA 1, EOA 2, EOA 3, EOA 4\n * **proposer**: Scroll Security Council\n * **timelockAdmin**: Scroll Security Council, TimelockSCSlow; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x3f9041350B661c74C6CbE440c8Bd6BC4C168a9fd#code"
},
{
"name": "TimelockEmergency",
"isVerified": true,
"address": "eth:0x826714adD4dDA2b8750794A467C892c0Cd49216b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 0s. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Multisig 2\n * **executor**: Scroll Multisig 1; ultimately EOA 1, EOA 2, EOA 3, EOA 4\n * **proposer**: Scroll Multisig 2\n * **timelockAdmin**: Scroll Multisig 2, TimelockEmergency; ultimately Scroll Multisig 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x826714adD4dDA2b8750794A467C892c0Cd49216b#code"
},
{
"name": "L1ERC721Gateway",
"isVerified": true,
"address": "eth:0x6260aF48e8948617b8FA17F4e5CEa2d21D21554B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x79F1bF1906B63b56E08c3ada4c51De11F145a27A"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x5cb06c63fb2583db9eba85a73ca794a9d36eace7f91925962b8cc97fd06b9b7d",
"implementations": [
"eth:0xDE3be7C2AA151D1E152DDfcBf0962FcDf5323DAe"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0xd1841c5756428812233eEA78afC17cb2D3e392bb"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x79F1bF1906B63b56E08c3ada4c51De11F145a27A"
]
}
],
"description": "Contract used to bridge ERC721 tokens from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x6260aF48e8948617b8FA17F4e5CEa2d21D21554B#code"
},
{
"name": "L1ETHGateway",
"isVerified": true,
"address": "eth:0x7F2b8C31F88B6006c382775eea88297Ec1e3E905",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x1fee6a6dC49095FB9C84D61aa4b8A07284b2A1d0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xbd63d1902c6343a9cdb81aa8944621690e4dd62a82640fded7f7c3d969e3647a",
"implementations": [
"eth:0x1fcbE079c4Bbab37406daB7Dfd35AcAe37D5C55d"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x546E0bF31FB6e7babD493452e4e6999191367B42"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x1fee6a6dC49095FB9C84D61aa4b8A07284b2A1d0"
]
}
],
"description": "Contract used to bridge ETH from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x7F2b8C31F88B6006c382775eea88297Ec1e3E905#code"
},
{
"name": "pufETHEscrow",
"isVerified": true,
"address": "eth:0xA033Ff09f2da45f0e9ae495f525363722Df42b2a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9eBf2f33526CD571f8b2ad312492cb650870CFd6"
],
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713173507,
"transactionHash": "0xa2ff9275d6280e3cc298653463c5d8423c44cfbc66a52a9a138becbb106dc0f8",
"implementations": [
"eth:0xc4d46E8402F476F269c379677C99F18E22Ea030e"
]
},
{
"timestamp": 1713173507,
"transactionHash": "0xe03abd155a10591ed1fa4a1e2ad0d6042549bfd67769dbf6bd66d25743950905",
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
},
{
"timestamp": 1713173507,
"transactionHash": "0xb367f770c26a72ea837a51c2c1fc84a3396914db1d58c020177b207e0f876a79",
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
}
],
"description": "Contract used to bridge ERC20 tokens from L1 to L2. It allows to change the token mappings.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xA033Ff09f2da45f0e9ae495f525363722Df42b2a#code"
},
{
"name": "L1CustomERC20Gateway",
"isVerified": true,
"address": "eth:0xb2b10a289A229415a124EFDeF310C10cb004B6ff",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x40c3C3dEa3B7D6d117E6713377144fD8EE6D6c97"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x12f874f5ca5a8dbdc5162db5179a4e4b753f4fcff8dab3f416bd1ce707ecb9ff",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x7F512E2E9dfC4552941D99A5b2405BBcF5781C2c"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x40c3C3dEa3B7D6d117E6713377144fD8EE6D6c97"
]
}
],
"description": "Contract used to bridge ERC20 tokens from L1 to L2. It allows to change the token mappings.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xb2b10a289A229415a124EFDeF310C10cb004B6ff#code"
},
{
"name": "L1ERC1155Gateway",
"isVerified": true,
"address": "eth:0xb94f7F6ABcb811c5Ac709dE14E37590fcCd975B6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xcA46358D5F01E4F865885514DAe6275087Ffe38E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xe6cabeddb49c286b33e0e6d4a43af76e1a2108ac9fc91afb508a5ea86a8fc646",
"implementations": [
"eth:0xCb4638620E4C6DeCef26374e71b0dd4871863593"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x244BF7aEf29F03916569470a51fA0794B62F8cd7"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0xcA46358D5F01E4F865885514DAe6275087Ffe38E"
]
}
],
"description": "Contract used to bridge ERC1155 tokens from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xb94f7F6ABcb811c5Ac709dE14E37590fcCd975B6#code"
},
{
"name": "L1StandardERC20Gateway",
"isVerified": true,
"address": "eth:0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xfF8238be22cC583b3d69A76da9d84Da7788c0ee9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x85d366c40632340d9e835fdd0a1646909a56d60c680373f15f9d36878ff13029",
"implementations": [
"eth:0x9218732389D80f9b8723C3f32a38865B7a63564A"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x4015Fc868C06689ABEba4a9dC8FA43B804F6239c"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0xfF8238be22cC583b3d69A76da9d84Da7788c0ee9"
]
}
],
"description": "Contract used to bridge ERC20 tokens from L1 to L2. It uses a fixed token list.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9#code"
},
{
"name": "L1GatewayRouter",
"isVerified": true,
"address": "eth:0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xb93Ac04010Bd61F45BF492022A5b49a902F798F3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x8f6851c707737c446ee55f39be1442ce8cfa50ef8522b34bac247c0bb39a14ec",
"implementations": [
"eth:0xb93Ac04010Bd61F45BF492022A5b49a902F798F3"
]
}
],
"description": "Main entry point for depositing ETH and ERC20 tokens, which are then forwarded to the correct gateway.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6#code"
},
{
"name": "wstETHescrowLido",
"isVerified": true,
"address": "eth:0x6625C6332c9F91F2D27c304E729B86db87A3f504",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCC2C53556Bc75217cf698721b29071d6f12628A9"
],
"implementations": [
"eth:0xF4f2066EE72D62e3caF9678459149BA7FCf2262F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696920503,
"transactionHash": "0xec5c25ea4b3e6d1dc9fa4cb7b7dd37a7a245a171cd3d16fb312628b5ecc9e841",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
{
"timestamp": 1709624939,
"transactionHash": "0xd755174ba6bacec85b68b77c9ec2a8b966955746be59a6efa932f47c37dda482",
"implementations": [
"eth:0xF4f2066EE72D62e3caF9678459149BA7FCf2262F"
]
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x6625C6332c9F91F2D27c304E729B86db87A3f504#code"
},
{
"name": "DaiEscrow",
"isVerified": true,
"address": "eth:0x67260A8B73C5B77B55c1805218A42A7A6F98F515",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696920095,
"transactionHash": "0x9776779beb429ea826a81a8c1c5f782933bfc8ce568afa1c6f2c2b866be2a3a5",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x67260A8B73C5B77B55c1805218A42A7A6F98F515#code"
},
{
"name": "L1WETHGateway",
"isVerified": true,
"address": "eth:0x7AC440cAe8EB6328de4fA621163a792c1EA9D4fE",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xE25EfFEFd08c4a57556d47eF96471Cb567A86c24"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x0f1df3c211e6b201b0bb0cc41c87c2fbb36683f2a24080d935ffdc587723c033",
"implementations": [
"eth:0xd3c42158682D55E082EaBe08a29F7515A97cA307"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0xa4F400593DFfc0ae02F940ab58f6e3Cc6fb9FB49"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0xE25EfFEFd08c4a57556d47eF96471Cb567A86c24"
]
}
],
"description": "Contract used to bridge WETH from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x7AC440cAe8EB6328de4fA621163a792c1EA9D4fE#code"
},
{
"name": "L1USDCGateway",
"isVerified": true,
"address": "eth:0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x56ce8A8E8399f6cD5e7e4f549E8BfD673f2AfF5e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696919351,
"transactionHash": "0x394b36151c614a7dfd048ddc1085046d2a50e5fd54af4c335d4a08aa79dd773d",
"implementations": [
"eth:0x6667123b5017AAB9945F73345848B82D7A953AA8"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x56ce8A8E8399f6cD5e7e4f549E8BfD673f2AfF5e"
]
}
],
"description": "Contract used to bridge USDC tokens from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B#code"
},
{
"name": "PlonkVerifierV1-1",
"isVerified": true,
"address": "eth:0x03a72B00D036C479105fF98A1953b15d9c510110",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://circuit-release.s3.us-west-2.amazonaws.com/release-v0.11.4/evm_verifier.yul"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x03a72B00D036C479105fF98A1953b15d9c510110#code"
},
{
"name": "PlonkVerifierV1",
"isVerified": true,
"address": "eth:0x2293cd12e8564e8219d314b075867c2f66ac6941",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://circuit-release.s3.us-west-2.amazonaws.com/release-v0.10.3/evm_verifier.yul"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x2293cd12e8564e8219d314b075867c2f66ac6941#code"
},
{
"name": "PlonkVerifierPostEuclid-2",
"isVerified": true,
"address": "eth:0x39854DF30b3482Ef546F68B8981Fae5A2C426eA4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.5.2/bundle/verifier.bin"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x39854DF30b3482Ef546F68B8981Fae5A2C426eA4#code"
},
{
"name": "ZkEvmVerifierPostFeynman",
"isVerified": true,
"address": "eth:0x4AF7f3aBd780Fbd319c4356a219100A45F85DDb5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x4AF7f3aBd780Fbd319c4356a219100A45F85DDb5#code"
},
{
"name": "PlonkVerifierV0",
"isVerified": true,
"address": "eth:0x4B8Aa8A96078689384DAb49691E9bA51F9d2F9E1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://circuit-release.s3.us-west-2.amazonaws.com/release-v0.9.5/evm_verifier.yul"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x4B8Aa8A96078689384DAb49691E9bA51F9d2F9E1#code"
},
{
"name": "ZkEvmVerifierPostFeynman",
"isVerified": true,
"address": "eth:0x4F438522956c8826B9e29B4c775b2d8a6a803181",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x4F438522956c8826B9e29B4c775b2d8a6a803181#code"
},
{
"name": "PlonkVerifierGalileo",
"isVerified": true,
"address": "eth:0x749fC77A1a131632a8b88e8703E489557660C75e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/v0.7.1/verifier/verifier.bin"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x749fC77A1a131632a8b88e8703E489557660C75e#code"
},
{
"name": "PlonkVerifierV2",
"isVerified": true,
"address": "eth:0x8759E83b6570A0bA46c3CE7eB359F354F816c9a9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://github.com/scroll-tech/scroll-prover/blob/main/release-v0.12.0/evm_verifier.yul"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x8759E83b6570A0bA46c3CE7eB359F354F816c9a9#code"
},
{
"name": "PlonkVerifierV2-1",
"isVerified": true,
"address": "eth:0x8c1b52757b5c571ADcB5572E992679d4D48e30f7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://github.com/scroll-tech/scroll-prover/blob/main/release-v0.13.0/evm_verifier.yul"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x8c1b52757b5c571ADcB5572E992679d4D48e30f7#code"
},
{
"name": "ZkEvmVerifierPostFeynman",
"isVerified": true,
"address": "eth:0xa8d4702Aa5c09AF5dD1323E1842a43789021F485",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xa8d4702Aa5c09AF5dD1323E1842a43789021F485#code"
},
{
"name": "PauseController",
"isVerified": true,
"address": "eth:0xb8f7eA9998530833Cbb7E0EF4f0D945957229D8b",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x57e26d997852e7e94915e250446C3bf43F41d98D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753067003,
"transactionHash": "0x3decf466a6c0dfc015f7496b5737f597ae7f90073bce2e83a5660b5de64ffe4b",
"implementations": [
"eth:0x57e26d997852e7e94915e250446C3bf43F41d98D"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xb8f7eA9998530833Cbb7E0EF4f0D945957229D8b#code"
},
{
"name": "ZkEvmVerifierPostEuclid-2",
"isVerified": true,
"address": "eth:0xc084a6De8b0F2742396572d6f110eC87ca9329bA",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xc084a6De8b0F2742396572d6f110eC87ca9329bA#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ScrollOwner",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072#code"
}
],
"scroll": [
{
"name": "ScrollOwner",
"isVerified": true,
"address": "scr:0x13D24a7Ff6F5ec5ff0e9C40Fc3B8C9c01c65437B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "Owner of all contracts in the system. It implements an extension of AccessControl that manages roles and functions allowed to be called by each role.\n* Roles:\n * **scNoDelay**: TimelockSCEmergencyScroll; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x13D24a7Ff6F5ec5ff0e9C40Fc3B8C9c01c65437B#code"
},
{
"name": "L2GatewayRouter",
"isVerified": true,
"address": "scr:0xE2b4795039517653c5Ae8C2A9BFdd783b48f447A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x3ffe801a43D25d0288683237A848e14f73a226f0"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917917,
"transactionHash": "0xaac223f86591581be57fc2296c6895a55d4f5488340e63577fa0b909e950747d",
"implementations": [
"scr:0xCaa86d504B7670f4BCe0B323c2AaF7002CF6C478"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x3ffe801a43D25d0288683237A848e14f73a226f0"
]
}
],
"description": "Contract used to withdraw ERC20 tokens on L2 and finalize deposit the tokens from L1.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0xE2b4795039517653c5Ae8C2A9BFdd783b48f447A#code"
},
{
"name": "TimelockSCEmergencyScroll",
"isVerified": true,
"address": "scr:0x1f807E2E8ab2e61230a0A9C271F90242831278b4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "A timelock with access control. The current minimum delay is 0s. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Security Council\n * **executor**: Scroll Multisig 1, Scroll Security Council; ultimately EOA 5, EOA 6, EOA 7, EOA 8\n * **proposer**: Scroll Security Council\n * **timelockAdmin**: Scroll Security Council, TimelockSCEmergencyScroll; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x1f807E2E8ab2e61230a0A9C271F90242831278b4#code"
},
{
"name": "TimelockFast",
"isVerified": true,
"address": "scr:0x2b14d0E4b042d11C7e3Fc653132a2c82EFa7d376",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "A timelock with access control. The current minimum delay is 1d. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Multisig 3\n * **executor**: Scroll Multisig 1; ultimately EOA 5, EOA 6, EOA 7, EOA 8\n * **proposer**: Scroll Multisig 3\n * **timelockAdmin**: Scroll Multisig 3, TimelockFast; ultimately Scroll Multisig 3",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x2b14d0E4b042d11C7e3Fc653132a2c82EFa7d376#code"
},
{
"name": "AgoraGovernor",
"isVerified": true,
"address": "scr:0x2f3F2054776bd3C2fc30d750734A8F539Bb214f0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0x82e58e20Da6ecF4B07649C9B2237FAf27f02bC81"
],
"implementations": [
"scr:0xd74aD535faE370Ec0762ECe045EeB8970Be378F7"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1725377334,
"transactionHash": "0xb450d90f0a2025a932ff6a536cd7a0b30ce3c20e150b1f15d5f0216dd7824998",
"implementations": [
"scr:0x4dCEC34886014C1a2E1Ca742B5Bd7B9952B7f4A2"
]
},
{
"timestamp": 1729119781,
"transactionHash": "0x8a9a791104181ad063e9b300950ae9bff21d152e544c0313650398ab672db5ba",
"implementations": [
"scr:0xd74aD535faE370Ec0762ECe045EeB8970Be378F7"
]
}
],
"description": "Used to propose and manage onchain governance proposals.\n* Roles:\n * **admin**: ProxyAdmin\n * **manager**: GnosisSafeL2\n * **timelock**: TimelockSCSlow; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x2f3F2054776bd3C2fc30d750734A8F539Bb214f0#code"
},
{
"name": "TimelockEmergency",
"isVerified": true,
"address": "scr:0xA77D19C1F2B06C9aeA9bE88C17B771a33892734f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "A timelock with access control. The current minimum delay is 0s. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Multisig 2\n * **executor**: Scroll Multisig 1; ultimately EOA 5, EOA 6, EOA 7, EOA 8\n * **proposer**: Scroll Multisig 2\n * **timelockAdmin**: Scroll Multisig 2, TimelockEmergency; ultimately Scroll Multisig 2",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0xA77D19C1F2B06C9aeA9bE88C17B771a33892734f#code"
},
{
"name": "Scroll USDC",
"isVerified": true,
"address": "scr:0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4",
"upgradeability": {
"proxyType": "ZeppelinOS proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x72e2451a2da1535DBf0E7CB1e8C69F56E00A7B7b"
],
"immutable": false
},
"chain": "scroll",
"pastUpgrades": [],
"description": "Contract of the USDC token on Scroll.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4#code"
},
{
"name": "L2USDCGateway",
"isVerified": true,
"address": "scr:0x33B60d5Dd260d453cAC3782b0bDC01ce84672142",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x6E0618d128d2d861994DF7a725743F69b53C2804"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696919404,
"transactionHash": "0x53dca8476e9bb314c9ac8008f2e33460eea3cde5798aeaf1327feba43f2af2ee",
"implementations": [
"scr:0x02812d966B5cdeeb9aCBbBae51cA2d5d0f86A086"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x6E0618d128d2d861994DF7a725743F69b53C2804"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x33B60d5Dd260d453cAC3782b0bDC01ce84672142#code"
},
{
"name": "L2GatewayRouter",
"isVerified": true,
"address": "scr:0x4C0926FF5252A435FD19e10ED15e5a249Ba19d79",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x3808d0F2F25839E73e0Fbf711368fC4aE80c7763"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917917,
"transactionHash": "0xa2062a4530b194a438bb9f9e87cdce59f70775a52e8336892364445847c43ca2",
"implementations": [
"scr:0x3808d0F2F25839E73e0Fbf711368fC4aE80c7763"
]
}
],
"description": "Counterpart to the L1GatewayRouter contract.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x4C0926FF5252A435FD19e10ED15e5a249Ba19d79#code"
},
{
"name": "L2MessageQueue",
"isVerified": true,
"address": "scr:0x5300000000000000000000000000000000000000",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "Used to append messages to the L2MessageQueue from the L2ScrollMessenger.\n",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x5300000000000000000000000000000000000000#code"
},
{
"name": "L2ERC1155Gateway",
"isVerified": true,
"address": "scr:0x62597Cc19703aF10B58feF87B0d5D29eFE263bcc",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0xAc92E88bAc1848A5FeEA5cf5A60e0abc3bD5Df94"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917920,
"transactionHash": "0x81ea4d0324828c7bd1a25754601e471f5707cf09af3f267fabf1aa43f2c45907",
"implementations": [
"scr:0x4a1b3D103801F0E1400046aE1948B9808e9b043b"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0xAc92E88bAc1848A5FeEA5cf5A60e0abc3bD5Df94"
]
}
],
"description": "Counterpart to the L1ERC1155Gateway contract.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x62597Cc19703aF10B58feF87B0d5D29eFE263bcc#code"
},
{
"name": "L2CustomERC20Gateway",
"isVerified": true,
"address": "scr:0x64CCBE37c9A82D85A1F2E74649b7A42923067988",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x1D40306EEfCF6EBd496d6048F6edf8892346e558"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917920,
"transactionHash": "0xcfb787fe58eeb8a0f1d7ebb1360968111e84cd6f64d929a3277a1fb5e232ccd3",
"implementations": [
"scr:0xc568B5dcCeBE52073Fa783EAdacDE0a30fA4c2c9"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x1D40306EEfCF6EBd496d6048F6edf8892346e558"
]
}
],
"description": "Counterpart to the L1CustomERC20Gateway contract.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x64CCBE37c9A82D85A1F2E74649b7A42923067988#code"
},
{
"name": "ScrollStandardERC20Factory",
"isVerified": true,
"address": "scr:0x66e5312EDeEAef6e80759A0F789e7914Fb401484",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "Contract used to deploy ScrollStandardERC20 tokens for L2StandardERC20Gateway.\n",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x66e5312EDeEAef6e80759A0F789e7914Fb401484#code"
},
{
"name": "L2ETHGateway",
"isVerified": true,
"address": "scr:0x6EA73e05AdC79974B931123675ea8F78FfdacDF0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x191770c52309dff2c52FfEcf059ECC3862f5D721"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917917,
"transactionHash": "0xf1505df71efbf7c12e1f48f4d17675e39d9797b1cac73ccbc6b610481313e750",
"implementations": [
"scr:0xE0a0509a66C509f55c85A20EB8c60676135081f7"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x191770c52309dff2c52FfEcf059ECC3862f5D721"
]
}
],
"description": "Contract of the L2ScrollMessenger contract.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x6EA73e05AdC79974B931123675ea8F78FfdacDF0#code"
},
{
"name": "L2WETHGateway",
"isVerified": true,
"address": "scr:0x7003E7B7186f0E6601203b99F7B8DECBfA391cf9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x86c5CBfC03ffFC7faf5dfC7D781A9adfA9f47dD1"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917917,
"transactionHash": "0x9021d0900bd824774d2fa08d23a47d61a94d83563cfc81ca834b54bd690e0539",
"implementations": [
"scr:0x4966c037D653E31dB2c1F9727dd50dC679d51d65"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x86c5CBfC03ffFC7faf5dfC7D781A9adfA9f47dD1"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x7003E7B7186f0E6601203b99F7B8DECBfA391cf9#code"
},
{
"name": "L2ScrollMessenger",
"isVerified": true,
"address": "scr:0x781e90f1c8Fc4611c9b7497C3B47F99Ef6969CbC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x6fa66EeD8e8086f4c77204B5484D26F4e9AB7772"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917917,
"transactionHash": "0xced82475ea905f72d0cb7ed5731aa1c801d62249a92fbad6724dd3f223b83e96",
"implementations": [
"scr:0x485149079c421f9e4c465276BbaBB2fE0748d138"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x6fa66EeD8e8086f4c77204B5484D26F4e9AB7772"
]
}
],
"description": "ETH is pre-minted to this contract in the genesis block and released on Scroll whenever corresponding deposits are made on Ethereum.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x781e90f1c8Fc4611c9b7497C3B47F99Ef6969CbC#code"
},
{
"name": "TimelockSCSlow",
"isVerified": true,
"address": "scr:0x79D83D1518e2eAA64cdc0631df01b06e2762CC14",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "* Roles:\n * **timelockAdmin**: Scroll Security Council, TimelockSCSlow",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x79D83D1518e2eAA64cdc0631df01b06e2762CC14#code"
},
{
"name": "L2ERC721Gateway",
"isVerified": true,
"address": "scr:0x7bC08E1c04fb41d75F1410363F0c5746Eae80582",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x0894150DB82B912105F6D0907B5c69E72F1Df279"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917920,
"transactionHash": "0x56af44f6a76a5788776564b7d36720e0e9f5cd4695653d0f83871259c1480325",
"implementations": [
"scr:0x71d7F43617CEaE99A43B7727151267A9919288F6"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x0894150DB82B912105F6D0907B5c69E72F1Df279"
]
}
],
"description": "Counterpart to the L1ERC721Gateway contract.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x7bC08E1c04fb41d75F1410363F0c5746Eae80582#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "scr:0x82e58e20Da6ecF4B07649C9B2237FAf27f02bC81",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "* Roles:\n * **owner**: ScrollOwner",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x82e58e20Da6ecF4B07649C9B2237FAf27f02bC81#code"
},
{
"name": "L2LidoGateway",
"isVerified": true,
"address": "scr:0x8aE8f22226B9d789A36AC81474e633f8bE2856c9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0x8e34D07Eb348716a1f0a48A507A9de8a3A6DcE45"
],
"implementations": [
"scr:0x2B9beB2890DBeFC7cA25Af3164100d139B623C24"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696920429,
"transactionHash": "0x516429c9961880b285703de647f4f884068a31be7341f8ed54b799d0a1fb3e7b",
"implementations": [
"scr:0xc568B5dcCeBE52073Fa783EAdacDE0a30fA4c2c9"
]
},
{
"timestamp": 1709625145,
"transactionHash": "0x64c28a89bdfa47a14998cdaaa4d85113e72c451e817a294930f93bdee4a3d598",
"implementations": [
"scr:0x2B9beB2890DBeFC7cA25Af3164100d139B623C24"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0x8aE8f22226B9d789A36AC81474e633f8bE2856c9#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "* Roles:\n * **owner**: ScrollOwner",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026#code"
},
{
"name": "L2PauseController",
"isVerified": true,
"address": "scr:0xAf9a61Aa21aB4a2fdbc88e81363D2e3D359749dd",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x105B9baaF75dA556c0206159481243163fAea1c9"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1753067278,
"transactionHash": "0x00b655406a3deb852f16f951030e57119d4b49d018f61718f4784f7fdc325880",
"implementations": [
"scr:0x105B9baaF75dA556c0206159481243163fAea1c9"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0xAf9a61Aa21aB4a2fdbc88e81363D2e3D359749dd#code"
},
{
"name": "MasterMinter",
"isVerified": true,
"address": "scr:0xb5cE5F2277CFc547F48aA8263838FAEd424ae4BE",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": " Contract that uses controllers to manage minters for USDC on Scroll.\n",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0xb5cE5F2277CFc547F48aA8263838FAEd424ae4BE#code"
},
{
"name": "ScrollStandardERC20",
"isVerified": true,
"address": "scr:0xC7d86908ccf644Db7C69437D5852CedBC1aD3f69",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "Contract of the ERC20 standard token used by the ERC20 factory.\n",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0xC7d86908ccf644Db7C69437D5852CedBC1aD3f69#code"
},
{
"name": "SCRToken",
"isVerified": true,
"address": "scr:0xd29687c813D741E2F938F4aC377128810E217b1b",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xde4972789EA56c4e7ac7Ba655EaFe73a30155F1e"
],
"implementations": [
"scr:0x7600174E2a730a05da046fFA8Fc32DEC27FfdDC8"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1725336741,
"transactionHash": "0xeef949ed328baf69a9b8cb4e33f652f4f5047ef736aa53324acf6a00c8b64b31",
"implementations": [
"scr:0x7600174E2a730a05da046fFA8Fc32DEC27FfdDC8"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0xd29687c813D741E2F938F4aC377128810E217b1b#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "scr:0xde4972789EA56c4e7ac7Ba655EaFe73a30155F1e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "* Roles:\n * **owner**: ScrollOwner",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/scr:0xde4972789EA56c4e7ac7Ba655EaFe73a30155F1e#code"
}
]
},
"escrows": [
{
"address": "0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9",
"sinceTimestamp": 1696782323,
"tokens": "*",
"excludedTokens": [
"rsETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xfF8238be22cC583b3d69A76da9d84Da7788c0ee9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x85d366c40632340d9e835fdd0a1646909a56d60c680373f15f9d36878ff13029",
"implementations": [
"eth:0x9218732389D80f9b8723C3f32a38865B7a63564A"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x4015Fc868C06689ABEba4a9dC8FA43B804F6239c"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0xfF8238be22cC583b3d69A76da9d84Da7788c0ee9"
]
}
],
"upgradableBy": [
{
"name": "Scroll Security Council",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367",
"sinceTimestamp": 1696782323,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x79b6eAbfFAa958FDF2Aa2Bf632878bD323DCbF69"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xcad9f31340db6aca3a5da0d704ee33a9b6c43a5b1be4406cc0ed33edbdd7c92e",
"implementations": [
"eth:0xAf2F898a8680cb52766ABE0588ebe6b9bFe37845"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x72981fD00087fF4F60aBFdE9f353cB1912A37fb6"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0xc6326109E33465d6d61e4Cb7AFCe7B1bE7cfF868"
]
},
{
"timestamp": 1745564819,
"transactionHash": "0x783703d4e94de48edb75261149a540cbf7abb7ef077865c11080e622a508ab86",
"implementations": [
"eth:0x84791281EF5cb8Af5dCd4c122f7A42FeD38Fef5b"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x79b6eAbfFAa958FDF2Aa2Bf632878bD323DCbF69"
]
}
],
"upgradableBy": [
{
"name": "Scroll Security Council",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xb2b10a289A229415a124EFDeF310C10cb004B6ff",
"sinceTimestamp": 1696782323,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0xb2b10a289A229415a124EFDeF310C10cb004B6ff",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x40c3C3dEa3B7D6d117E6713377144fD8EE6D6c97"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x12f874f5ca5a8dbdc5162db5179a4e4b753f4fcff8dab3f416bd1ce707ecb9ff",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x7F512E2E9dfC4552941D99A5b2405BBcF5781C2c"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x40c3C3dEa3B7D6d117E6713377144fD8EE6D6c97"
]
}
],
"upgradableBy": [
{
"name": "Scroll Security Council",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xb2b10a289A229415a124EFDeF310C10cb004B6ff#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B",
"sinceTimestamp": 1696919351,
"tokens": [
"USDC"
],
"contract": {
"isVerified": true,
"address": "eth:0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x56ce8A8E8399f6cD5e7e4f549E8BfD673f2AfF5e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696919351,
"transactionHash": "0x394b36151c614a7dfd048ddc1085046d2a50e5fd54af4c335d4a08aa79dd773d",
"implementations": [
"eth:0x6667123b5017AAB9945F73345848B82D7A953AA8"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x56ce8A8E8399f6cD5e7e4f549E8BfD673f2AfF5e"
]
}
],
"upgradableBy": [
{
"name": "Scroll Security Council",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x67260A8B73C5B77B55c1805218A42A7A6F98F515",
"sinceTimestamp": 1696920095,
"tokens": [
"DAI"
],
"contract": {
"isVerified": true,
"address": "eth:0x67260A8B73C5B77B55c1805218A42A7A6F98F515",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696920095,
"transactionHash": "0x9776779beb429ea826a81a8c1c5f782933bfc8ce568afa1c6f2c2b866be2a3a5",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
}
],
"upgradableBy": [
{
"name": "Scroll Security Council",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x67260A8B73C5B77B55c1805218A42A7A6F98F515#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x6625C6332c9F91F2D27c304E729B86db87A3f504",
"sinceTimestamp": 1696920503,
"tokens": [
"wstETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x6625C6332c9F91F2D27c304E729B86db87A3f504",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCC2C53556Bc75217cf698721b29071d6f12628A9"
],
"implementations": [
"eth:0xF4f2066EE72D62e3caF9678459149BA7FCf2262F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696920503,
"transactionHash": "0xec5c25ea4b3e6d1dc9fa4cb7b7dd37a7a245a171cd3d16fb312628b5ecc9e841",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
{
"timestamp": 1709624939,
"transactionHash": "0xd755174ba6bacec85b68b77c9ec2a8b966955746be59a6efa932f47c37dda482",
"implementations": [
"eth:0xF4f2066EE72D62e3caF9678459149BA7FCf2262F"
]
}
],
"description": "Custom token escrow with third-party governance, using the canonical bridge only for messaging.",
"url": "https://etherscan.io/address/0x6625C6332c9F91F2D27c304E729B86db87A3f504#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Custom escrow"
}
]
},
"chainId": 1
},
{
"address": "0xA033Ff09f2da45f0e9ae495f525363722Df42b2a",
"sinceTimestamp": 1713173507,
"tokens": [
"pufETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xA033Ff09f2da45f0e9ae495f525363722Df42b2a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9eBf2f33526CD571f8b2ad312492cb650870CFd6"
],
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713173507,
"transactionHash": "0xa2ff9275d6280e3cc298653463c5d8423c44cfbc66a52a9a138becbb106dc0f8",
"implementations": [
"eth:0xc4d46E8402F476F269c379677C99F18E22Ea030e"
]
},
{
"timestamp": 1713173507,
"transactionHash": "0xe03abd155a10591ed1fa4a1e2ad0d6042549bfd67769dbf6bd66d25743950905",
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
},
{
"timestamp": 1713173507,
"transactionHash": "0xb367f770c26a72ea837a51c2c1fc84a3396914db1d58c020177b207e0f876a79",
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
}
],
"description": "Custom token escrow with third-party governance, using the canonical bridge only for messaging.",
"url": "https://etherscan.io/address/0xA033Ff09f2da45f0e9ae495f525363722Df42b2a#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Custom escrow"
}
]
},
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkProgramHashes": [
{
"title": "Scroll program",
"description": "Proves the correct STF of Scroll L2 before the Euclid upgrade (V2).",
"proverSystemProject": "openvmprover",
"verificationStatus": "notVerified",
"hash": "0x30513ba1873ce1b9598c4faf101dccd32498e93c39e1f31a423390cbb1f81f7a"
},
{
"title": "Scroll program",
"description": "Proves the correct STF of Scroll L2 before the Euclid upgrade (V2).",
"proverSystemProject": "openvmprover",
"verificationStatus": "notVerified",
"hash": "0x0a1904dbfff4614fb090b4b3864af4874f12680c32f07889e9ede8665097e5ec"
},
{
"title": "Executable of the Scroll bundle program",
"description": "Proves the correct execution of a bundle of Scroll L2 blocks, which is the unit of L2 state finalisation from L1’s perspective.",
"proverSystemProject": "openvmprover",
"verificationStatus": "notVerified",
"hash": "0x001e7bcb266824cb08ad303990e90a9c4b901eaaa52e562e513df47d4c168949"
},
{
"title": "Config of the Scroll bundle program",
"description": "This is not a ZK program, but a commitment to the config of Scroll bundle program (bundle leaf commitment). It also needs to be checked to verify the expected ZK verification.",
"programUrl": "https://github.com/scroll-tech/zkvm-prover/tree/v0.2.0/crates/circuits/bundle-circuit",
"proverSystemProject": "openvmprover",
"verificationStatus": "notVerified",
"hash": "0x0038553adf417a6a3df35d2fdfd14b892f1e49ba18937ece7960c1e7cee6e3dc"
},
{
"title": "Executable of the Scroll bundle program",
"description": "Proves the correct execution of a bundle of Scroll L2 blocks, which is the unit of L2 state finalisation from L1’s perspective.",
"programUrl": "https://github.com/scroll-tech/zkvm-prover/tree/0.5.2/crates/circuits/bundle-circuit",
"proverSystemProject": "openvmprover",
"verificationStatus": "successful",
"verificationSteps": "\nSteps due to the guide here: [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174).\n\n1. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/) and make sure it is running `docker ps`.\n2. Checkout the correct branch in [zkvm-prover](https://github.com/scroll-tech/zkvm-prover/tree/master) repo: `git checkout 0.5.2` Commit hash should be `8f29f60cc73495e8586338a67433a812097427c4`.\n3. Build the guest programs from the root repo dir: `make build-guest`. It will regenerate `bundle_exe_commit.rs`. \n4. Run `compress_commitment` function from [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174) on the `COMMIT` array from the previous step to generate `digest_2` value. A sample rust implementation is: \n ```\nuse openvm_stark_sdk::p3_baby_bear::BabyBear;\nuse openvm_stark_sdk::p3_bn254_fr::Bn254Fr;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::FieldAlgebra;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::PrimeField32;\n\nfn compress_commitment(commitment: &[u32; 8]) -> Bn254Fr {\n let order = Bn254Fr::from_canonical_u64(BabyBear::ORDER_U32 as u64);\n\n let mut base = Bn254Fr::ONE; // from PrimeCharacteristicRing\n let mut compressed = Bn254Fr::ZERO; // from PrimeCharacteristicRing\n\n for val in commitment {\n compressed += Bn254Fr::from_canonical_u64(*val as u64) * base;\n base *= order;\n }\n\n compressed\n} \n```\n ",
"hash": "0x003ac2e012d8a7fb1495d94839fe36559b52fd6d60a532884c7558de2b88bf72"
},
{
"title": "Config of the Scroll bundle program",
"description": "This is not a ZK program, but a commitment to the config of Scroll bundle program (bundle leaf commitment). It also needs to be checked to verify the expected ZK verification.",
"programUrl": "https://github.com/scroll-tech/zkvm-prover/tree/0.5.2/crates/circuits/bundle-circuit",
"proverSystemProject": "openvmprover",
"verificationStatus": "successful",
"verificationSteps": "\nSteps due to the guide here: [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174).\n\n1. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/) and make sure it is running `docker ps`.\n2. Checkout the correct branch in [zkvm-prover](https://github.com/scroll-tech/zkvm-prover/tree/master) repo: `git checkout 0.5.2` Commit hash should be `8f29f60cc73495e8586338a67433a812097427c4`.\n3. Build the guest programs from the root repo dir: `make build-guest`. It will regenerate `circuits/bundle-circuit/bundle_leaf_commit.rs`. \n4. Run `compress_commitment` function from [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174) on the `COMMIT` array from the previous step to generate `digest_2` value. A sample rust implementation is: \n ```\nuse openvm_stark_sdk::p3_baby_bear::BabyBear;\nuse openvm_stark_sdk::p3_bn254_fr::Bn254Fr;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::FieldAlgebra;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::PrimeField32;\n\nfn compress_commitment(commitment: &[u32; 8]) -> Bn254Fr {\n let order = Bn254Fr::from_canonical_u64(BabyBear::ORDER_U32 as u64);\n\n let mut base = Bn254Fr::ONE; // from PrimeCharacteristicRing\n let mut compressed = Bn254Fr::ZERO; // from PrimeCharacteristicRing\n\n for val in commitment {\n compressed += Bn254Fr::from_canonical_u64(*val as u64) * base;\n base *= order;\n }\n\n compressed\n} \n```\n ",
"hash": "0x009305f0762291e3cdd805ff6d6e81f1d135dbfdeb3ecf30ad82c3855dde7909"
},
{
"title": "Executable of the Scroll bundle program",
"description": "Proves the correct execution of a bundle of Scroll L2 blocks, which is the unit of L2 state finalisation from L1's perspective.",
"programUrl": "https://github.com/scroll-tech/zkvm-prover/tree/v0.7.1/crates/circuits/bundle-circuit",
"proverSystemProject": "openvmprover",
"verificationStatus": "successful",
"verificationSteps": "\nSteps due to the guide here: [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174).\n\nAlthough the guide below uses docker for reproducable builds, we failed to obtain the correct program hash on a MacOS machine. \nThe steps below work only for a Linux OS (e.g. Ubuntu).\n\n1. On a Linux machine, install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/) and make sure it is running `docker ps`.\n2. Checkout the correct branch in [zkvm-prover](https://github.com/scroll-tech/zkvm-prover/tree/master) repo: `git checkout 0.7.1` Commit hash should be `85dc6bc56728b8eef22281fdb215c136d7b5bbda`.\n3. Build the guest programs from the root repo dir: `make build-guest`. It will regenerate `circuits/bundle-circuit/bundle_leaf_commit.rs`. \n4. Run `compress_commitment` function from [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174) on the `COMMIT` array from the previous step to generate `digest_2` value. A sample rust implementation is: \n ```\nuse openvm_stark_sdk::p3_baby_bear::BabyBear;\nuse openvm_stark_sdk::p3_bn254_fr::Bn254Fr;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::FieldAlgebra;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::PrimeField32;\n\nfn compress_commitment(commitment: &[u32; 8]) -> Bn254Fr {\n let order = Bn254Fr::from_canonical_u64(BabyBear::ORDER_U32 as u64);\n\n let mut base = Bn254Fr::ONE; // from PrimeCharacteristicRing\n let mut compressed = Bn254Fr::ZERO; // from PrimeCharacteristicRing\n\n for val in commitment {\n compressed += Bn254Fr::from_canonical_u64(*val as u64) * base;\n base *= order;\n }\n\n compressed\n} \n```\n ",
"hash": "0x0062333dc88631be7af046cc8d3c24f346de172aa2030a28b445ab500889d297"
}
]
}
+9 -5
+9 -5
{
"creator": "Succinct",
"projectsForTvs": [
{
"projectId": "forknet",
"sinceTimestamp": 1753882500
},
{
"projectId": "katana",
"sinceTimestamp": 1751328000
},
{
"projectId": "blobstream",
"sinceTimestamp": 1717608107
},
{
"projectId": "vector",
"sinceTimestamp": 1720128227
},
{
"projectId": "sophon",
"sinceTimestamp": 1745341091
},
{
"projectId": "lens",
"sinceTimestamp": 1745359200
},
{
"projectId": "plumenetwork",
"sinceTimestamp": 1746735060
},
{
"projectId": "galxegravity",
"sinceTimestamp": 1745880540
},
{
"projectId": "rari",
"sinceTimestamp": 1734562800
},
{
"projectId": "winr",
"sinceTimestamp": 1747088280
},
{
"projectId": "molten",
"sinceTimestamp": 1731480840
},
{
"projectId": "taiko",
"sinceTimestamp": 1730452800
},
{
"projectId": "lumia",
"sinceTimestamp": 1753882500
},
{
"projectId": "polygonzkevm",
"sinceTimestamp": 1753882500
},
{
"projectId": "xlayer",
"sinceTimestamp": 1753882500
},
{
"projectId": "silicon",
"sinceTimestamp": 1753882500
},
{
"projectId": "facet",
"sinceTimestamp": 1751407200
},
{
"projectId": "ternoa",
"sinceTimestamp": 1753882500
},
{
"projectId": "wirex",
"sinceTimestamp": 1753882500
},
{
"projectId": "penchain",
"sinceTimestamp": 1753882500
},
{
"projectId": "phala",
"sinceTimestamp": 1736290800
},
{
"projectId": "mantle",
"sinceTimestamp": 1757973600
},
{
"projectId": "zircuit",
"sinceTimestamp": 1756072800
},
{
"projectId": "omni",
"sinceTimestamp": 1748856160
},
{
"projectId": "morph",
"sinceTimestamp": 1737359447
},
{
"projectId": "gpt",
"sinceTimestamp": 1753882500
},
{
"projectId": "astarzkevm",
"sinceTimestamp": 1753882500
},
{
"projectId": "witness",
"sinceTimestamp": 1753882500
},
{
"projectId": "kroma",
"sinceTimestamp": 1739228400
},
{
"projectId": "haust",
"sinceTimestamp": 1756808195
},
{
"projectId": "celo",
"sinceTimestamp": 1765324800
}
],
"proofSystemInfo": "\n ## Description\n\n SP1 is a RISC-V zkVM using the [Plonky3](https://github.com/Plonky3/Plonky3) stack. The zkVM execution is proven recursively and is wrapped into a SNARK for final verification. It provides tools to generate onchain Groth16 or Plonk verifiers. SP1 targets [100 bits of security](https://docs.succinct.xyz/docs/sp1/security/security-model#conjectures-for-fris-security).\n\n ## Proof system\n\n SP1 proves execution of a RISC-V VM using several ZK circuits connected by lookup arguments, as implemented in Plonky3. VM execution trace is split into several chunks that could be proven in parallel with a STARK proving system. The parallelized proofs are recursively checked by the next layer of STARK circuits. The correctness of the final STARK proof is verified with the final wrap SNARK program, the wrap SNARK proof is verified onchain.\n\n ### zkVM component\n\n Verifies execution of a RISC-V program in a zkVM. Uses [Plonky3](https://github.com/Plonky3/Plonky3) STARK toolkit with AIR arithmetization and FRI-based polynomial commitment scheme within the [BabyBear field](https://docs.succinct.xyz/docs/sp1/security/security-model#hash-functions-and-the-random-oracle-model).\n\n ### Recursion circuits\n\n SP1 provides tools for recursive proof generation by [verifying proofs in a zkVM](https://docs.succinct.xyz/docs/sp1/writing-programs/proof-aggregation#verifying-proofs-inside-the-zkvm). This uses the same toolkit as top-level proof system, but proves the correct verification of all proofs generated on the previous step.\n\n ### Final wrap\n\n SP1 supports Plonk (with KZG polynomial commitments) or Groth16 final SNARK wrap of the STARK proof for performant onchain proof verification ([link](https://docs.succinct.xyz/docs/sp1/generating-proofs/proof-types#compressed)). The [gnark](https://github.com/Consensys/gnark) implementation of these proof systems over BN254 curve is used. For Plonk, Aztec Ignition trusted setup ceremony is used, for Groth16 Succinct run internal circuit-dependent phase 2 trusted setup, see [below](#trusted-setups) for more details.\n ",
"techStack": {
"zkVM": [
{
"id": "Plonky3",
"type": "STARK",
"name": "Plonky3",
"description": "Toolkit that implements a set of primitives for STARK-based zkVMs developed by Polygon Zero team."
},
{
"id": "RISCV",
"type": "ISA",
"name": "RISC-V",
"description": "Free and open-source universal 32-bit ISA used across a variety of hardware and software."
},
{
"id": "BabyBear",
"type": "Field",
"name": "Baby Bear",
"description": "Prime field of order p = 15 * 2**27 + 1."
}
],
"finalWrap": [
{
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
{
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
{
"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": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"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": " \n 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. \n It 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).\n "
},
{
"proofSystem": {
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
"id": "SP1Groth16",
"name": "SP1 Groth16 circuit-specific setup",
"risk": "red",
"shortDescription": "Succinct's internally run trusted setup for SP1 Groth16 final wrap circuits. Ceremony was run among 7 contributors to the SP1 project without public calls to participate.",
"longDescription": "\n Ceremony was run among 7 contributors to the SP1 project without public calls to participate. It generated setup parameters for Groth16 wrapper of SP1 zkVM.\n\n - Ceremony info on Succinct docs page: [https://docs.succinct.xyz/docs/sp1/security/security-model#options](https://docs.succinct.xyz/docs/sp1/security/security-model#options).\n - Ceremony instructions and verification instructions: [https://github.com/succinctlabs/semaphore-gnark-11/tree/main](https://github.com/succinctlabs/semaphore-gnark-11/tree/main).\n - Link to transcript and other artifacts (Note: will immediately start downloading .tar.gz file): [https://sp1-circuits.s3.us-east-2.amazonaws.com/v4.0.0-rc.3-trusted-setup.tar.gz](https://sp1-circuits.s3.us-east-2.amazonaws.com/v4.0.0-rc.3-trusted-setup.tar.gz).\n "
}
],
"verifierHashes": [
{
"hash": "0xd4e8ecd2357dd882209800acd6abb443d231cf287d77ba62b732ce937c8b56e7",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"chain": "ethereum"
},
{
"address": "0xFF5Adab685362DC4C33536a65aF5873738D1216B",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified"
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "\nThe regeneration process consumed around 50 GiB of memory on the peak. Also, due to some os indeterminism, \nthe sp1 repo must be cloned into `/home/aurel/dev/sp1-wip/` directory, so we recommend creating `aurel` user on an Ubuntu 24.04 machine.\n\n1. Create a new `aurel` user on a linux os and login as this user.\n2. Install necessary dependencies: rust, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsp1up\n```\n\n3. Clone sp1 repo in the correct directory, set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\nmkdir -p dev/sp1-wip/\ncd dev/sp1-wip/\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v5.0.0 # commit should be 38f0f143dece864e8bffafad64196a924f190336\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n \nThe script will generate Plonk verifier smart contract with verification keys and the verifier hash in `build/plonk` dir.\n "
},
{
"hash": "0xa4594c59bbc142f3b81c3ecb7f50a7c34bc9af7c4c444b5d48b795427e285913",
"proofSystem": {
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
"knownDeployments": [
{
"address": "0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5",
"chain": "ethereum"
},
{
"address": "0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5",
"chain": "arbitrum"
},
{
"address": "0xa5E60dbBAc6A65B654E5A14A5E357da3Fcf139dd",
"chain": "gnosis"
}
],
"verificationStatus": "notVerified"
},
{
"hash": "0xffea2d2e12ed24da258af874d77eee7ee91a1e050ee197052908089e57681e67",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "0x045d4BC73Bd1918192f34e98532A5272Ef620423",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified"
}
]
}
+4 -2
+4 -2
{
"addresses": {
"ethereum": [
{
"name": "Starknet",
"isVerified": true,
"address": "eth:0xc662c410C0ECf747543f5bA90660f6ABeBD9C8c4",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361",
"eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c"
],
"implementations": [
"eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1636979180,
"transactionHash": "0xccde4b2c417c0361ca34b8896ff8ee8a471aeab423613db8175463d903d4c2fe",
"implementations": [
"eth:0xD8Cd77206fCb239BdDaaDDdA8C87CBFe7d67Ca2b"
]
},
{
"timestamp": 1643193921,
"transactionHash": "0xf928abd9eb81afac14d1e8f76a52de80f9c38cbe0e72d2f1ec922caf7bf1cad0",
"implementations": [
"eth:0x944960b90381d76368aecE61F269bD99FFfd627e"
]
},
{
"timestamp": 1647853574,
"transactionHash": "0x4e551f471810ea806502b1e24f9ef6793f0a0b68f24c3cdec44df444921d7689",
"implementations": [
"eth:0xDC109C4a1A3084Ed15A97692FBEF3e1FB32A6955"
]
},
{
"timestamp": 1655284858,
"transactionHash": "0x65e31a14e45c3f909c1f90e67b3bb9a54e256d28cb8a27432f73268a19ebab84",
"implementations": [
"eth:0x2B3B750f1f10c85c8A6D476Fc209A8DC7E4Ca3F8"
]
},
{
"timestamp": 1662879548,
"transactionHash": "0x6f7ff0be4f155165290702052683f0a87b5e660812949c6e10eac6602c6aa5e7",
"implementations": [
"eth:0xE267213B0749Bb94c575F6170812c887330d9cE3"
]
},
{
"timestamp": 1680085307,
"transactionHash": "0x861257880dfe325f603d4371a10888daa8fb0a16c205bb43647e8c5547298e36",
"implementations": [
"eth:0x739A654271c565839F0408546706bBea2F1FfE42"
]
},
{
"timestamp": 1684906283,
"transactionHash": "0x640cb38b6ffa91068da7cc15730268402661ec3f62f084b2a58522f600d89277",
"implementations": [
"eth:0x16938E4b59297060484Fa56a12594d8D6F4177e8"
]
},
{
"timestamp": 1710252923,
"transactionHash": "0xb9cd560bbc6f0478eeb5bed042a06d988ef6ebfd1cc9bfb509b4d8202b517ecc",
"implementations": [
"eth:0x6E0aCfDC3cf17A7f99ed34Be56C3DFb93F464e24"
]
},
{
"timestamp": 1724855579,
"transactionHash": "0x4186d705e39a8e7cb19069c9426e4b211fad28f97cb7f641e4bd240971318e8d",
"implementations": [
"eth:0x47103A9b801eB6a63555897d399e4b7c1c8Eb5bC"
]
},
{
"timestamp": 1742836319,
"transactionHash": "0x7e6e541652c8ed05afba0c7fd372d6a340d438d85a545666ee7ecd1a4046eb5b",
"implementations": [
"eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04"
]
}
],
"description": "Central rollup contract. Receives (verified) state roots from the Sequencer, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n* Roles:\n * **admin**: DelayedExecutor, Starkware Security Council; ultimately Starkware Multisig 1\n * **operators**: EOA 3, Starkware SCMinority Multisig",
"upgradableBy": [
{
"name": "Starkware Security Council",
"delay": "no"
},
{
"name": "Starkware Multisig 1",
"delay": "8d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xc662c410C0ECf747543f5bA90660f6ABeBD9C8c4#code"
},
{
"name": "SHARPVerifierCallProxy",
"isVerified": true,
"address": "eth:0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
],
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1635080785,
"transactionHash": "0x80ebb7a22a207d00e26464db2f8a719d43eb3b836740a693aad13d5ef922f5e4",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1651510161,
"transactionHash": "0x604e235c6207b7909f6fc8dc0bd86b410e935dcf2f6f6bd37a5567a89379353a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1659869409,
"transactionHash": "0xc31b74237a0c68aa1b95fe2ed28ad54cf6d7df42a8beab1ea947532c95dda20a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1678106063,
"transactionHash": "0xbaa8ffb1b7e5177dbf75de753b9b2ff2fc313b244ff910cfd6d7f1f6254b6e1a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1708939523,
"transactionHash": "0x31e3caf3940dde662a1e98580259f79963dc5e098793b6519311e201d4e19312",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1708939523,
"transactionHash": "0x31e3caf3940dde662a1e98580259f79963dc5e098793b6519311e201d4e19312",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1722161267,
"transactionHash": "0x7c71592ea4c455371365d843f1a21bbf647aad7d6fae12f7187650ce24805f00",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1722197315,
"transactionHash": "0x4b25445a8e86b4620b9a19f747122b518d8973975ea73aa474b210395e277b66",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1747066175,
"transactionHash": "0x0764cd09cc5c9a96b151dd222bf14b9c33111c80bdddf27721a6406f4c0e1f3f",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1760862467,
"transactionHash": "0x7b4a25af246b28b6d5bed86942696273a84e57abc629b83072be370df2bdb797",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1765192091,
"transactionHash": "0xed93cf713d33ac63297d8c7e2eafc0d9f277b718b4074600536eb9a4205bcb81",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
}
],
"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/eth:0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60#code"
},
{
"name": "SHARPVerifier",
"isVerified": true,
"address": "eth:0xFE5e5b24FfE981C9faA0d4F36Ce346c3B22B0066",
"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/eth:0xFE5e5b24FfE981C9faA0d4F36Ce346c3B22B0066#code"
},
{
"name": "DelayedExecutor",
"isVerified": true,
"address": "eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A simple Timelock contract with an immutable delay of 8d. The owner (Starkware Multisig 1) can queue transactions.\n* Roles:\n * **owner**: Starkware Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c#code"
},
{
"name": "ETHBridge",
"isVerified": true,
"address": "eth:0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361"
],
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1647857960,
"transactionHash": "0x4c7952f4056367ec557d94b41d0784b7eb247d1f9de7378bdff7a5218c85314d",
"implementations": [
"eth:0x0205172F25e791975edB4dEF203f3789B01f43bb"
]
},
{
"timestamp": 1649596101,
"transactionHash": "0x9b76ede78b75c332ea2ae855b62a2363c197ee521522ab1a14aa5517f2610dd5",
"implementations": [
"eth:0x5e70F3301bbBBB1DFA2c8d20D75b162aFa6Dbe37"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0xa31315fda290a9ee1abf459ba81a8c5986c5c9da58cda4c20a144ab16e3a9ba1",
"implementations": [
"eth:0x5e70F3301bbBBB1DFA2c8d20D75b162aFa6Dbe37"
]
},
{
"timestamp": 1680016103,
"transactionHash": "0x826f7e63249e192040d6b9301a68a0c7fc1130d06339ab0c758ff14799f9adfb",
"implementations": [
"eth:0x455603AD9ae671F6c1f0f746F24d7904cA603581"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x455603AD9ae671F6c1f0f746F24d7904cA603581"
]
},
{
"timestamp": 1707738959,
"transactionHash": "0x1f56cc90fd40bcc00a27f94c989e93cb414a884e2fe971323426f40d58c71306",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
},
{
"timestamp": 1746967799,
"transactionHash": "0xf0fc6787173f9e4ee964487191601bf84e443f30192c896849df7fd12dfa1a95",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
}
],
"description": "Standard Starkware canonical bridge escrow for ETH. Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: DelayedExecutor, Starkware Security Council; ultimately Starkware Multisig 1\n * **govAdmin**: Starkware Security Council\n * **secAdmin**: Starkware SCMinority Multisig\n * **secAgent**: Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Security Council",
"delay": "no"
},
{
"name": "Starkware Multisig 1",
"delay": "8d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419#code"
},
{
"name": "LORDSBridge",
"isVerified": true,
"address": "eth:0x023A2aAc5d0fa69E3243994672822BA43E34E5C9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Custom (and immutable) entry point contract and escrow for users depositing LORDS to via StarkGate to the L2.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x023A2aAc5d0fa69E3243994672822BA43E34E5C9#code"
},
{
"name": "StarkgateRegistry",
"isVerified": true,
"address": "eth:0x1268cc171c54F2000402DfF20E93E60DF4c96812",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x39C3b4e670ACa8BC668e5A79680973e57a4C8CEC"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1707325511,
"transactionHash": "0x54e1021653aaca692f4ead2a85e5bd32648919d01953e88693a833d45c583fab",
"implementations": [
"eth:0x642F04899B6cA155c2a5eAdD4e4ed634f1B07Dd7"
]
},
{
"timestamp": 1740918611,
"transactionHash": "0x86ccb24833adb42f79ff55fcce4e69508e467df41c653a1b2578b5f2788f3c0c",
"implementations": [
"eth:0x39C3b4e670ACa8BC668e5A79680973e57a4C8CEC"
]
}
],
"description": "A simple registry that maps tokens to their StarkGate escrows. It also keeps a list of tokens that are blocked from being added to StarkGate.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x1268cc171c54F2000402DfF20E93E60DF4c96812#code"
},
{
"name": "WBTCBridge",
"isVerified": true,
"address": "eth:0x283751A21eafBFcD52297820D27C1f1963D9b5b4",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657138806,
"transactionHash": "0xeedccfe88453ea74a342ca57926a88b6033057eb15b43291332f0fa19c197eee",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630577,
"transactionHash": "0xc450cc918a45c46057f13a072c41a646e78f52af5e36f82b7061b478e44b7fb3",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x5bc722c79d5a4303b76638f6fc75d26c5dbfba39202c2a7ced89b96d3ead97e7",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016007,
"transactionHash": "0xb638d945b6a6feba94d6219f1618a6e279720e105d4476db19063abd4164117f",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707731699,
"transactionHash": "0x426174e7e63465569d28b3ca3e807e69859f9a2650702487260b9a45646d5f32",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2\n * **secAgent**: Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x283751A21eafBFcD52297820D27C1f1963D9b5b4#code"
},
{
"name": "FXSBridge",
"isVerified": true,
"address": "eth:0x66ba83ba3D3AD296424a2258145d9910E9E40B7C",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x8a85416efb74a9a7b95f6596bbcf947bdea2e1664c1401fee191dbc35ed63b9e",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x66ba83ba3D3AD296424a2258145d9910E9E40B7C#code"
},
{
"name": "LBTCBridge",
"isVerified": true,
"address": "eth:0x96C8AE2AC9A5cd5fC354e375dB4d0ca75fc0685e",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xF689688640E88160c07C6FC5cc63039F29EDe86b"
],
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1757941451,
"transactionHash": "0x503782544b4f41c5e38d13ba7e96e5dd4fb597abb7a595a7da2af8ddfaface58",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
}
],
"description": "Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually.\n* Roles:\n * **admin**: EOA 5\n * **govAdmin**: EOA 5\n * **secAdmin**: EOA 5",
"upgradableBy": [
{
"id": "EOA-5",
"name": "EOA 5",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x96C8AE2AC9A5cd5fC354e375dB4d0ca75fc0685e#code"
},
{
"name": "L1DaiGateway",
"isVerified": true,
"address": "eth:0x9F96fE0633eE838D0298E8b8980E6716bE81388d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Gateway contract that is the user entrypoint to deposit DAI to a custom escrow to bridge via StarkGate.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x9F96fE0633eE838D0298E8b8980E6716bE81388d#code"
},
{
"name": "SolvBTCBridge",
"isVerified": true,
"address": "eth:0xA86b9b9c58d4f786F8ea89356c9c9Dde9432Ab10",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A"
],
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750862507,
"transactionHash": "0x9529b94a823908b9a8c9097a89ef76e034740a971363e3f7913f4971eb3633e3",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
}
],
"description": "Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually.\n* Roles:\n * **admin**: EOA 4\n * **govAdmin**: EOA 4\n * **secAdmin**: EOA 4",
"upgradableBy": [
{
"id": "EOA-4",
"name": "EOA 4",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xA86b9b9c58d4f786F8ea89356c9c9Dde9432Ab10#code"
},
{
"name": "USDTBridge",
"isVerified": true,
"address": "eth:0xbb3400F107804DFB482565FF1Ec8D8aE66747605",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657139268,
"transactionHash": "0x3e25166c11d40ded7d1ae272a9e4eb416b2d35a8f4919ca0a07c55f0065de787",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630654,
"transactionHash": "0x55d370d26d45d7aee7f06e7f741d5f0d37154889faa1fa4e393370cae31a0f0f",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x33fdbe5a0d1ba784eb5e2f0f34b42d57c5c2b6b0bd3562746c7ee0447f7767aa",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016067,
"transactionHash": "0xac209ae933b3ae24348f926df5f8978093617c711baaceefa21b90c08c82a0af",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707732815,
"transactionHash": "0xe594bd2581f3da0e554ad8664aecc1441280850cc7827a9e42d172bbf54cac5d",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2\n * **secAgent**: Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xbb3400F107804DFB482565FF1Ec8D8aE66747605#code"
},
{
"name": "wstETHBridge",
"isVerified": true,
"address": "eth:0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1685453471,
"transactionHash": "0xb4de1aa42c3ade894dd66e06e6125549e8004d2d6857cf456ef5bde3f583ea7c",
"implementations": [
"eth:0xEf3525a1081a4cf6f76E0B202a575195cEE083a2"
]
},
{
"timestamp": 1707416015,
"transactionHash": "0x4eb13c68776e5aa840ab59c3c4ff369372fd461bab760eee12d1ae7ccf7baa6e",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B#code"
},
{
"name": "STRKBridge",
"isVerified": true,
"address": "eth:0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1704907283,
"transactionHash": "0x4ea20358347292f048a26277477a9f145add434e50e3f64c85f494469768c876",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1705239263,
"transactionHash": "0x42056631084f574f2ed5f49bef3d1aabab22008266ac97afea3e5f42649bd7c3",
"implementations": [
"eth:0x052C81F05595B5DeF4fdFEdbD7CA7b4A8a7B50C1"
]
},
{
"timestamp": 1705249823,
"transactionHash": "0xe8154cce45dafa5cfcb95d134f3da8a13c80c6546da07ca92c88d5c54286cdc3",
"implementations": [
"eth:0x7f2a18900A978D4390a3640e34739BB697777A71"
]
},
{
"timestamp": 1707751031,
"transactionHash": "0x7c5561efa149f2be36fac917f47b0b107218b43de1eac56ceb97d008257bd850",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
},
{
"timestamp": 1739105903,
"transactionHash": "0xccb802ed2caee6856e9141983a642a0d4881cd64a209436d3fdeb4776c841175",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
},
{
"timestamp": 1746967799,
"transactionHash": "0xf0fc6787173f9e4ee964487191601bf84e443f30192c896849df7fd12dfa1a95",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: DelayedExecutor, Starkware Security Council; ultimately Starkware Multisig 1\n * **govAdmin**: Starkware Security Council\n * **secAdmin**: Starkware SCMinority Multisig\n * **secAgent**: Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Security Council",
"delay": "no"
},
{
"name": "Starkware Multisig 1",
"delay": "8d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4#code"
},
{
"name": "rETHBridge",
"isVerified": true,
"address": "eth:0xcf58536D6Fab5E59B654228a5a4ed89b13A876C2",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1685882531,
"transactionHash": "0x90d66157a3812393338739b0ee7a84d0d310b72a8282946e5874824c60d30c51",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707431855,
"transactionHash": "0x5420188e3cc869219076d140de7359aa4b930c51263c00728bb81e3a68c1ba8c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xcf58536D6Fab5E59B654228a5a4ed89b13A876C2#code"
},
{
"name": "sfrxETHBridge",
"isVerified": true,
"address": "eth:0xd8E8531fdD446DF5298819d3Bc9189a5D8948Ee8",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x368efd40dcf16ad376c8f38adf1e68361874e2b5b2de52d7088cd7de6b38f02a",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xd8E8531fdD446DF5298819d3Bc9189a5D8948Ee8#code"
},
{
"name": "FRAXBridge",
"isVerified": true,
"address": "eth:0xDc687e1E0B85CB589b2da3C47c933De9Db3d1ebb",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x591030492947a546e11122e42c12975237d800d3d509d284b9c8aaf541dbdc79",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xDc687e1E0B85CB589b2da3C47c933De9Db3d1ebb#code"
},
{
"name": "LUSDBridge",
"isVerified": true,
"address": "eth:0xF3F62F23dF9C1D2C7C63D9ea6B90E8d24c7E3DF5",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1688046899,
"transactionHash": "0xa67fa2a98e3b92d67fe9ea402dd53955fc2d74f6af3ee0183e20afad68ac5621",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707433079,
"transactionHash": "0x1157d4bd2b7d00a0f9833ef0832822bc331d5f904c0c3f9f14fa7942678fbf58",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835007,
"transactionHash": "0x4a1c60505d4d6d22f51b164696b7eadba1955278a577c7e712b2cd0347bee330",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: EOA 4\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"id": "EOA-4",
"name": "EOA 4",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xF3F62F23dF9C1D2C7C63D9ea6B90E8d24c7E3DF5#code"
},
{
"name": "MultiBridge",
"isVerified": true,
"address": "eth:0xF5b6Ee2CAEb6769659f6C091D209DfdCaF3F69Eb",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1707325571,
"transactionHash": "0x52b4a75a83546e4e463a919cf778cb9a4882d536c4bf7b80a62098698c741fd8",
"implementations": [
"eth:0x594cCaDF93F860dc42Cf9fd7bCea47Ff4d135D7A"
]
},
{
"timestamp": 1740918611,
"transactionHash": "0x86ccb24833adb42f79ff55fcce4e69508e467df41c653a1b2578b5f2788f3c0c",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
}
],
"description": "Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **manager**: StarkgateManager\n * **secAdmin**: Starkware Multisig 2\n * **secAgent**: Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xF5b6Ee2CAEb6769659f6C091D209DfdCaF3F69Eb#code"
},
{
"name": "USDCBridge",
"isVerified": true,
"address": "eth:0xF6080D9fbEEbcd44D89aFfBFd42F098cbFf92816",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657139268,
"transactionHash": "0x7fee1d4145372b9f1a39594bc71c9074f5982c5c546135c1aba6810c5c33cd15",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630654,
"transactionHash": "0x8c5f529b4aea40150673a24be2daf67b98dfea900848e2e4bfe863b29397cb16",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x100be562b99e029f2419718dfa5e722c6d27cd99e9e5fbbd61dbda223d8872c2",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016067,
"transactionHash": "0x1c54434b6dab2c13187d16161d7da8b6286b4f71d3ff3ab580ffcc90ac387d31",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707732959,
"transactionHash": "0x147393fe2175d3bd2a267730c8066afd475199c52a1895b5524100c3b2ca2c07",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2\n * **secAgent**: Starkware Multisig 4; ultimately EOA 1, EOA 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xF6080D9fbEEbcd44D89aFfBFd42F098cbFf92816#code"
},
{
"name": "UNIBridge",
"isVerified": true,
"address": "eth:0xf76e6bF9e2df09D0f854F045A3B724074dA1236B",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1698061943,
"transactionHash": "0x9e8cd16d463bff3aaa9aca2f741819ccdba2148450f935446facdb498a424a1e",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707432767,
"transactionHash": "0x2513dff6fab1fe6b7f95d9e436c18c8dd79965a3c7217f79c69787b2f42abc4a",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835031,
"transactionHash": "0x80c2489d99e1aa4593e1749d905120a22bc688a8c62343edce82130c4566de72",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Starkware Multisig 2\n * **govAdmin**: Starkware Multisig 2\n * **secAdmin**: Starkware Multisig 2",
"upgradableBy": [
{
"name": "Starkware Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0xf76e6bF9e2df09D0f854F045A3B724074dA1236B#code"
},
{
"name": "DAIBridge",
"isVerified": true,
"address": "eth:0x0437465dfb5B79726e35F08559B0cBea55bb585C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple escrow that accepts tokens and allows to configure permissioned addresses that can access the tokens.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/eth:0x0437465dfb5B79726e35F08559B0cBea55bb585C#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/eth:0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460#code"
}
]
},
"escrows": [
{
"address": "0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419",
"sinceTimestamp": 1647857148,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361"
],
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1647857960,
"transactionHash": "0x4c7952f4056367ec557d94b41d0784b7eb247d1f9de7378bdff7a5218c85314d",
"implementations": [
"eth:0x0205172F25e791975edB4dEF203f3789B01f43bb"
]
},
{
"timestamp": 1649596101,
"transactionHash": "0x9b76ede78b75c332ea2ae855b62a2363c197ee521522ab1a14aa5517f2610dd5",
"implementations": [
"eth:0x5e70F3301bbBBB1DFA2c8d20D75b162aFa6Dbe37"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0xa31315fda290a9ee1abf459ba81a8c5986c5c9da58cda4c20a144ab16e3a9ba1",
"implementations": [
"eth:0x5e70F3301bbBBB1DFA2c8d20D75b162aFa6Dbe37"
]
},
{
"timestamp": 1680016103,
"transactionHash": "0x826f7e63249e192040d6b9301a68a0c7fc1130d06339ab0c758ff14799f9adfb",
"implementations": [
"eth:0x455603AD9ae671F6c1f0f746F24d7904cA603581"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x455603AD9ae671F6c1f0f746F24d7904cA603581"
]
},
{
"timestamp": 1707738959,
"transactionHash": "0x1f56cc90fd40bcc00a27f94c989e93cb414a884e2fe971323426f40d58c71306",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
},
{
"timestamp": 1746967799,
"transactionHash": "0xf0fc6787173f9e4ee964487191601bf84e443f30192c896849df7fd12dfa1a95",
"implementations": [
"eth:0x95ff25A59Dc9c5A41cF0709dc916041E5dC7fd95"
]
}
],
"description": "StarkGate bridge for ETH. There is no bridge cap.",
"url": "https://etherscan.io/address/0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x0437465dfb5B79726e35F08559B0cBea55bb585C",
"sinceTimestamp": 1652101033,
"tokens": [
"DAI"
],
"contract": {
"isVerified": true,
"address": "eth:0x0437465dfb5B79726e35F08559B0cBea55bb585C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "DAI Vault for custom DAI Gateway managed by MakerDAO. The current bridge cap is 5.00 M DAI.",
"url": "https://etherscan.io/address/0x0437465dfb5B79726e35F08559B0cBea55bb585C#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Custom escrow"
}
]
},
"chainId": 1
},
{
"address": "0x283751A21eafBFcD52297820D27C1f1963D9b5b4",
"sinceTimestamp": 1657137600,
"tokens": [
"WBTC"
],
"contract": {
"isVerified": true,
"address": "eth:0x283751A21eafBFcD52297820D27C1f1963D9b5b4",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657138806,
"transactionHash": "0xeedccfe88453ea74a342ca57926a88b6033057eb15b43291332f0fa19c197eee",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630577,
"transactionHash": "0xc450cc918a45c46057f13a072c41a646e78f52af5e36f82b7061b478e44b7fb3",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x5bc722c79d5a4303b76638f6fc75d26c5dbfba39202c2a7ced89b96d3ead97e7",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016007,
"transactionHash": "0xb638d945b6a6feba94d6219f1618a6e279720e105d4476db19063abd4164117f",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707731699,
"transactionHash": "0x426174e7e63465569d28b3ca3e807e69859f9a2650702487260b9a45646d5f32",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for WBTC. There is no bridge cap.",
"url": "https://etherscan.io/address/0x283751A21eafBFcD52297820D27C1f1963D9b5b4#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xF6080D9fbEEbcd44D89aFfBFd42F098cbFf92816",
"sinceTimestamp": 1657137639,
"tokens": [],
"contract": {
"isVerified": true,
"address": "eth:0xF6080D9fbEEbcd44D89aFfBFd42F098cbFf92816",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657139268,
"transactionHash": "0x7fee1d4145372b9f1a39594bc71c9074f5982c5c546135c1aba6810c5c33cd15",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630654,
"transactionHash": "0x8c5f529b4aea40150673a24be2daf67b98dfea900848e2e4bfe863b29397cb16",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x100be562b99e029f2419718dfa5e722c6d27cd99e9e5fbbd61dbda223d8872c2",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016067,
"transactionHash": "0x1c54434b6dab2c13187d16161d7da8b6286b4f71d3ff3ab580ffcc90ac387d31",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707732959,
"transactionHash": "0x147393fe2175d3bd2a267730c8066afd475199c52a1895b5524100c3b2ca2c07",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for USDC. There is no bridge cap.",
"url": "https://etherscan.io/address/0xF6080D9fbEEbcd44D89aFfBFd42F098cbFf92816#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xbb3400F107804DFB482565FF1Ec8D8aE66747605",
"sinceTimestamp": 1657137615,
"tokens": [
"USDT"
],
"contract": {
"isVerified": true,
"address": "eth:0xbb3400F107804DFB482565FF1Ec8D8aE66747605",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1657139268,
"transactionHash": "0x3e25166c11d40ded7d1ae272a9e4eb416b2d35a8f4919ca0a07c55f0065de787",
"implementations": [
"eth:0xaec1fB35875a3816a5d09D61F086FeB6c252e096"
]
},
{
"timestamp": 1657630654,
"transactionHash": "0x55d370d26d45d7aee7f06e7f741d5f0d37154889faa1fa4e393370cae31a0f0f",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1668953231,
"transactionHash": "0x33fdbe5a0d1ba784eb5e2f0f34b42d57c5c2b6b0bd3562746c7ee0447f7767aa",
"implementations": [
"eth:0x56e233d613743297CdD27fafc5c1f5c1DC2a381b"
]
},
{
"timestamp": 1680016067,
"transactionHash": "0xac209ae933b3ae24348f926df5f8978093617c711baaceefa21b90c08c82a0af",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707387203,
"transactionHash": "0x64910ea21a212ae671687842ec3c4fcd187e935ddf2d6cc90f41b6d99b592964",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707732815,
"transactionHash": "0xe594bd2581f3da0e554ad8664aecc1441280850cc7827a9e42d172bbf54cac5d",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for USDT. There is no bridge cap.",
"url": "https://etherscan.io/address/0xbb3400F107804DFB482565FF1Ec8D8aE66747605#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B",
"sinceTimestamp": 1657137623,
"tokens": [
"wstETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1685453471,
"transactionHash": "0xb4de1aa42c3ade894dd66e06e6125549e8004d2d6857cf456ef5bde3f583ea7c",
"implementations": [
"eth:0xEf3525a1081a4cf6f76E0B202a575195cEE083a2"
]
},
{
"timestamp": 1707416015,
"transactionHash": "0x4eb13c68776e5aa840ab59c3c4ff369372fd461bab760eee12d1ae7ccf7baa6e",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for wstETH. There is no bridge cap.",
"url": "https://etherscan.io/address/0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Custom escrow"
}
]
},
"chainId": 1
},
{
"address": "0xcf58536D6Fab5E59B654228a5a4ed89b13A876C2",
"sinceTimestamp": 1657137623,
"tokens": [
"rETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xcf58536D6Fab5E59B654228a5a4ed89b13A876C2",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1685882531,
"transactionHash": "0x90d66157a3812393338739b0ee7a84d0d310b72a8282946e5874824c60d30c51",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707431855,
"transactionHash": "0x5420188e3cc869219076d140de7359aa4b930c51263c00728bb81e3a68c1ba8c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for rETH. There is no bridge cap.",
"url": "https://etherscan.io/address/0xcf58536D6Fab5E59B654228a5a4ed89b13A876C2#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xf76e6bF9e2df09D0f854F045A3B724074dA1236B",
"sinceTimestamp": 1698061847,
"tokens": [
"UNI"
],
"contract": {
"isVerified": true,
"address": "eth:0xf76e6bF9e2df09D0f854F045A3B724074dA1236B",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1698061943,
"transactionHash": "0x9e8cd16d463bff3aaa9aca2f741819ccdba2148450f935446facdb498a424a1e",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707432767,
"transactionHash": "0x2513dff6fab1fe6b7f95d9e436c18c8dd79965a3c7217f79c69787b2f42abc4a",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835031,
"transactionHash": "0x80c2489d99e1aa4593e1749d905120a22bc688a8c62343edce82130c4566de72",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for UNI. There is no bridge cap.",
"url": "https://etherscan.io/address/0xf76e6bF9e2df09D0f854F045A3B724074dA1236B#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xDc687e1E0B85CB589b2da3C47c933De9Db3d1ebb",
"sinceTimestamp": 1692689255,
"tokens": [
"FRAX.legacy"
],
"contract": {
"isVerified": true,
"address": "eth:0xDc687e1E0B85CB589b2da3C47c933De9Db3d1ebb",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x591030492947a546e11122e42c12975237d800d3d509d284b9c8aaf541dbdc79",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for FRAX. There is no bridge cap.",
"url": "https://etherscan.io/address/0xDc687e1E0B85CB589b2da3C47c933De9Db3d1ebb#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x66ba83ba3D3AD296424a2258145d9910E9E40B7C",
"sinceTimestamp": 1692689267,
"tokens": [
"FRAX"
],
"contract": {
"isVerified": true,
"address": "eth:0x66ba83ba3D3AD296424a2258145d9910E9E40B7C",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x8a85416efb74a9a7b95f6596bbcf947bdea2e1664c1401fee191dbc35ed63b9e",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for FXS. There is no bridge cap.",
"url": "https://etherscan.io/address/0x66ba83ba3D3AD296424a2258145d9910E9E40B7C#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xd8E8531fdD446DF5298819d3Bc9189a5D8948Ee8",
"sinceTimestamp": 1692689279,
"tokens": [
"sfrxETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xd8E8531fdD446DF5298819d3Bc9189a5D8948Ee8",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692793367,
"transactionHash": "0x368efd40dcf16ad376c8f38adf1e68361874e2b5b2de52d7088cd7de6b38f02a",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707646139,
"transactionHash": "0x083f442a6f6154d565fca76e15e4b7ff09a9ca6fc8efec588139a52896e67d4c",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for sfrxETH. There is no bridge cap.",
"url": "https://etherscan.io/address/0xd8E8531fdD446DF5298819d3Bc9189a5D8948Ee8#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xF3F62F23dF9C1D2C7C63D9ea6B90E8d24c7E3DF5",
"sinceTimestamp": 1688046071,
"tokens": [
"LUSD"
],
"contract": {
"isVerified": true,
"address": "eth:0xF3F62F23dF9C1D2C7C63D9ea6B90E8d24c7E3DF5",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1688046899,
"transactionHash": "0xa67fa2a98e3b92d67fe9ea402dd53955fc2d74f6af3ee0183e20afad68ac5621",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1707433079,
"transactionHash": "0x1157d4bd2b7d00a0f9833ef0832822bc331d5f904c0c3f9f14fa7942678fbf58",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835007,
"transactionHash": "0x4a1c60505d4d6d22f51b164696b7eadba1955278a577c7e712b2cd0347bee330",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for LUSD. There is no bridge cap.",
"url": "https://etherscan.io/address/0xF3F62F23dF9C1D2C7C63D9ea6B90E8d24c7E3DF5#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x023A2aAc5d0fa69E3243994672822BA43E34E5C9",
"sinceTimestamp": 1687524587,
"tokens": [
"LORDS"
],
"contract": {
"isVerified": true,
"address": "eth:0x023A2aAc5d0fa69E3243994672822BA43E34E5C9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "StarkGate bridge for LORDS.",
"url": "https://etherscan.io/address/0x023A2aAc5d0fa69E3243994672822BA43E34E5C9#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4",
"sinceTimestamp": 1704905879,
"tokens": [
"STRK"
],
"contract": {
"isVerified": true,
"address": "eth:0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361"
],
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1704907283,
"transactionHash": "0x4ea20358347292f048a26277477a9f145add434e50e3f64c85f494469768c876",
"implementations": [
"eth:0x6Fa346c1e77C17d7976Bf1EFE2b121E845f15FEB"
]
},
{
"timestamp": 1705239263,
"transactionHash": "0x42056631084f574f2ed5f49bef3d1aabab22008266ac97afea3e5f42649bd7c3",
"implementations": [
"eth:0x052C81F05595B5DeF4fdFEdbD7CA7b4A8a7B50C1"
]
},
{
"timestamp": 1705249823,
"transactionHash": "0xe8154cce45dafa5cfcb95d134f3da8a13c80c6546da07ca92c88d5c54286cdc3",
"implementations": [
"eth:0x7f2a18900A978D4390a3640e34739BB697777A71"
]
},
{
"timestamp": 1707751031,
"transactionHash": "0x7c5561efa149f2be36fac917f47b0b107218b43de1eac56ceb97d008257bd850",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1713709115,
"transactionHash": "0xd25ca910a4b7d0bab41828bce014a70f75642449f7c0426a3849ad46a6e60364",
"implementations": [
"eth:0x179FA59e4D19ac7C7b4e3daa0Cd6557a553656A0"
]
},
{
"timestamp": 1728835151,
"transactionHash": "0xcd8680d72a4b8e347cd5036a1f2ac89b3e106f7c82d705d3cfc35bb6e849d026",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
},
{
"timestamp": 1739105903,
"transactionHash": "0xccb802ed2caee6856e9141983a642a0d4881cd64a209436d3fdeb4776c841175",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
},
{
"timestamp": 1746967799,
"transactionHash": "0xf0fc6787173f9e4ee964487191601bf84e443f30192c896849df7fd12dfa1a95",
"implementations": [
"eth:0x6ad74D4B79A06A492C288eF66Ef868Dd981fdC85"
]
}
],
"description": "StarkGate bridge for STRK. There is no bridge cap.",
"url": "https://etherscan.io/address/0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xF5b6Ee2CAEb6769659f6C091D209DfdCaF3F69Eb",
"sinceTimestamp": 1707322643,
"tokens": [
"EKUBO",
"ZEND",
"NSTR"
],
"contract": {
"isVerified": true,
"address": "eth:0xF5b6Ee2CAEb6769659f6C091D209DfdCaF3F69Eb",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x015277f49d5dD035A5F3Ce34aD5eBfDBaCA0C6Ec"
],
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1707325571,
"transactionHash": "0x52b4a75a83546e4e463a919cf778cb9a4882d536c4bf7b80a62098698c741fd8",
"implementations": [
"eth:0x594cCaDF93F860dc42Cf9fd7bCea47Ff4d135D7A"
]
},
{
"timestamp": 1740918611,
"transactionHash": "0x86ccb24833adb42f79ff55fcce4e69508e467df41c653a1b2578b5f2788f3c0c",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
}
],
"description": "StarkGate bridge for EKUBO, ZEND, NSTR (and potentially other tokens listed via StarkgateManager).",
"url": "https://etherscan.io/address/0xF5b6Ee2CAEb6769659f6C091D209DfdCaF3F69Eb#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xA86b9b9c58d4f786F8ea89356c9c9Dde9432Ab10",
"sinceTimestamp": 1750859519,
"tokens": [
"SolvBTC"
],
"contract": {
"isVerified": true,
"address": "eth:0xA86b9b9c58d4f786F8ea89356c9c9Dde9432Ab10",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A"
],
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750862507,
"transactionHash": "0x9529b94a823908b9a8c9097a89ef76e034740a971363e3f7913f4971eb3633e3",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
}
],
"description": "StarkGate bridge for SolvBTC.",
"url": "https://etherscan.io/address/0xA86b9b9c58d4f786F8ea89356c9c9Dde9432Ab10#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x96C8AE2AC9A5cd5fC354e375dB4d0ca75fc0685e",
"sinceTimestamp": 1757941367,
"tokens": [
"LBTC"
],
"contract": {
"isVerified": true,
"address": "eth:0x96C8AE2AC9A5cd5fC354e375dB4d0ca75fc0685e",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xF689688640E88160c07C6FC5cc63039F29EDe86b"
],
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1757941451,
"transactionHash": "0x503782544b4f41c5e38d13ba7e96e5dd4fb597abb7a595a7da2af8ddfaface58",
"implementations": [
"eth:0xf39d314C5aD7DC88958116dfA7d5ac095d563Aff"
]
}
],
"description": "StarkGate bridge for LBTC.",
"url": "https://etherscan.io/address/0x96C8AE2AC9A5cd5fC354e375dB4d0ca75fc0685e#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkProgramHashes": [
{
"title": "Starknet OS",
"proverSystemProject": "stwo",
"description": "Proves correct state transition for a range of consecutive Starknet transactions.",
"programUrl": "https://github.com/starkware-libs/sequencer/blob/9b4f27df41e8c45aeeb155d4fe84a1df18a8358a/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os/os.cairo#L69",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install python and pip.\n2. Install rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`.\n3. Checkout the correct version of [https://github.com/starkware-libs/sequencer/tree/main](https://github.com/starkware-libs/sequencer/tree/main): `git checkout 9b4f27df41e8c45aeeb155d4fe84a1df18a8358a`.\n4. Install required python dependencies: `python3 -m venv sequencer_venv`, then `. sequencer_venv/bin/activate && pip install -r scripts/requirements.txt`.\n5. Run `UPDATE_EXPECT=1 cargo test -p apollo_starknet_os_program test_program_hashes` to regenerate program hashes in `crates/apollo_starknet_os_program/src/program_hash.json`. The `\"os\"` value of this file will be equivalent to dec value of the hash.\n ",
"hash": "918745833886511857768061986591752808672496300091957204265383861063635175685"
},
{
"title": "Aggregation program for SHARP prover",
"description": "Cairo program that squashes the state diffs of several blocks.",
"programUrl": "https://github.com/starkware-libs/sequencer/blob/9b4f27df41e8c45aeeb155d4fe84a1df18a8358a/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/aggregator/main.cairo#L15",
"proverSystemProject": "stwo",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install python and pip.\n2. Install rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`.\n3. Checkout the correct version of [https://github.com/starkware-libs/sequencer/tree/main](https://github.com/starkware-libs/sequencer/tree/main): `git checkout 9b4f27df41e8c45aeeb155d4fe84a1df18a8358a`.\n4. Install required python dependencies: `python3 -m venv sequencer_venv`, then `. sequencer_venv/bin/activate && pip install -r scripts/requirements.txt`.\n5. Run `UPDATE_EXPECT=1 cargo test -p apollo_starknet_os_program test_program_hashes` to regenerate program hashes in `crates/apollo_starknet_os_program/src/program_hash.json`. The `\"aggregator_with_prefix\"` value of this file will be equivalent to dec value of the hash.\n ",
"hash": "1701025211190912681772481128523426351562426117847395998223683709327746845867"
},
{
"title": "Simple bootloader Cairo program (StarkWare_GpsStatementVerifier_2025_11)",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"verificationStatus": "notVerified",
"hash": "37889379279861089970868356983774360253508326951064758033885675883862334778"
},
{
"title": "Applicative bootloader Cairo program (StarkWare_GpsStatementVerifier_2025_11)",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"verificationStatus": "notVerified",
"hash": "3480185788024326007166778030599498673382667448173974782477620863541158415714"
}
]
}