897a65ee (main)
and
a741b4b8 (PR)
+1 -1
+1 -1
{
"baseTimestamp": 1779962479,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1779962479,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1779962479,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+5 -5
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "IMXAdminMultisig",
"name": "IMXAdminMultisig",
"description": "A Multisig with 4/6 threshold. \n* Can upgrade **with no delay**\n * RootAxelarBridgeAdaptor [via: ProxyAdmin]\n * StarkExchange \n * RootERC20BridgeFlowRate [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0xD2C37fC6fD89563187f3679304975655e448D192",
"type": "Contract",
"isVerified": true,
"name": "0xD2C3…D192",
"url": "https://etherscan.io/address/0xD2C37fC6fD89563187f3679304975655e448D192"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x37AC4a9Bf184aa1130016525631f3Daec11f7b26",
"type": "EOA",
"isVerified": true,
"name": "0x37AC…7b26",
"url": "https://etherscan.io/address/0x37AC4a9Bf184aa1130016525631f3Daec11f7b26"
},
{
"address": "eth:0x3d395f623D8954d71132F5caC10778CA275806e0",
"type": "EOA",
"isVerified": true,
"name": "0x3d39…06e0",
"url": "https://etherscan.io/address/0x3d395f623D8954d71132F5caC10778CA275806e0"
},
{
"address": "eth:0xdb6c271060571A96A62E3947E373395C89f765Ba",
"type": "EOA",
"isVerified": true,
"name": "0xdb6c…65Ba",
"url": "https://etherscan.io/address/0xdb6c271060571A96A62E3947E373395C89f765Ba"
},
{
"address": "eth:0xA28A84676E3Cec39e6F1D06CD0EEF6cAAa2F7f7b",
"type": "EOA",
"isVerified": true,
"name": "0xA28A…7f7b",
"url": "https://etherscan.io/address/0xA28A84676E3Cec39e6F1D06CD0EEF6cAAa2F7f7b"
},
{
"address": "eth:0x296A19A4e87F5824DBE8DEd53415A4704538bB30",
"type": "EOA",
"isVerified": true,
"name": "0x296A…bB30",
"url": "https://etherscan.io/address/0x296A19A4e87F5824DBE8DEd53415A4704538bB30"
},
{
"address": "eth:0x94e97260182B9537822687Dd3c301225c6f87a5e",
"type": "EOA",
"isVerified": true,
"name": "0x94e9…7a5e",
"url": "https://etherscan.io/address/0x94e97260182B9537822687Dd3c301225c6f87a5e"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05",
"address": "eth:0x72164D4448fe6cfA472946feDC71e83b4628B1aF",
"type": "EOA",
"isVerified": true,
"name": "0x6f24…3F05",
"url": "https://etherscan.io/address/0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05",
"name": "0x7216…B1aF",
"url": "https://etherscan.io/address/0x72164D4448fe6cfA472946feDC71e83b4628B1aF",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * AxelarGasService ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"addresses": {
"ethereum": [
{
"name": "AxelarGasService",
"isVerified": true,
"address": "eth:0x2d5d7d31F671F86C782533cc367F14109a082712",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05"
"eth:0x72164D4448fe6cfA472946feDC71e83b4628B1aF"
],
"implementations": [
"eth:0xcb5C784DCf8FF342625DbC53B356ed0Cbb0EBB9b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1702538351,
"transactionHash": "0xfc2554f725e599e45041529be0d88fd97508a5d3fb043cd26fc93a0bb45bf887",
"implementations": [
"eth:0x4Fe2d119873790cc9e15F6cC53cae1C2eb2039dC"
]
},
{
"timestamp": 1717474967,
"transactionHash": "0x89d167023ab2edd2f46e1c80f09118d7ab37362d845b2a9a781ec97eaa5c6563",
"implementations": [
"eth:0xcb5C784DCf8FF342625DbC53B356ed0Cbb0EBB9b"
]
}
],
"description": "* Roles:\n * **admin**: EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2d5d7d31F671F86C782533cc367F14109a082712#code"
},
{
"name": "AxelarGatewayProxyMultisig",
"isVerified": true,
"address": "eth:0x4F4495243837681061C4743b74B3eEdf548D56A5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4F4495243837681061C4743b74B3eEdf548D56A5#code"
},
{
"name": "RootAxelarBridgeAdaptor",
"isVerified": true,
"address": "eth:0x4f49B53928A71E553bB1B0F66a5BcB54Fd4E8932",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xdE2BCd3F0297d29c25e83228E5A33C0b43b51Ec8"
],
"implementations": [
"eth:0xE2E91C1Ae2873720C3b975a8034e887A35323345"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1702962623,
"transactionHash": "0x39c068494cbb3daa564a918bda53218f86d781976e6a8235c1c89a03dc9ec182",
"implementations": [
"eth:0xE2E91C1Ae2873720C3b975a8034e887A35323345"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately IMXAdminMultisig",
"upgradableBy": [
{
"name": "IMXAdminMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4f49B53928A71E553bB1B0F66a5BcB54Fd4E8932#code"
},
{
"name": "StarkExchangeMigration",
"isVerified": true,
"address": "eth:0x58b5484F489f7858DC83a5a677338074b57de806",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x58b5484F489f7858DC83a5a677338074b57de806#code"
},
{
"name": "StarkExchange",
"isVerified": true,
"address": "eth:0x5FDCCA53617f4d2b9134B29090C87D01058e27e9",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xD2C37fC6fD89563187f3679304975655e448D192"
],
"implementations": [
"eth:0x273b65a7231321D4ee47a4c47408Ef43517455Ec"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1615389188,
"transactionHash": "0x9b57c19aa91cc17c9487085b68532cd65d1e4c263b5928f14c03a9d36c9097df",
"implementations": [
"eth:0x49401Ddc4E0A858B5B4cf3D6De38393B7fAC7378"
]
},
{
"timestamp": 1615917879,
"transactionHash": "0xf42d8fc579401fc76769bf63ba72f7277aac976aeb2a4cd3eca899ca08de7c20",
"implementations": [
"eth:0x49401Ddc4E0A858B5B4cf3D6De38393B7fAC7378"
]
},
{
"timestamp": 1616671455,
"transactionHash": "0x79f72bef0984e3ae76ab638c078f92f1a0d4ad2a289b8a91e072d81f77d505ce",
"implementations": [
"eth:0x49401Ddc4E0A858B5B4cf3D6De38393B7fAC7378"
]
},
{
"timestamp": 1616745691,
"transactionHash": "0x9e8cc538b40a70723a287ece3ecb4e6aafbbde0e04f621124df6e4c2d7995dc7",
"implementations": [
"eth:0x49401Ddc4E0A858B5B4cf3D6De38393B7fAC7378"
]
},
{
"timestamp": 1630397729,
"transactionHash": "0x26fb60bb6b5ff3ef22cd959d007588f7410586499870411cfddc2759b97d44d6",
"implementations": [
"eth:0xB8563AD5aF1F79dd04937BE8B572318c8e6f43AC"
]
},
{
"timestamp": 1631205002,
"transactionHash": "0xeaa0efb3937eee43c1083cc776d5033b131e6ef12ba0d0646db1b34e600847cd",
"implementations": [
"eth:0xB8563AD5aF1F79dd04937BE8B572318c8e6f43AC"
]
},
{
"timestamp": 1642061331,
"transactionHash": "0x658a93571ca9733ba346bd746790a6d07821d86c89fd90809e85bf7f2f8d9797",
"implementations": [
"eth:0xB8563AD5aF1F79dd04937BE8B572318c8e6f43AC"
]
},
{
"timestamp": 1716187175,
"transactionHash": "0x3425fd24435e4aefdb08f3970e61e446eb5d21a1e0c916d1ba9331b060b72192",
"implementations": [
"eth:0x4EDD62189732e9fF476ABa880b48c29432A7AC9B"
]
},
{
"timestamp": 1772672831,
"transactionHash": "0x07ac699d0dc30804af73843cc1cba5f50780135e25932cf78be69a3e6c11b194",
"implementations": [
"eth:0x58b5484F489f7858DC83a5a677338074b57de806"
]
},
{
"timestamp": 1779320327,
"transactionHash": "0x9af235b6b0759b9fa2b301c7bc7bf04e05e5bd15000abe74b405466e09fca332",
"implementations": [
"eth:0x273b65a7231321D4ee47a4c47408Ef43517455Ec"
]
}
],
"description": "* Roles:\n * **admin**: IMXAdminMultisig",
"upgradableBy": [
{
"name": "IMXAdminMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5FDCCA53617f4d2b9134B29090C87D01058e27e9#code"
},
{
"name": "Operators",
"isVerified": true,
"address": "eth:0x7DdB2d76b80B0AA19bDEa48EB1301182F4CeefbC",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7DdB2d76b80B0AA19bDEa48EB1301182F4CeefbC#code"
},
{
"name": "ChildERC20",
"isVerified": true,
"address": "eth:0x8804A8aA1F18f23aE8A456dD73806FdA3219FaD1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8804A8aA1F18f23aE8A456dD73806FdA3219FaD1#code"
},
{
"name": "VaultRootSenderAdapter",
"isVerified": true,
"address": "eth:0x9Fabd9Cc71f15b9Cfd717E117FBb9cfD9fC7cd32",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9Fabd9Cc71f15b9Cfd717E117FBb9cfD9fC7cd32#code"
},
{
"name": "RootERC20BridgeFlowRate",
"isVerified": true,
"address": "eth:0xBa5E35E26Ae59c7aea6F029B68c6460De2d13eB6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xdE2BCd3F0297d29c25e83228E5A33C0b43b51Ec8"
],
"implementations": [
"eth:0x177EaFe0f1F3359375B1728dae0530a75C83E154"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1702962563,
"transactionHash": "0x2e14d2e7f495b17f93c4c839315cfedfd5ee28df540e6433ccc6abb0206b0775",
"implementations": [
"eth:0x177EaFe0f1F3359375B1728dae0530a75C83E154"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately IMXAdminMultisig",
"upgradableBy": [
{
"name": "IMXAdminMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xBa5E35E26Ae59c7aea6F029B68c6460De2d13eB6#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xdE2BCd3F0297d29c25e83228E5A33C0b43b51Ec8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: IMXAdminMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xdE2BCd3F0297d29c25e83228E5A33C0b43b51Ec8#code"
}
]
},
"escrows": [
{
"address": "0x5FDCCA53617f4d2b9134B29090C87D01058e27e9",
"sinceTimestamp": 1615389188,
"tokens": [
"ETH",
"IMX",
"USDC",
"OMI"
],
"contract": {
"isVerified": true,
"address": "eth:0x5FDCCA53617f4d2b9134B29090C87D01058e27e9",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xD2C37fC6fD89563187f3679304975655e448D192"
],
"implementations": [
"eth:0x273b65a7231321D4ee47a4c47408Ef43517455Ec"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1615389188,
"transactionHash": "0x9b57c19aa91cc17c9487085b68532cd65d1e4c263b5928f14c03a9d36c9097df",
"implementations": [
"eth:0x49401Ddc4E0A858B5B4cf3D6De38393B7fAC7378"
]
},
{
"timestamp": 1615917879,
"transactionHash": "0xf42d8fc579401fc76769bf63ba72f7277aac976aeb2a4cd3eca899ca08de7c20",
"implementations": [
"eth:0x49401Ddc4E0A858B5B4cf3D6De38393B7fAC7378"
]
},
{
"timestamp": 1616671455,
"transactionHash": "0x79f72bef0984e3ae76ab638c078f92f1a0d4ad2a289b8a91e072d81f77d505ce",
"implementations": [
"eth:0x49401Ddc4E0A858B5B4cf3D6De38393B7fAC7378"
]
},
{
"timestamp": 1616745691,
"transactionHash": "0x9e8cc538b40a70723a287ece3ecb4e6aafbbde0e04f621124df6e4c2d7995dc7",
"implementations": [
"eth:0x49401Ddc4E0A858B5B4cf3D6De38393B7fAC7378"
]
},
{
"timestamp": 1630397729,
"transactionHash": "0x26fb60bb6b5ff3ef22cd959d007588f7410586499870411cfddc2759b97d44d6",
"implementations": [
"eth:0xB8563AD5aF1F79dd04937BE8B572318c8e6f43AC"
]
},
{
"timestamp": 1631205002,
"transactionHash": "0xeaa0efb3937eee43c1083cc776d5033b131e6ef12ba0d0646db1b34e600847cd",
"implementations": [
"eth:0xB8563AD5aF1F79dd04937BE8B572318c8e6f43AC"
]
},
{
"timestamp": 1642061331,
"transactionHash": "0x658a93571ca9733ba346bd746790a6d07821d86c89fd90809e85bf7f2f8d9797",
"implementations": [
"eth:0xB8563AD5aF1F79dd04937BE8B572318c8e6f43AC"
]
},
{
"timestamp": 1716187175,
"transactionHash": "0x3425fd24435e4aefdb08f3970e61e446eb5d21a1e0c916d1ba9331b060b72192",
"implementations": [
"eth:0x4EDD62189732e9fF476ABa880b48c29432A7AC9B"
]
},
{
"timestamp": 1772672831,
"transactionHash": "0x07ac699d0dc30804af73843cc1cba5f50780135e25932cf78be69a3e6c11b194",
"implementations": [
"eth:0x58b5484F489f7858DC83a5a677338074b57de806"
]
},
{
"timestamp": 1779320327,
"transactionHash": "0x9af235b6b0759b9fa2b301c7bc7bf04e05e5bd15000abe74b405466e09fca332",
"implementations": [
"eth:0x273b65a7231321D4ee47a4c47408Ef43517455Ec"
]
}
],
"description": "Main StarkEx contract, used also as an escrow.",
"url": "https://etherscan.io/address/0x5FDCCA53617f4d2b9134B29090C87D01058e27e9#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 14d delay on code upgrades."
}
],
"zkVerifiers": []
}
+1 -1
{
"baseTimestamp": 1779377712,
"baseTimestamp": 1780913745,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1779962479,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1780586386,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+31 -24
+1 -1
{
"dataAvailability": [
{
"name": "All data required for proofs is published on chain",
"description": "All the data that is used to construct the system state is published on chain in the form of cheap blobs or calldata. This ensures that it will be available for enough time.",
"risks": [],
"references": [
{
"title": "Rollup.sol - Etherscan source code commitBatch() and commitBatchWithBlobProof() functions",
"url": "https://etherscan.io/address/0x759894Ced0e6af42c26668076Ffa84d02E3CeF60#code"
}
]
}
],
"exitMechanisms": [
{
"name": "Regular messaging",
"description": "The user initiates L2->L1 messages by submitting a regular transaction on this chain. When the block containing that transaction is settled, the message becomes available for processing on L1. The process of block finalization takes a challenge period of 2d to complete.",
"risks": [],
"references": [
{
"title": "L1ETHGateway.sol - Etherscan source code, finalizeWithdrawETH function",
"url": "https://etherscan.io/address/0x63eeCb6bE6087B094c2CBAA34f2902593eAE979c#code"
}
]
}
],
"forceTransactions": {
"name": "Users can force transactions",
"description": "Users can force the sequencer to include a transaction by submitting a request through L1. If the sequencer censors such a request or is down for 7d, any new proposal must include at least 1 transaction from the queue. Proposing is permissionless under these conditions if proven immediately.",
"risks": [],
"references": [
{
"title": "EnforcedTxGateway proxy - PAUSED - Etherscan source code",
"url": "https://etherscan.io/address//0xc5Fa3b8968c7FAbEeA2B530a20b88d0C2eD8abb7#readProxyContract#F7"
},
{
"title": "EnforcedTxGateway.sol implementation - Etherscan source code",
"url": "https://etherscan.io/address/0xCb13746Fc891fC2e7D824870D00a26F43fE6123e#code"
}
]
},
"operator": {
"name": "Decentralised sequencer network",
"description": "BLS signatures of the Sequencers are not verified onchain. Sequencing is centralized an permissioned to the listed sequencers in practice.",
"references": [
{
"title": "L1Staking.sol - Etherscan source code, verifySignature() stub",
"url": "https://etherscan.io/address/0xDb0734109051DaAB5c32E45e9a5ad0548B2df714#code#F1#L340"
}
],
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
}
]
},
"stateValidation": {
"categories": [
{
"title": "Fraud proofs",
"description": "Morph uses a one round fault proof system where whitelisted Challengers, if they find a faulty state root within the 2d challenge window, can post a 1 WEI bond and request a ZK proof of the state transition. At least 5 Challengers are operated by entities external to the team. After the challenge, during a 3d proving window, a ZK proof must be delivered, otherwise the state root is considered invalid and the root proposer bond, which is currently set to 1 ETH, is slashed. The zkVM used is SP1 by Succinct. If a valid proof is delivered, the Challenger loses the challenge bond. The Morph Multisig can revert unfinalized batches.",
"references": [
{
"title": "Whitelisted Challengers - Morph Docs",
"url": "https://docs.morphl2.io/docs/how-morph-works/optimistic-zkevm/#challenger-address-list"
},
{
"title": "Rollup.sol - Etherscan source code, commitBatch(), challengeState(), proveState() functions",
"url": "https://etherscan.io/address/0x9e2Fb684935a32CEd121972f23BD0e4634377cA2"
"url": "https://etherscan.io/address/0xaC3C379D772f3520B34690d32BA14510ab36C3fB"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "no whitelisted challenger posts a challenge for an incorrect state root."
}
]
}
]
},
"warning": "The current rollup version loses liveness if bad/random data is posted to blobs using `commitBatch()`"
}
+29 -22
{
"addresses": {
"ethereum": [
{
"name": "ZkEvmVerifierV1",
"isVerified": true,
"address": "eth:0x045d4BC73Bd1918192f34e98532A5272Ef620423",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A snark verifier based on SP1 by Succinct. It verifies RISC-V execution in a PLONK proof. Used to verify the validity of L2 state transitions for single round fraud proofs.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x045d4BC73Bd1918192f34e98532A5272Ef620423#code"
},
{
"name": "L1ETHGateway",
"isVerified": true,
"address": "eth:0x1C1Ffb5828c3A48B54E8910F1c75256a498aDE68",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0"
],
"implementations": [
"eth:0x63eeCb6bE6087B094c2CBAA34f2902593eAE979c"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729307603,
"transactionHash": "0x2054355788d3d4ae212cb29348eee2664d126305b4ace5fe2269871cd9165713",
"implementations": [
"eth:0x98dF320641C2E65ab4BbeF1e6f6C66D9B50EdE5F"
]
},
{
"timestamp": 1729341335,
"transactionHash": "0x0bff29c5d35495d0e9c22547b91c8e9e468edbfa2e8ccf1872de99a9f06e63ef",
"implementations": [
"eth:0x63eeCb6bE6087B094c2CBAA34f2902593eAE979c"
]
}
],
"description": "Contract used to bridge ETH from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Morph Multisig 1",
"upgradableBy": [
{
"name": "Morph Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1C1Ffb5828c3A48B54E8910F1c75256a498aDE68#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x31110622D6CA24c9FF307d6ae1715F16E47F16A0#code"
},
{
"name": "L1MessageQueueWithGasPriceOracle",
"isVerified": true,
"address": "eth:0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0"
],
"implementations": [
"eth:0xf3b7724334cb0aDBC49CAC90e166Af99C07Be6aa"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729307207,
"transactionHash": "0xed442ee7f96c1151761ddca9e4b923adff4e0703bc9ae42ca30bf4356f195f5d",
"implementations": [
"eth:0x98dF320641C2E65ab4BbeF1e6f6C66D9B50EdE5F"
]
},
{
"timestamp": 1729330799,
"transactionHash": "0xae27c6c83cea4ce8b8a923fddfb122f66e63139e514ba0624a5373b1a1f2829c",
"implementations": [
"eth:0x828F68e2E05a34fA836416F124350E25021876ac"
]
},
{
"timestamp": 1736755919,
"transactionHash": "0x60cc38cb058516da361ecd5f548fc9216fbcda9eb08255b529ebbf78dac44f7b",
"implementations": [
"eth:0xa3b5bFB885FF92EB8445f262c289548e77c3c0aA"
]
},
{
"timestamp": 1772517791,
"transactionHash": "0x29632a0458dbc5cbad5e831228a54c118e8e0746bff06fcf151cad568079a318",
"implementations": [
"eth:0xf3b7724334cb0aDBC49CAC90e166Af99C07Be6aa"
]
}
],
"description": "Contains the array of queued L1 -> L2 messages, either appended using the L1Messenger or the EnforcedTxGateway.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Morph Multisig 1",
"upgradableBy": [
{
"name": "Morph Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF#code"
},
{
"name": "L1StandardERC20Gateway",
"isVerified": true,
"address": "eth:0x44c28f61A5C2Dd24Fc71D7Df8E85e18af4ab2Bd8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0"
],
"implementations": [
"eth:0x75BC012fA81DF052baFc4EF9255Af29B6C4e5301"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729307651,
"transactionHash": "0x588ba3041901915cf5dda72776946664559ea839ead325836697c3d6764608b4",
"implementations": [
"eth:0x98dF320641C2E65ab4BbeF1e6f6C66D9B50EdE5F"
]
},
{
"timestamp": 1729341383,
"transactionHash": "0xecc550f05d2956f7b7782408e784270c2dd858fd1add437f7292309f9be0795e",
"implementations": [
"eth:0x75BC012fA81DF052baFc4EF9255Af29B6C4e5301"
]
}
],
"description": "Contract used to bridge ERC20 tokens from L1 to L2. It uses a fixed token list.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Morph Multisig 1",
"upgradableBy": [
{
"name": "Morph Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x44c28f61A5C2Dd24Fc71D7Df8E85e18af4ab2Bd8#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x542675E90E269F20ecbb9e0095d4751ac155B530",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8654061457582c867B77A3a9f4ca714dFc84Ec17"
],
"implementations": [
"eth:0x5F0CAaf0d3b8dd8eA9f80CDbb0021930d3c17353"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1770779267,
"transactionHash": "0x8758e296217ea0a7f75403d57eb75eaa7067a45dd1b9cfc070e7fb1c1d9f6554",
"implementations": [
"eth:0x5F0CAaf0d3b8dd8eA9f80CDbb0021930d3c17353"
]
}
],
"description": "A timelock with access control. The current minimum delay is 0s.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Morph Multisig 1\n * **canceller**: Morph Multisig 2\n * **defaultAdmin**: Morph Multisig 1, TimelockController; ultimately Morph Multisig 1\n * **executor**: Morph Multisig 1\n * **proposer**: Morph Multisig 2",
"upgradableBy": [
{
"name": "Morph Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x542675E90E269F20ecbb9e0095d4751ac155B530#code"
},
{
"name": "MultipleVersionRollupVerifier",
"isVerified": true,
"address": "eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Used to update the verifier and keep track of current and old versions. Routes to a registered verifier by batch index, so that every batch is verified by the latest verifier that is enabled for this batch.\n* Roles:\n * **owner**: Morph Multisig 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1#code"
},
{
"name": "L1GatewayRouter",
"isVerified": true,
"address": "eth:0x7497756ADA7e656aE9f00781aF49Fc0fD08f8A8a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0"
],
"implementations": [
"eth:0x6D9623d44C4A1629815D9d6236FF25C4f82Cc819"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729307555,
"transactionHash": "0x47781299a90c1fdd6771fbf104e0433f05cc7b610d63ce9368349a41f563b3c8",
"implementations": [
"eth:0x98dF320641C2E65ab4BbeF1e6f6C66D9B50EdE5F"
]
},
{
"timestamp": 1729331927,
"transactionHash": "0xeda36c4631ff08b30a6812f16d35626894001ea8259fe51f1e38fa8ea78d3d37",
"implementations": [
"eth:0x6D9623d44C4A1629815D9d6236FF25C4f82Cc819"
]
}
],
"description": "Main entrypoint for depositing ETH and ERC20 tokens, which are then forwarded to the correct escrow.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Morph Multisig 1\n * **owner**: Morph Multisig 2",
"upgradableBy": [
{
"name": "Morph Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7497756ADA7e656aE9f00781aF49Fc0fD08f8A8a#code"
},
{
"name": "Rollup",
"isVerified": true,
"address": "eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0"
],
"implementations": [
"eth:0x9e2Fb684935a32CEd121972f23BD0e4634377cA2"
"eth:0xaC3C379D772f3520B34690d32BA14510ab36C3fB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729307507,
"transactionHash": "0xfb3bc602abb088d5d94e6869d56417de3c16a3966e5c6abfa4d157dfbcc36cba",
"implementations": [
"eth:0x98dF320641C2E65ab4BbeF1e6f6C66D9B50EdE5F"
]
},
{
"timestamp": 1729331495,
"transactionHash": "0xeb4cc4248a0b3f459f4d7ab5877114fd4f55fd073c78347df548a9f03013068e",
"implementations": [
"eth:0xcffdDbcb5B9EA2ee45ABA121e0849ADc87c38326"
]
},
{
"timestamp": 1729432115,
"transactionHash": "0xd60de4a76f275ec7931bc430b7440f07c15f30028195405f855bd98c33ad72d6",
"implementations": [
"eth:0x073403E147a8e607b80985fe458c0B527287278F"
]
},
{
"timestamp": 1732765919,
"transactionHash": "0xa452e20183f6860f105cb398bccc9d75dd3758444b956061b3031d1f0a33c424",
"implementations": [
"eth:0xaD900dB30Bcdf84c38Df0067eA327bbEccCF071A"
]
},
{
"timestamp": 1736753519,
"transactionHash": "0x809b1d9bba9fd8f61c038603ddf7a6f0a079db83a4a6d341cf23d2af5764a9be",
"implementations": [
"eth:0x43190DfD1F572Cb56B1942B44482d1774151D77A"
]
},
{
"timestamp": 1747033883,
"transactionHash": "0x1cd98e49b0d0c30a39c97683c374f5d3541d1ed02b14272a7113709fe01700d7",
"implementations": [
"eth:0x9C79e8F5d0fE910d84a6a0d4A03E8136d036eBec"
]
},
{
"timestamp": 1764060695,
"transactionHash": "0x27b0e1b46f9878a502c68e414bc6fea028c3a551760e5687c56bdd4eda4f31c9",
"implementations": [
"eth:0xDF0749e688AE74508D84699Ba2405ED610Aaf8c5"
]
},
{
"timestamp": 1772517971,
"transactionHash": "0xc86bc6dc60ad304afbc7f423668a272434c17dbf4a0bb27906d74f0940a6eab1",
"implementations": [
"eth:0x1320d6A438d268044c8EEff0eE6B24E5EC9584e3"
]
},
{
"timestamp": 1774575251,
"transactionHash": "0x8eec835066ebedafa6430fc7b0cd1de2b7a46eb09e56519868ca9dbb938f4c8f",
"implementations": [
"eth:0xB2F539aede77DF4cD1d427d046bBbBd8dB4cBAAF"
]
},
{
"timestamp": 1774863407,
"transactionHash": "0xd2892f5b4e5c8fe4bd476e83689b21f4716a38185a3923bd1fcbcf61deefb8f9",
"implementations": [
"eth:0x9e2Fb684935a32CEd121972f23BD0e4634377cA2"
]
},
{
"timestamp": 1780485971,
"transactionHash": "0xe9128be913e8685a928c8e8468a030a95ad44ef4ad78534c688cd721af496a54",
"implementations": [
"eth:0xaC3C379D772f3520B34690d32BA14510ab36C3fB"
]
}
],
"description": "The main contract of the Morph rollup. Allows to post transaction data and state roots and implements the the proof system. Sequencing and proposing are behind a whitelist. If the EnforcedTxGateway is not paused, any sequencer must include at least one L1 -> L2 message in their proposal if the oldest message is > 7d old. If the Sequencers are censoring or down for more than 7d, users can permissionlessly propose and prove via `commitBatchWithProof()`.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Morph Multisig 1\n * **challengers**: EOA 1, EOA 10, EOA 11, EOA 13, EOA 14, EOA 15, EOA 16, EOA 18, EOA 19, EOA 2, EOA 20, EOA 21, EOA 22, EOA 23, EOA 24, EOA 25, EOA 26, EOA 27, EOA 28, EOA 3, EOA 30, EOA 31, EOA 32, EOA 33, EOA 34, EOA 35, EOA 36, EOA 37, EOA 38, EOA 4, EOA 40, EOA 41, EOA 42, EOA 5, EOA 6, EOA 8, EOA 9, Morph Multisig 2\n * **owner**: Morph Multisig 2",
"upgradableBy": [
{
"name": "Morph Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x759894Ced0e6af42c26668076Ffa84d02E3CeF60#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x8654061457582c867B77A3a9f4ca714dFc84Ec17",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Morph Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8654061457582c867B77A3a9f4ca714dFc84Ec17#code"
},
{
"name": "ZkEvmVerifierV1",
"isVerified": true,
"address": "eth:0x9774CE99E8Ab3f13582bC6c2Bd2832e5A25C4624",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9774CE99E8Ab3f13582bC6c2Bd2832e5A25C4624#code"
},
{
"name": "EnforcedTxGateway",
"isVerified": true,
"address": "eth:0xc5Fa3b8968c7FAbEeA2B530a20b88d0C2eD8abb7",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0"
],
"implementations": [
"eth:0xCb13746Fc891fC2e7D824870D00a26F43fE6123e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729308143,
"transactionHash": "0x42f9fb783f90953e26e04d4f27a703daa2992362fe44c5e11d646dae054e1e6b",
"implementations": [
"eth:0x98dF320641C2E65ab4BbeF1e6f6C66D9B50EdE5F"
]
},
{
"timestamp": 1729341695,
"transactionHash": "0x52cd27aa90911acebc0bec090cf04928fd3663207dc55381d57c4a47e1dda26a",
"implementations": [
"eth:0xCb13746Fc891fC2e7D824870D00a26F43fE6123e"
]
}
],
"description": "Contracts to force L1 -> L2 messages with the L1 sender. Currently paused: false.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Morph Multisig 1\n * **owner**: Morph Multisig 2",
"upgradableBy": [
{
"name": "Morph Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc5Fa3b8968c7FAbEeA2B530a20b88d0C2eD8abb7#code"
},
{
"name": "ZkEvmVerifierV1",
"isVerified": true,
"address": "eth:0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0xDc71366EFFA760804DCFC3EDF87fa2A6f1623304",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0"
],
"implementations": [
"eth:0x0cC37d5239F9027A1269f53D83c73084D538f3a9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729307111,
"transactionHash": "0xf29bb9908992a7c79573ffb28d3783584653f43095b1b2278fc8951f567bebe7",
"implementations": [
"eth:0x98dF320641C2E65ab4BbeF1e6f6C66D9B50EdE5F"
]
},
{
"timestamp": 1729330715,
"transactionHash": "0x63ce107f943635805762c4ccd98b13cf1977f8ed1e13bd98821ebb545b9ed38e",
"implementations": [
"eth:0xB8F0871bc0832cb756f07fFC4bDdC8b6bf8577b5"
]
},
{
"timestamp": 1736755823,
"transactionHash": "0x908d9fce8cd9a787900543daabf45936a8873b543f593030f3edceeca35543f8",
"implementations": [
"eth:0x0cC37d5239F9027A1269f53D83c73084D538f3a9"
]
}
],
"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; ultimately Morph Multisig 1",
"upgradableBy": [
{
"name": "Morph Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDc71366EFFA760804DCFC3EDF87fa2A6f1623304#code"
},
{
"name": "Whitelist",
"isVerified": true,
"address": "eth:0xFFafDd9167777C0e5421e0B6789D6d7A5E386984",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Generic whitelist. Currently used to whitelist addresses that can send or relay messages to/from L2 without paying for L2 gas.\n* Roles:\n * **owner**: Morph Multisig 2\n * **whitelisted**: L1Staking",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFFafDd9167777C0e5421e0B6789D6d7A5E386984#code"
}
]
},
"escrows": [
{
"address": "0xDc71366EFFA760804DCFC3EDF87fa2A6f1623304",
"sinceTimestamp": 1729307111,
"tokens": [
"ETH"
],
"chain": "ethereum",
"chainId": 1
},
{
"address": "0x44c28f61A5C2Dd24Fc71D7Df8E85e18af4ab2Bd8",
"sinceTimestamp": 1729307651,
"tokens": "*",
"chain": "ethereum",
"chainId": 1
},
{
"address": "0xA534BAdd09b4C62B7B1C32C41dF310AA17b52ef1",
"sinceTimestamp": 1729307783,
"tokens": "*",
"chain": "ethereum",
"chainId": 1
},
{
"address": "0xc9045350712A1DCC3A74Eca18Bc985424Bbe7535",
"sinceTimestamp": 1729308239,
"tokens": [
"USDC"
],
"chain": "ethereum",
"chainId": 1
},
{
"address": "0x2C8314f5AADa5D7a9D32eeFebFc43aCCAbe1b289",
"sinceTimestamp": 1729308239,
"tokens": [
"USDC"
],
"chain": "ethereum",
"chainId": 1
}
],
"programHashes": [
{
"title": "Morph Guest program (v0.5.6 release)",
"description": "Proves the correct execution of the Morph L2 state transition function (based on the Geth EVM) for a batch of blocks using the SP1 zkVM.",
"programUrl": "https://github.com/morph-l2/morph/tree/v0.5.6/prover/bin/client",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "successful",
"verificationSteps": "\nThe steps below should be done on a Linux machine to reproduce the program hash. To prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain version `v6.2.0`: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up --version v6.2.0`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [morph repo](https://github.com/morph-l2/morph): `git checkout v0.5.6`. Commit hash should be `cafa07d19de8a5a36c8510890a72533c8e0e52e5`\n2. Make sure docker is running by running `docker ps`\n3. Build the program binary from `prover/bin/client` dir using a docker container build for reproducibility: `cargo prove build --docker --tag v6.2.0`\n4. The generated elf binary `verifier-client` will be placed in `prover/target/elf-compilation/docker/riscv64im-succinct-zkvm-elf/release`. Move it to `prover/bin/client/elf`.\n5. Regenerate and print the vkey from the elf binary by calling `cargo run --release --bin vkey` from `prover` dir.\n ",
"hash": "0x00c4ea13863f7b423f53140f432d7147e48b8e31660420636931c0a72459c25c"
},
{
"title": "Morph Guest program (v0.4.5 release)",
"title": "Morph Guest program (v0.5.7 release)",
"description": "Proves the correct execution of the Morph L2 state transition function (based on the Geth EVM) for a batch of blocks using the SP1 zkVM.",
"programUrl": "https://github.com/morph-l2/morph/tree/v0.4.5/prover/bin/client",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/morph-l2/morph/tree/v0.5.7/prover/bin/client",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "successful",
"verificationSteps": "\nRebuilding this program vkey requires specific docker image and sp1 version. The docker image requires a linux platform or some emulation workarounds. To prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain v3.4.0: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up -v 3.4.0`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [morph repo](https://github.com/morph-l2/morph): `git checkout v0.4.5`. Commit hash should be `2223d9836827b3c13ec0fbd7f769fed4b5235a9a`\n2. Make sure docker is running by running `docker ps`\n3. Pull the specific SP1 docker image: `docker pull ghcr.io/succinctlabs/sp1@sha256:`\n`aa6c43a119183f8e4af65405e692760310562b0bae580be164bf4ce0f1f9b3cd`\n4. Create a local Docker tag for the pulled image: `docker tag ghcr.io/succinctlabs/sp1@sha256:`\n`aa6c43a119183f8e4af65405e692760310562b0bae580be164bf4ce0f1f9b3cd ghcr.io/succinctlabs/sp1:v3.4.0-local.1`\n5. Build the program binary from `prover/bin/client` dir: `cargo prove build --docker --tag v3.4.0-local.1`\n6. The generated elf binary `verifier-client` will be placed in `prover/target/elf-compilation/docker/riscv32im-succinct-zkvm-elf/release`. Move it to `prover/bin/client/elf` and rename to `riscv32im-succinct-zkvm-elf`.\n7. Regenerate and print the vkey from the elf binary by calling `cargo run --release --bin vkey` from `prover` dir.\n ",
"hash": "0x0059b74a8fd03c44462de3916b45ebeedb9f1158e3037e8c40b8941cbe438d7e"
"verificationSteps": "\nThe steps below should be done on a Linux machine to reproduce the program hash. To prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain version `v6.2.0`: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up --version v6.2.0`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [morph repo](https://github.com/morph-l2/morph): `git checkout v0.5.7`. Commit hash should be `55272a512fb0f0c378e78852b0cfbd92c6a02826`\n2. Make sure docker is running by running `docker ps`\n3. Build the program binary from `prover/bin/client` dir using a docker container build for reproducibility: `cargo prove build --docker --tag v6.2.0`\n4. The generated elf binary `verifier-client` will be placed in `prover/target/elf-compilation/docker/riscv64im-succinct-zkvm-elf/release`. Move it to `prover/bin/client/elf`.\n5. Regenerate and print the vkey from the elf binary by calling `cargo run --release --bin vkey` from `prover` dir.\n ",
"hash": "0x00f1b104202c89fe60d973cbf456a4e2e1ec1e7d63c61453b959dda153df798c"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x9774CE99E8Ab3f13582bC6c2Bd2832e5A25C4624",
"eth:0x045d4BC73Bd1918192f34e98532A5272Ef620423"
"eth:0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692"
]
}
+1 -1
{
"baseTimestamp": 1779443124,
"baseTimestamp": 1780914460,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+8 -15
+7 -14
{
"arbitrum": {
"roles": [],
"actors": [
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGatewayArb\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "arb1:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://arbiscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://arbiscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "arb1:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://arbiscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "arb1:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://arbiscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
}
]
},
"base": {
"roles": [],
"actors": [
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGatewayBase\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "base:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://basescan.org/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "base",
"references": [],
"participants": [
{
"address": "base:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://basescan.org/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "base:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://basescan.org/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "base:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://basescan.org/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
}
]
},
"ethereum": {
"roles": [
{
"id": "Validator",
"name": "Validator",
"description": "Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract.",
"accounts": [
{
"address": "eth:0x78325837C780788Ce6afF7883FdF68890010Fe30",
"type": "EOA",
"isVerified": true,
"name": "EOA 1",
"url": "#EOA-1-and-EOA-2"
},
{
"address": "eth:0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA",
"type": "EOA",
"isVerified": true,
"name": "EOA 2",
"url": "#EOA-1-and-EOA-2"
}
],
"chain": "ethereum",
"discoveryDrivenData": true
}
],
"actors": [
{
"id": "EmergencyUpgradeBoard",
"name": "EmergencyUpgradeBoard",
"accounts": [
{
"address": "eth:0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111",
"type": "Contract",
"isVerified": true,
"name": "0xF73a…a111",
"url": "https://etherscan.io/address/0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111"
}
],
"chain": "ethereum",
"description": "A custom contract allowing a 3/3 of SecurityCouncil, ZK Foundation Multisig and Guardians to `executeEmergencyUpgrade()` via the ProtocolUpgradeHandler.\n* Can upgrade **with no delay**\n * BridgeHub [via: ProtocolUpgradeHandler → ProxyAdmin]\n * MessageRoot [via: ProtocolUpgradeHandler → ProxyAdmin]\n * CTMDeploymentTracker [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1AssetRouter [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1NativeTokenVault [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainTypeManager [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1Nullifier [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainAssetHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ProtocolUpgradeHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n* Can interact with BridgeHub\n * set critical contract addresses for the shared cluster, register settlement layers, pause and unpause migrations and the bridge and manage zk chain registration [via: ProtocolUpgradeHandler]\n* Can interact with L1NativeTokenVault\n * pause / unpause the bridge [via: ProtocolUpgradeHandler]\n* Can interact with ChainTypeManager\n * manage the shared ValidatorTimelock contract address and the admin role, register and execute upgrades (and set their deadlines), freeze, revert batches and set permissioned validators and fee params for all connected chains [via: ProtocolUpgradeHandler]\n* Can interact with L1Nullifier\n * pause, unpause and set critical escrow address references [via: ProtocolUpgradeHandler]\n* Can interact with ChainAssetHandler\n * pause, resume chain migrations [via: ProtocolUpgradeHandler]\n* Can interact with RollupDAManager\n * manage allowed rollup DA pairs (allowed to be used by rollups in permanent rollup mode) [via: ProtocolUpgradeHandler]",
"discoveryDrivenData": true
},
{
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 5/8 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy → ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * revert batches for any connected chain (ZK cluster Admin role) [via: EraChainAdminProxy]",
"accounts": [
{
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"type": "Contract",
"isVerified": true,
"name": "0x4e49…7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x4A333c167Ce76C46149c6B0197977ae02aaeC929",
"type": "EOA",
"isVerified": true,
"name": "0x4A33…C929",
"url": "https://etherscan.io/address/0x4A333c167Ce76C46149c6B0197977ae02aaeC929"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1",
"type": "EOA",
"isVerified": true,
"name": "0x5C7E…f1B1",
"url": "https://etherscan.io/address/0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"address": "eth:0x702caCafA54B88e9c54449563Fb2e496e85c78b7",
"type": "EOA",
"isVerified": true,
"name": "0x702c…78b7",
"url": "https://etherscan.io/address/0x702caCafA54B88e9c54449563Fb2e496e85c78b7"
},
{
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"type": "EOA",
"isVerified": true,
"name": "0xFAdb…79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
},
{
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"type": "EOA",
"isVerified": true,
"name": "0xAf0B…9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
},
{
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"type": "EOA",
"isVerified": true,
"name": "0x7408…70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 1",
"name": "Avail Multisig 1",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * Vector \n* Can upgrade **with 1d delay**\n * AvailBridgeV1 [via: TimelockController with 1d delay → ProxyAdmin]\n* Can interact with Vector\n * can freeze the Vector contract and update the list of authorized relayers \n* Can interact with AvailBridgeV1\n * manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees **with 1d delay** [via: TimelockController with 1d delay]\n* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 1d delay or with no delay** [via: TimelockController with 1d delay - or - acting directly]\n * propose transactions ",
"accounts": [
{
"address": "eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666",
"type": "Contract",
"isVerified": true,
"name": "0x7F2f…3666",
"url": "https://etherscan.io/address/0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x70a4F624A4E62C539abf0002634377b646612b1C",
"type": "EOA",
"isVerified": true,
"name": "0x70a4…2b1C",
"url": "https://etherscan.io/address/0x70a4F624A4E62C539abf0002634377b646612b1C"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
},
{
"address": "eth:0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2",
"type": "EOA",
"isVerified": true,
"name": "0xBe1D…78A2",
"url": "https://etherscan.io/address/0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2"
},
{
"address": "eth:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"type": "EOA",
"isVerified": true,
"name": "0x4983…cE4d",
"url": "https://etherscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
}
],
"discoveryDrivenData": true
},
{
"id": "SecurityCouncil",
"name": "SecurityCouncil",
"description": "A Multisig with 6/8 threshold. \nCustom Multisig implementation that has a general threshold of 6 but also specific thresholds for upgrade approvals (4) or soft freezes (3).\n* Can interact with ProtocolUpgradeHandler\n * soft freeze, hard freeze, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x59195219d1176E42f8e607e9AC114926D47f9035",
"type": "Contract",
"isVerified": true,
"name": "0x5919…9035",
"url": "https://etherscan.io/address/0x59195219d1176E42f8e607e9AC114926D47f9035"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-3-zksync-security-council"
}
],
"participants": [
{
"address": "eth:0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a"
},
{
"address": "eth:0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F"
},
{
"address": "eth:0x69462a81ba94D64c404575f1899a464F123497A2",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x69462a81ba94D64c404575f1899a464F123497A2"
},
{
"address": "eth:0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0"
},
{
"address": "eth:0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803"
},
{
"address": "eth:0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44"
},
{
"address": "eth:0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e"
},
{
"address": "eth:0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231"
}
],
"discoveryDrivenData": true
},
{
"id": "Guardians",
"name": "Guardians",
"description": "A Multisig with 5/8 threshold. \nCustom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n* Can interact with ProtocolUpgradeHandler\n * extend the legal veto period, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x600dA620Ab29F41ABC6596a15981e14cE58c86b8",
"type": "Contract",
"isVerified": true,
"name": "0x600d…86b8",
"url": "https://etherscan.io/address/0x600dA620Ab29F41ABC6596a15981e14cE58c86b8"
}
],
"chain": "ethereum",
"references": [
{
"title": "Guardians - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-4-zksync-guardians"
}
],
"participants": [
{
"address": "eth:0x015318c16AE443a20DE0A776dB06a59F0D279057",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x015318c16AE443a20DE0A776dB06a59F0D279057"
},
{
"address": "eth:0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D"
},
{
"address": "eth:0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384"
},
{
"address": "eth:0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f"
},
{
"address": "eth:0x55c671BcE13120387Ded710A1d1b80C0e3d8E857",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x55c671BcE13120387Ded710A1d1b80C0e3d8E857"
},
{
"address": "eth:0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69"
},
{
"address": "eth:0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0"
},
{
"address": "eth:0xCe7a3dFcc35602155809920Ff65e093aa726f6cf",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xCe7a3dFcc35602155809920Ff65e093aa726f6cf"
}
],
"discoveryDrivenData": true
},
{
"id": "ValidatorTimelock",
"name": "ValidatorTimelock",
"accounts": [
{
"address": "eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"type": "Contract",
"isVerified": true,
"name": "0x2e51…b776",
"url": "https://etherscan.io/address/0x2e5110cF18678Ec99818bFAa849B8C881744b776"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n* Can interact with Diamond\n * commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock ",
"discoveryDrivenData": true
},
{
"id": "SophonTransactionFilterer",
"name": "SophonTransactionFilterer",
"accounts": [
{
"address": "eth:0x9D06B34adc3026eF876e4DABb859C424DbDA3063",
"type": "Contract",
"isVerified": true,
"name": "0x9D06…3063",
"url": "https://etherscan.io/address/0x9D06B34adc3026eF876e4DABb859C424DbDA3063"
}
],
"chain": "ethereum",
"description": "A contract implementing the ITransactionFilterer interface, able to whitelist transactions based on sender- OR contractL2 (target) addresses. The whitelist is defined in AccessControl roles.\n* Can interact with Diamond\n * define addresses that can send transactions from L1 to L2 (e.g. for deposits, withdrawals, queued transactions). This is enforced in the Mailbox Facet ",
"discoveryDrivenData": true
},
{
"id": "SophonChainAdminMultisig",
"name": "SophonChainAdminMultisig",
"description": "A Multisig with 4/7 threshold. \n* Can interact with Diamond\n * administrate operator roles for this chain in the ValidatorTimelock, manage fees, apply predefined upgrades, manage censorship through a TransactionFilterer, set DA mode, migrate the chain to whitelisted settlement layers (Chain Admin role) [via: SophonZkEvmAdmin]\n* Can interact with SophonTransactionFilterer\n * manage the whitelist ",
"description": "A Multisig with 3/6 threshold. \n* Can interact with Diamond\n * administrate operator roles for this chain in the ValidatorTimelock, manage fees, apply predefined upgrades, manage censorship through a TransactionFilterer, set DA mode, migrate the chain to whitelisted settlement layers (Chain Admin role) [via: SophonZkEvmAdmin]\n* Can interact with SophonTransactionFilterer\n * manage the whitelist ",
"accounts": [
{
"address": "eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1",
"type": "Contract",
"isVerified": true,
"name": "0xe464…52d1",
"url": "https://etherscan.io/address/0xe4644b6d106A18062344c0A853666bc0B8f052d1"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x11BB5F79750de2Cc71e80cB2C59cF0a60EFFa95d",
"address": "eth:0x4BBBaCCbA75dbb482619722FFE68bBddC9CCc336",
"type": "EOA",
"isVerified": true,
"name": "0x11BB…a95d",
"url": "https://etherscan.io/address/0x11BB5F79750de2Cc71e80cB2C59cF0a60EFFa95d"
"name": "0x4BBB…c336",
"url": "https://etherscan.io/address/0x4BBBaCCbA75dbb482619722FFE68bBddC9CCc336"
},
{
"address": "eth:0x0BA5557075B4E30bA409B01797c9c78b3Ce192bF",
"address": "eth:0x2Ea9CcB15Ceb6c228786a3d4837B0bA3e9736D97",
"type": "EOA",
"isVerified": true,
"name": "0x0BA5…92bF",
"url": "https://etherscan.io/address/0x0BA5557075B4E30bA409B01797c9c78b3Ce192bF"
"name": "0x2Ea9…6D97",
"url": "https://etherscan.io/address/0x2Ea9CcB15Ceb6c228786a3d4837B0bA3e9736D97"
},
{
"address": "eth:0x3b6036d410cA018661324766680674921a8b2d89",
"type": "EOA",
"isVerified": true,
"name": "0x3b60…2d89",
"url": "https://etherscan.io/address/0x3b6036d410cA018661324766680674921a8b2d89"
},
{
"address": "eth:0x20719Abd2E63518e68D30a295388cAd6B542dCEf",
"type": "EOA",
"isVerified": true,
"name": "0x2071…dCEf",
"url": "https://etherscan.io/address/0x20719Abd2E63518e68D30a295388cAd6B542dCEf"
},
{
"address": "eth:0x14574dfC6B7aF658c5033BA95673864947956521",
"type": "EOA",
"isVerified": true,
"name": "0x1457…6521",
"url": "https://etherscan.io/address/0x14574dfC6B7aF658c5033BA95673864947956521"
},
{
"address": "eth:0x7f413262Cb811B034d077d9184b5Efda6943f2c3",
"type": "EOA",
"isVerified": true,
"name": "0x7f41…f2c3",
"url": "https://etherscan.io/address/0x7f413262Cb811B034d077d9184b5Efda6943f2c3"
},
{
"address": "eth:0xd89b0f620E0C72BD82e0447dE07FB0A0Abe01F69",
"type": "EOA",
"isVerified": true,
"name": "0xd89b…1F69",
"url": "https://etherscan.io/address/0xd89b0f620E0C72BD82e0447dE07FB0A0Abe01F69"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 2",
"name": "Avail Multisig 2",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AvailBridgeV1\n * pause the bridge ",
"accounts": [
{
"address": "eth:0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930",
"type": "Contract",
"isVerified": true,
"name": "0x1a5B…8930",
"url": "https://etherscan.io/address/0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xE458b870F2F59a49915591282f1Bb688901767AD",
"type": "EOA",
"isVerified": true,
"name": "0xE458…67AD",
"url": "https://etherscan.io/address/0xE458b870F2F59a49915591282f1Bb688901767AD"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
}
],
"discoveryDrivenData": true
},
{
"id": "ZK Foundation Multisig",
"name": "ZK Foundation Multisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0xbC1653bd3829dfEc575AfC3816D4899cd103B51c",
"type": "Contract",
"isVerified": true,
"name": "0xbC16…B51c",
"url": "https://etherscan.io/address/0xbC1653bd3829dfEc575AfC3816D4899cd103B51c"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52",
"type": "EOA",
"isVerified": true,
"name": "0xA10f…bE52",
"url": "https://etherscan.io/address/0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52"
},
{
"address": "eth:0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222",
"type": "EOA",
"isVerified": true,
"name": "0x56B3…2222",
"url": "https://etherscan.io/address/0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222"
},
{
"address": "eth:0x441e5c8910Ef39996B2D01499509861228cbc2d1",
"type": "EOA",
"isVerified": true,
"name": "0x441e…c2d1",
"url": "https://etherscan.io/address/0x441e5c8910Ef39996B2D01499509861228cbc2d1"
},
{
"address": "eth:0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709",
"type": "EOA",
"isVerified": true,
"name": "0x0B2E…4709",
"url": "https://etherscan.io/address/0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709"
},
{
"address": "eth:0x610e45F112e0c8a9aA7137677C83E7A198A1b991",
"type": "EOA",
"isVerified": true,
"name": "0x610e…b991",
"url": "https://etherscan.io/address/0x610e45F112e0c8a9aA7137677C83E7A198A1b991"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGateway\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"accounts": [
{
"address": "eth:0x78325837C780788Ce6afF7883FdF68890010Fe30",
"type": "EOA",
"isVerified": true,
"name": "0x7832…Fe30",
"url": "https://etherscan.io/address/0x78325837C780788Ce6afF7883FdF68890010Fe30",
"displayName": "EOA 1"
},
{
"address": "eth:0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA",
"type": "EOA",
"isVerified": true,
"name": "0xCD0b…55dA",
"url": "https://etherscan.io/address/0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* A Validator - acting directly",
"discoveryDrivenData": true
},
{
"id": "ProtocolTimelockController(L2->L1)",
"name": "ProtocolTimelockController(L2->L1)",
"accounts": [
{
"address": "eth:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"type": "EOA",
"isVerified": true,
"name": "0x085b…c714",
"url": "https://etherscan.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714",
"displayName": "ProtocolTimelockController(L2->L1)"
}
],
"chain": "ethereum",
"description": "* Can interact with ProtocolUpgradeHandler\n * start (queue) upgrades ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xe14828E4405239dD331F194F1B7883eeD73bCBF3",
"type": "EOA",
"isVerified": true,
"name": "0xe148…CBF3",
"url": "https://etherscan.io/address/0xe14828E4405239dD331F194F1B7883eeD73bCBF3",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with SophonZkEvmAdmin\n * set the conversion factor for gas token deposits ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x50B238788747B26c408681283D148659F9da7Cf9",
"type": "EOA",
"isVerified": true,
"name": "0x50B2…7Cf9",
"url": "https://etherscan.io/address/0x50B238788747B26c408681283D148659F9da7Cf9",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with SophonTransactionFilterer\n * call requestL2Transaction() with any target/calldata (whitelisted superuser sender) \n * manage the whitelist ",
"discoveryDrivenData": true
},
{
"id": "EOA-5",
"name": "EOA 5",
"accounts": [
{
"address": "eth:0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"type": "EOA",
"isVerified": true,
"name": "0x27BF…787D",
"url": "https://etherscan.io/address/0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with Vector\n * it is a ‘Relayer’ and can call commitHeaderRange() to commit block ranges to the Vector contract. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"discoveryDrivenData": true
}
]
},
"zksync2": {
"roles": [],
"actors": [
{
"id": "ZkProtocolGovernor",
"name": "ZkProtocolGovernor",
"accounts": [
{
"address": "zksync:0x76705327e682F2d96943280D99464Ab61219e34f",
"type": "Contract",
"isVerified": true,
"name": "0x7670…e34f",
"url": "https://explorer.zksync.io/address/0x76705327e682F2d96943280D99464Ab61219e34f"
}
],
"chain": "zksync2",
"description": "Main Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for protocol upgrade proposals (ZIPs) that start on ZKsync Era, go through Ethereum Layer 1 and can - from there - target all L1 and L2 contracts. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ProtocolTimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: ProtocolTimelockController]\n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkTokenGovernor",
"name": "ZkTokenGovernor",
"accounts": [
{
"address": "zksync:0xb83FF6501214ddF40C91C9565d095400f3F45746",
"type": "Contract",
"isVerified": true,
"name": "0xb83F…5746",
"url": "https://explorer.zksync.io/address/0xb83FF6501214ddF40C91C9565d095400f3F45746"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Token Program Proposals (TPPs) usually targeting the ZK token on ZKsync Era. At least 21M ZK tokens are necessary to start a proposal (for delegates) and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ZkToken\n * grant the MINTER_ROLE to arbitrary addresses, thus controlling the minting of the ZK token **with 3d delay** [via: ZkTokenTimelockController with 3d delay]\n* Can interact with ZkTokenTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: ZkTokenTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkGovOpsGovernor",
"name": "ZkGovOpsGovernor",
"accounts": [
{
"address": "zksync:0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160",
"type": "Contract",
"isVerified": true,
"name": "0xEEEa…b160",
"url": "https://explorer.zksync.io/address/0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Governance Advisory Proposals (GAPs) that are not executable onchain. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with GovOpsTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: GovOpsTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "Guardians_l2Alias",
"name": "Guardians_l2Alias",
"accounts": [
{
"address": "zksync:0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"type": "EOA",
"isVerified": true,
"name": "0x711e…97c9",
"url": "https://explorer.zksync.io/address/0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"displayName": "Guardians_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) \n* Can interact with ZkGovOpsGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) ",
"discoveryDrivenData": true
},
{
"id": "ZKFoundationMultisig_l2Alias",
"name": "ZKFoundationMultisig_l2Alias",
"accounts": [
{
"address": "zksync:0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"type": "EOA",
"isVerified": true,
"name": "0xcd27…C62D",
"url": "https://explorer.zksync.io/address/0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"displayName": "ZKFoundationMultisig_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * make direct proposals without owning ZK tokens. In propose-guarded mode, this address is the ONLY allowed proposer. Propose-guarded mode is currently set to false ",
"discoveryDrivenData": true
},
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"accounts": [
{
"address": "zksync:0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"type": "EOA",
"isVerified": true,
"name": "0xF41E…6bc4",
"url": "https://explorer.zksync.io/address/0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"displayName": "ProtocolUpgradeHandler_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can upgrade **with no delay**\n * ZkToken [via: ZkTokenProxyAdmin]\n* Can interact with ZkToken\n * control all roles in the ZkToken access control, including the minter roles ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1779962479,
"baseTimestamp": 1780913579,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
null
1780916919
+3 -0
+3 -0
{
"creator": "Succinct",
"projectsForTvs": [
{
"projectId": "fluent",
"sinceTimestamp": 1776599267
},
{
"projectId": "celo",
"sinceTimestamp": 1771445567
},
{
"projectId": "vector",
"sinceTimestamp": 1771445567
},
{
"projectId": "sophon",
"sinceTimestamp": 1771445567
},
{
"projectId": "lens",
"sinceTimestamp": 1771445567
},
{
"projectId": "galxegravity",
"sinceTimestamp": 1771445567,
"untilTimestamp": 1763420400
},
{
"projectId": "rari",
"sinceTimestamp": 1771445567
},
{
"projectId": "blobstream",
"sinceTimestamp": 1771445567
},
{
"projectId": "molten",
"sinceTimestamp": 1771445567
},
{
"projectId": "winr",
"sinceTimestamp": 1771445567
},
{
"projectId": "phala",
"sinceTimestamp": 1771445567
},
{
"projectId": "kroma",
"sinceTimestamp": 1771445567
},
{
"projectId": "taiko",
"sinceTimestamp": 1774964687
},
{
"projectId": "mantle",
"sinceTimestamp": 1778001356
},
{
"projectId": "morph",
"sinceTimestamp": 1779354407
},
{
"projectId": "base",
"sinceTimestamp": 1779825599
},
{
"projectId": "appchain",
"sinceTimestamp": 1780326419
},
{
"projectId": "apechain",
"sinceTimestamp": 1780346337
}
],
"proofSystemInfo": "\n## Description\n\nSP1 Hypercube is the latest Succint's 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 Hypercube provides 98 bits of proven security, as per [Ethereum Foundation’s soundcalc evaluation](https://github.com/ethereum/soundcalc/blob/main/reports/sp1.md).\n\n## Proof system\n\nSP1 Hypercube is an iteration of the previous zkVM version, SP1 Turbo, introducing architectural changes that improve prover performance and memory efficiency.\n\nHypercube proves execution of a 64-bit RISC-V VM using several ZK circuits, or chips, connected by lookup arguments ([LogUp based on GKR protocol](https://docs.succinct.xyz/docs/sp1/hypercube/logupgkr)). VM execution trace is split into several shards of size approximately 2^22, that could be proven in parallel with a STARK proving system. Additional arguments prove memory consistency across shards. \n\nThe 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### Hypercube vs. Turbo\n\nProving time and memory optimizations of SP1 Hypercube are based on several design improvements compared to SP1 Turbo.\n\nHypercube implements a [multilinear polynomial](https://github.com/succinctlabs/sp1/tree/v6.0.0/slop/crates/multilinear) STARK compared to univariate polynomials in Turbo. Multilinear polynomial based proving systems are more efficient than univariate because manipulating them reduces usage of log-linear FFT algorithm.\n\nMultilinear polynomials also allow Hypercube to innovate on a polynomial commitment scheme, implementing [Jagged PCS](https://docs.succinct.xyz/docs/sp1/hypercube/jagged) (defined in [this preprint](https://eprint.iacr.org/2025/917)). Jagged PCS allows efficient packing of computation traces of zkVM chips with different lengths, optimizing the prover memory requirement. More efficient LogUp based on GKR is also made possible because of multilinear polynomials.\n\n### Recursion circuits\n\nSP1 Hypercube 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\nFirst, proofs for correctness of separate shards are generated. These shards may have different trace shape, so in the next step they are normalized. Finally, normalized shard proofs are recursively compressed in batches of 3-4 to a single zkVM proof. For further details see [this page](https://docs.succinct.xyz/docs/sp1/hypercube/recursion).\n\n### Final wrap\n\nSP1 Hypercube 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 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 (todo: link to trusted setups section).\n \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": "RISCV64",
"type": "ISA",
"name": "RISC-V 64bit",
"description": "Free and open-source universal 64-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."
},
{
"id": "KoalaBear",
"type": "Field",
"name": "Koala Bear",
"description": "Prime field of order p = 2**31 - 2**24 + 1."
}
],
"finalWrap": [
{
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
{
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
{
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
{
"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",
"participantCount": 176,
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": " \nAztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \nIt included 176 participants and was publicly open for participation.\n\n- Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n- Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n- Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition).\n "
},
{
"proofSystem": {
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
"id": "SP1HypercubeGroth16_v6_1_0",
"name": "SP1 Hypercube v6.1.0 Groth16 circuit-specific setup",
"participantCount": 18,
"risk": "red",
"shortDescription": "Trusted setup ceremony for SP1 Hypercube (release v6.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was organized by Succinct and includes 18 participants from 8 different organizations, without public calls to participate.",
"longDescription": "\nSP1 Hypercube v6.1.0 Groth16 trusted setup builds on top of the first 54 contributions to the [Perpetual Powers of Tau](https://github.com/privacy-ethereum/perpetualpowersoftau) ceremony as its phase 1 setup.\n\nPhase 2 of the ceremony was run among 18 participants affiliated with Etherealize, Polygon, OP Labs, Alpen Labs, Offchain Labs, Succinct, Coinbase, Across Protocol. It generated circuit-specific setup parameters for Groth16 wrapper of SP1 Hypercube zkVM.\n\n- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: .\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): .\n "
},
{
"proofSystem": {
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
"id": "SP1HypercubeGroth16",
"name": "SP1 Hypercube Groth16 circuit-specific setup",
"participantCount": 12,
"risk": "red",
"shortDescription": "Trusted setup ceremony for SP1 Hypercube (release v6.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was organized by Succinct and includes 12 participants from 7 different organizations, without public calls to participate.",
"longDescription": "\nSP1 Hypercube v6.0.0 Groth16 trusted setup builds on top of the first 54 contributions to the [Perpetual Powers of Tau](https://github.com/privacy-ethereum/perpetualpowersoftau) ceremony as its phase 1 setup.\n\nPhase 2 of the ceremony was run among 12 participants affiliated with Across Protocol, OP Labs, Offchain Labs, Succinct Labs, Conduit, Ethrealize and 1 independent participant. It generated circuit-specific setup parameters for Groth16 wrapper of SP1 Hypercube zkVM.\n\n- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: (link is updated and points to a different ceremony now).\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): .\n "
}
],
"verifierHashes": [
{
"hash": "0x4388a21c687fdd5f218d7e3d13190cac4c5355818d3605fd5fb811df468ee696",
"name": "SP1 Hypercube Groth16 v6.1.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.1.0/crates/prover",
"proofSystem": {
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
"knownDeployments": [
{
"address": "eth:0xb69f2584CBcFf99a58C4e7002E8b89Af54a6f4e2"
},
{
"address": "eth:0xD9d5C8456a168Dd25561064F47bF116111131B1D"
},
{
"address": "arb1:0xD9d5C8456a168Dd25561064F47bF116111131B1D"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "\n The regeneration process consumed around 70 GiB of memory on the peak.\n \n 1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n \n ```\n sudo apt update\n sudo apt install build-essential golang-go protobuf-compiler\n \n curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n . .cargo/env\n cargo install --debug --locked cargo-make\n \n curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\n sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\n sudo apt install -y docker-ce\n sudo usermod -aG docker ${USER}\n \n curl -L https://sp1up.succinct.xyz/ | bash\n source ~/.bashrc\n sp1up\n ```\n \n 2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to build groth16 circuit file.\n \n ```\n git clone https://github.com/succinctlabs/sp1.git\n cd sp1/crates/prover\n git checkout v6.1.0 # commit should be d454975ac7c1126097e36eceda9bce2cb9899da4\n export SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n \n make build-circuits\n ```\n \n This script will generate `groth16_circuit.bin` file in the `prover/build/groth16` directory, however it will not generate correct prover and verifier keys.\n \n 3. Generate correct pk and vk using the correct SP1 trusted setup. This will require [semaphore-gnark-11](https://github.com/succinctlabs/semaphore-gnark-11/tree/main) repo.\n \n ```\n cd\n git clone https://github.com/succinctlabs/semaphore-gnark-11.git # tested on commit hash 6d6ebc3608e609ec879e9ba99abee6b6b97d937d\n cd semaphore-gnark-11\n # Download the trusted setup transcript\n curl \"https://sp1-circuits.s3-us-east-2.amazonaws.com/v6.1.0-trusted-setup.tar.gz\" -o trusted-setup.tar.gz\n \n # Extract trusted setup transcript.\n tar -xzf trusted-setup.tar.gz\n \n # Build the binary.\n go build\n \n # Generate keys. They are outputted to the files pk and vk in the root directory.\n ./semaphore-gnark-11 key trusted-setup/phase1 trusted-setup/phase2-17 trusted-setup/evals /path/to/sp1/crates/prover/build/groth16/groth16_circuit.bin\n ```\n The last step will take several hours to complete.\n \n 4. Compute the hash of generated `vk` file: `shasum vk -a 256`.\n "
},
{
"hash": "0x0e78f4db7a6771a3a6a7d9c3b0de6fe73d58781368967a7fe84d87aefffec896",
"name": "SP1 Hypercube Groth16 v6.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.0.0/crates/prover",
"proofSystem": {
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
"knownDeployments": [
{
"address": "eth:0x99A74A05a0FaBEB217C1A329b0dac59a1FA52508"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "\n The regeneration process consumed around 70 GiB of memory on the peak.\n \n 1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n \n ```\n sudo apt update\n sudo apt install build-essential golang-go protobuf-compiler\n \n curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n . .cargo/env\n cargo install --debug --locked cargo-make\n \n curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\n sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\n sudo apt install -y docker-ce\n sudo usermod -aG docker ${USER}\n \n curl -L https://sp1up.succinct.xyz/ | bash\n source ~/.bashrc\n sp1up\n ```\n \n 2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to build groth16 circuit file.\n \n ```\n git clone https://github.com/succinctlabs/sp1.git\n cd sp1/crates/prover\n git checkout v6.0.0 # commit should be f87f8d6ff005d542db22e241928319f5e96a4609\n export SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n \n make build-circuits\n ```\n \n This script will generate `groth16_circuit.bin` file in the `prover/build/groth16` directory, however it will not generate correct prover and verifier keys.\n \n 3. Generate correct pk and vk using the correct SP1 trusted setup. This will require [semaphore-gnark-11](https://github.com/succinctlabs/semaphore-gnark-11/tree/main) repo.\n \n ```\n cd\n git clone https://github.com/succinctlabs/semaphore-gnark-11.git # tested on commit hash 6d6ebc3608e609ec879e9ba99abee6b6b97d937d\n cd semaphore-gnark-11\n # Download the trusted setup transcript\n curl \"https://sp1-circuits.s3-us-east-2.amazonaws.com/v6.0.0-trusted-setup.tar.gz\" -o trusted-setup.tar.gz\n \n # Extract trusted setup transcript.\n tar -xzf trusted-setup.tar.gz\n \n # Build the binary.\n go build\n \n # Generate keys. They are outputted to the files pk and vk in the root directory.\n ./semaphore-gnark-11 key trusted-setup/phase1 trusted-setup/phase2-11 trusted-setup/evals /path/to/sp1/crates/prover/build/groth16/groth16_circuit.bin\n ```\n The last step will take several hours to complete.\n \n 4. Compute the hash of generated `vk` file: `shasum vk -a 256`.\n "
},
{
"hash": "0x5a093a2fcb46394f5cadfe55c44d4d572fad9cec7aeb38026b0278322ef07fac",
"name": "SP1 Hypercube Plonk v6.1.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.1.0/crates/prover",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
},
{
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
},
{
"address": "eth:0x9774CE99E8Ab3f13582bC6c2Bd2832e5A25C4624"
},
{
"address": "eth:0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "\nThe regeneration process consumed around 100 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\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\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.1.0 # commit should be d454975ac7c1126097e36eceda9bce2cb9899da4\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": "0xbb1a6f2930e94bfe8b35e794faf43133214534a17d2ad8e51358cad437b3c317",
"name": "SP1 Hypercube Plonk v6.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.0.0/crates/prover",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C"
},
{
"address": "arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "\n The regeneration process consumed around 70 GiB of memory on the peak.\n \n 1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n \n ```\n sudo apt update\n sudo apt install build-essential golang-go protobuf-compiler\n \n curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n . .cargo/env\n cargo install --debug --locked cargo-make\n \n curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\n sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\n sudo apt install -y docker-ce\n sudo usermod -aG docker ${USER}\n \n curl -L https://sp1up.succinct.xyz/ | bash\n source ~/.bashrc\n sp1up\n ```\n \n 2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n \n ```\n git clone https://github.com/succinctlabs/sp1.git\n cd sp1/crates/prover\n git checkout v6.0.0 # commit should be f87f8d6ff005d542db22e241928319f5e96a4609\n export SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n \n make build-circuits\n ```\n \n The script will generate Plonk verifier smart contract with verification keys and the verifier hash in `build/plonk` dir.\n "
}
]
}
+2 -18
+2 -18
{
"creator": "Succinct",
"projectsForTvs": [
{
"projectId": "fluent",
"sinceTimestamp": 1776599267
},
{
"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,
"untilTimestamp": 1763420400
},
{
"projectId": "galxegravity",
"sinceTimestamp": 1745880540,
"untilTimestamp": 1763420400
},
{
"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": "ethscriptions",
"sinceTimestamp": 1767735587
},
{
"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": "morph",
"sinceTimestamp": 1737359447
"sinceTimestamp": 1737359447,
"untilTimestamp": 1780559831
},
{
"projectId": "gpt",
"sinceTimestamp": 1753882500
},
{
"projectId": "astarzkevm",
"sinceTimestamp": 1753882500
},
{
"projectId": "witness",
"sinceTimestamp": 1753882500
},
{
"projectId": "kroma",
"sinceTimestamp": 1739228400
},
{
"projectId": "haust",
"sinceTimestamp": 1756808195
},
{
"projectId": "celo",
"sinceTimestamp": 1765324800
},
{
"projectId": "appchain",
"sinceTimestamp": 1776165024,
"untilTimestamp": 1780326419
}
],
"proofSystemInfo": "\n ## Description\n\n SP1 Turbo 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 based on unproven proximity gaps conjecture](https://docs.succinct.xyz/docs/v5/sp1/security/security-model#conjectures-for-fris-security), so the actual security is likely lower.\n\n ## Proof system\n\n SP1 Turbo proves execution of a 32 bit RISC-V VM (RV32IM) 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. See [here](https://docs.succinct.xyz/docs/v5/sp1/security/rv32im-implementation) for more details on the exact RISC-V standard implemented. 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/v5/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/v5/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/v5/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": "RISCV32",
"type": "ISA",
"name": "RISC-V 32bit",
"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",
"participantCount": 176,
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": " \nAztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \nIt included 176 participants and was publicly open for participation.\n\n- Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n- Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n- Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition).\n "
},
{
"proofSystem": {
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
"id": "SP1TurboGroth16",
"name": "SP1 Turbo Groth16 circuit-specific setup",
"participantCount": 7,
"risk": "red",
"shortDescription": "Succinct's internally run trusted setup for SP1 Turbo (release v5.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was run among 7 contributors to the SP1 project without public calls to participate.",
"longDescription": "\nSP1 Turbo Groth16 trusted setup builds on top of the first 54 contributions to the [Perpetual Powers of Tau](https://github.com/privacy-ethereum/perpetualpowersoftau) ceremony as its phase 1 setup.\n\nPhase 2 of the 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- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: [https://docs.succinct.xyz/docs/v5/sp1/security/security-model#options](https://docs.succinct.xyz/docs/v5/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",
"name": "SP1 Turbo Plonk v5.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v5.0.0/crates/prover",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
},
{
"address": "eth:0xFF5Adab685362DC4C33536a65aF5873738D1216B"
},
{
"address": "arb1:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
},
{
"address": "eth:0x059adC0Db833f7cCb12dC41BE0017626337AfA63"
},
{
"address": "eth:0x294a1Ee119C4B2510530572481A6a50892A9ae9f"
}
],
"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",
"name": "SP1 Turbo Groth16 v5.0.0",
"proofSystem": {
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5"
},
{
"address": "arb1:0xC513d6E8C8f915B1DA2f6eAC4C6d755ff3d5f21D"
}
],
"verificationStatus": "unsuccessful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "\nWe performed the following steps, which according to the Succinct team should have lead to a successful regeneration of the verifier's hash.\nHowever these steps produced a verifier smart contract with `VERIFIER_HASH = 0xf7ba6320608dadd905f3483d51c2fa0fb55473e3136bdfb37c96a10f158ab9fe`, which differs from the value onchain. \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 "
},
{
"hash": "0xffea2d2e12ed24da258af874d77eee7ee91a1e050ee197052908089e57681e67",
"name": "SP1 Turbo Plonk Morph",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v5.0.0/crates/prover",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x045d4BC73Bd1918192f34e98532A5272Ef620423"
}
],
"verificationStatus": "notVerified"
}
]
}
+1 -1
+1 -1
{
"baseTimestamp": 1779962529,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1779962479,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1779962479,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1779962479,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1779962479,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1779962479,
"baseTimestamp": 1780913202,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}