77f62933 (main)
and
9d70041a (PR)
+34 -20
+1 -1
{
"redWarning": {
"text": "Critical contract references can be changed by an EOA which could result in the loss of all funds.",
"text": "Critical contracts can be upgraded by an EOA which could result in the loss of all funds.",
"detailAnchor": "permissions"
},
"unverifiedContracts": [],
"yellowWarning": "Apex Pro and the associated StarkEx instances [were sunset](https://www.apex.exchange/blog/detail/ApeX-Pro-Sunset-Delisting-Timeline-for-Trading-Pairs)."
}
+10 -10
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "ApexAdminMultisig",
"name": "ApexAdminMultisig",
"description": "A Multisig with 2/2 threshold. \n* Can upgrade **with 14d delay**\n * StarkPerpetualUSDC [via: - acting directly with 14d delay]\n* Can interact with StarkPerpetualUSDC\n * manage the token admin role \n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"description": "A Multisig with 2/2 threshold. \n* Can upgrade **with no delay or with 14d delay**\n * StarkPerpetualUSDC - or [via: - acting directly with 14d delay]\n* Can interact with StarkPerpetualUSDC\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), unfreeze the exchange and manage the governor set ",
"accounts": [
{
"address": "eth:0xC532d2976209A56DdF4a99B844130f7c0daCa7B6",
"type": "Contract",
"isVerified": true,
"name": "0xC532…a7B6",
"url": "https://etherscan.io/address/0xC532d2976209A56DdF4a99B844130f7c0daCa7B6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x22c89137525b593Dd2A18434348b550ffA5984Fe",
"type": "EOA",
"isVerified": true,
"name": "0x22c8…84Fe",
"url": "https://etherscan.io/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe"
},
{
"address": "eth:0xef75e1199B0599BA823b7770AcE8eb34864a1D55",
"type": "EOA",
"isVerified": true,
"name": "EOA 3",
"url": "#EOA-3"
}
],
"discoveryDrivenData": true
},
{
"id": "SHARP Multisig",
"name": "SHARP Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with 8d delay**\n * SHARPVerifierCallProxy [via: - acting directly with 8d delay]\n* Can interact with SHARPVerifierCallProxy\n * manage the upgrade admin amd access control roles \n * set custom implementations for specific operators (changes the verifier based on who calls it) ",
"accounts": [
{
"address": "eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4",
"type": "Contract",
"isVerified": true,
"name": "0x21F9…AEc4",
"url": "https://etherscan.io/address/0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xebc8416179fE90854fe8B3f774801165572cfD7F",
"type": "EOA",
"isVerified": true,
"name": "0xebc8…fD7F",
"url": "https://etherscan.io/address/0xebc8416179fE90854fe8B3f774801165572cfD7F"
},
{
"address": "eth:0x955B978F3ee7818dA71fA25c676062E6BC462Fec",
"type": "EOA",
"isVerified": true,
"name": "0x955B…2Fec",
"url": "https://etherscan.io/address/0x955B978F3ee7818dA71fA25c676062E6BC462Fec"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A",
"address": "eth:0x53c6Ec9640761c669B800088F097E01A8207Ac8b",
"type": "EOA",
"isVerified": true,
"name": "0x5751…f21A",
"url": "https://etherscan.io/address/0x5751a83170BeA11fE7CdA5D599B04153C021f21A",
"name": "0x53c6…Ac8b",
"url": "https://etherscan.io/address/0x53c6Ec9640761c669B800088F097E01A8207Ac8b",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkPerpetualUSDC\n * manage supported tokens \n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability \n* Can interact with StarkPerpetualUSDT\n * manage supported tokens \n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability ",
"description": "* Can upgrade **with no delay or with 14d delay**\n * StarkPerpetualUSDT - or [via: - acting directly with 14d delay]\n* Can interact with StarkPerpetualUSDT\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), unfreeze the exchange and manage the governor set ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x53c6Ec9640761c669B800088F097E01A8207Ac8b",
"address": "eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A",
"type": "EOA",
"isVerified": true,
"name": "0x53c6…Ac8b",
"url": "https://etherscan.io/address/0x53c6Ec9640761c669B800088F097E01A8207Ac8b",
"name": "0x5751…f21A",
"url": "https://etherscan.io/address/0x5751a83170BeA11fE7CdA5D599B04153C021f21A",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with 14d delay**\n * StarkPerpetualUSDT [via: - acting directly with 14d delay]\n* Can interact with StarkPerpetualUSDT\n * manage the token admin role \n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"description": "* Can upgrade **with no delay**\n * FinalizableGpsFactAdapterUSDT \n * FinalizableGpsFactAdapterUSDC \n* Can interact with StarkPerpetualUSDC\n * manage supported tokens \n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability \n* Can interact with StarkPerpetualUSDT\n * manage supported tokens \n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xef75e1199B0599BA823b7770AcE8eb34864a1D55",
"type": "EOA",
"isVerified": true,
"name": "0xef75…1D55",
"url": "https://etherscan.io/address/0xef75e1199B0599BA823b7770AcE8eb34864a1D55",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "Member of ApexAdminMultisig.\n* Can upgrade **with 14d delay**\n * StarkPerpetualUSDC [via: - acting directly with 14d delay]\n* Can interact with StarkPerpetualUSDC\n * manage the token admin role \n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"description": "Member of ApexAdminMultisig.\n* Can upgrade **with no delay or with 14d delay**\n * StarkPerpetualUSDC - or [via: - acting directly with 14d delay]\n* Can interact with StarkPerpetualUSDC\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), unfreeze the exchange and manage the governor set ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x552aA2EBA4B0c5b9B8b4b22507189a7af4198169",
"type": "EOA",
"isVerified": true,
"name": "0x552a…8169",
"url": "https://etherscan.io/address/0x552aA2EBA4B0c5b9B8b4b22507189a7af4198169",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkPerpetualUSDT\n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability ",
"discoveryDrivenData": true
},
{
"id": "EOA-5",
"name": "EOA 5",
"accounts": [
{
"address": "eth:0x78e802d42Bbc1834f962A11B54e0F8e07f52d4Fb",
"type": "EOA",
"isVerified": true,
"name": "0x78e8…d4Fb",
"url": "https://etherscan.io/address/0x78e802d42Bbc1834f962A11B54e0F8e07f52d4Fb",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkPerpetualUSDC\n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability ",
"discoveryDrivenData": true
}
]
}
}
+23 -9
{
"addresses": {
"ethereum": [
{
"name": "CommitteeUSDC",
"isVerified": true,
"address": "eth:0x23Cab3CF1aa7B929Df5e9f3712aCA3A6Fb9494E4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Data Availability Committee (DAC) contract verifying and storing data availability claims from DAC Members (via a multisignature check). The threshold of valid signatures is 3.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x23Cab3CF1aa7B929Df5e9f3712aCA3A6Fb9494E4#code"
},
{
"name": "CommitteeUSDT",
"isVerified": true,
"address": "eth:0x7249082BfAFE9BCA502d38a686Ef3df37A0cf800",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Data Availability Committee (DAC) contract verifying and storing data availability claims from DAC Members (via a multisignature check). The threshold of valid signatures is 3.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7249082BfAFE9BCA502d38a686Ef3df37A0cf800#code"
},
{
"name": "StarkPerpetualUSDC",
"isVerified": true,
"address": "eth:0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb",
"upgradeability": {
"proxyType": "StarkWare diamond",
"admins": [
"eth:0xef75e1199B0599BA823b7770AcE8eb34864a1D55",
"eth:0xC532d2976209A56DdF4a99B844130f7c0daCa7B6"
],
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1660252039,
"transactionHash": "0x6c8b4e4fc51235fe438779e444c7f6b8332ad8e3ea371cee73974ca4c5b9de8f",
"implementations": [
"eth:0x67bC2461000cfbe67e9b623EC8B460168BdEC5F0",
"eth:0xfbea22FeB369DB10C0d3a2aAa8F4939E76815f12",
"eth:0x8f62a4a85B64dF803FDB644a1c7F595BFC6fF8dA",
"eth:0xBdc6c96D298408415Ac70D334BedEbc8862B3C41",
"eth:0xf1f087A5da4c5938E3ee091Edeea4f773fe203CA"
]
},
{
"timestamp": 1661262665,
"transactionHash": "0x4d944148289a3ce02380ec7819dcddd59c6c75bc53b98a4442a174d5a92ff14f",
"implementations": [
"eth:0x67bC2461000cfbe67e9b623EC8B460168BdEC5F0",
"eth:0xfbea22FeB369DB10C0d3a2aAa8F4939E76815f12",
"eth:0x8f62a4a85B64dF803FDB644a1c7F595BFC6fF8dA",
"eth:0xBdc6c96D298408415Ac70D334BedEbc8862B3C41",
"eth:0xf1f087A5da4c5938E3ee091Edeea4f773fe203CA"
]
},
{
"timestamp": 1671697055,
"transactionHash": "0x57d264627a2d18fbee29c402a3e48fe53c496ce51ea140adc194ab2cc9b235f4",
"implementations": [
"eth:0xdD813397b79f8df581eEb0c4B8aB72304c528396",
"eth:0x533a7f4bE5453513049EB94A2b115F2CcE161dce",
"eth:0x564EA75a26Dc0Bb5c5033B4752f88953A25AD058",
"eth:0xdD5f42B087C1D2F73a2b443249b7D3DbE148a859",
"eth:0x34E7cfedF99995A47B3e3D0AB88ba67072B55035"
]
},
{
"timestamp": 1672986575,
"transactionHash": "0x40b1d2a6419d7e69d4a0d7f779548c138795c3649099f68fc5b2d7e6dca9b28b",
"implementations": [
"eth:0xdD813397b79f8df581eEb0c4B8aB72304c528396",
"eth:0x533a7f4bE5453513049EB94A2b115F2CcE161dce",
"eth:0x564EA75a26Dc0Bb5c5033B4752f88953A25AD058",
"eth:0xdD5f42B087C1D2F73a2b443249b7D3DbE148a859",
"eth:0x34E7cfedF99995A47B3e3D0AB88ba67072B55035"
]
},
{
"timestamp": 1739785163,
"transactionHash": "0x7c6ca54630321bc1f0e2ad0b68972ec3f6efaab449f09839ef612f90d4292bdd",
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
]
}
],
"description": "Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n* Roles:\n * **admin**: ApexAdminMultisig, EOA 3\n * **operators**: EOA 1, EOA 5\n * **tokenAdmins**: EOA 1",
"description": "Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n* Roles:\n * **admin**: ApexAdminMultisig, EOA 3\n * **operators**: EOA 2, EOA 5\n * **tokenAdmins**: EOA 2",
"upgradableBy": [
{
"name": "ApexAdminMultisig",
"delay": "14d"
"delay": "no"
},
{
"id": "EOA-3",
"name": "EOA 3",
"delay": "14d"
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb#code"
},
{
"name": "StarkPerpetualUSDT",
"isVerified": true,
"address": "eth:0xe53A6eD882Eb3f90cCe0390DDB04c876C5482E6b",
"upgradeability": {
"proxyType": "StarkWare diamond",
"admins": [
"eth:0x53c6Ec9640761c669B800088F097E01A8207Ac8b"
],
"implementations": [
"eth:0x3167617e913BF59afb90e5ec1A7B32D4Ea03eae4",
"eth:0x5a50e280883B1FB39Aa04Eb263BCA47630D17D8E",
"eth:0x3F3A131caB7eb5b4EAE9497Bebb9E06bE80F2809",
"eth:0x5BfbE850d18b73ed98FB830e0A5E9F4970Bb93dA",
"eth:0x229BbdF97eBc4993efe1433c0ae4A0bE79A4fe21"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1697631587,
"transactionHash": "0x27741474cceaf88b1e1c14ae8b6f39e6f538352db3d214e3c74abbf812dcb8d9",
"implementations": [
"eth:0x3167617e913BF59afb90e5ec1A7B32D4Ea03eae4",
"eth:0x5a50e280883B1FB39Aa04Eb263BCA47630D17D8E",
"eth:0x3F3A131caB7eb5b4EAE9497Bebb9E06bE80F2809",
"eth:0x5BfbE850d18b73ed98FB830e0A5E9F4970Bb93dA",
"eth:0x229BbdF97eBc4993efe1433c0ae4A0bE79A4fe21"
]
},
{
"timestamp": 1701185207,
"transactionHash": "0xa56eaf93de66cd491d4e4ca0997883d927848861429ba5b3ae64b6652d4cee52",
"implementations": [
"eth:0x3167617e913BF59afb90e5ec1A7B32D4Ea03eae4",
"eth:0x5a50e280883B1FB39Aa04Eb263BCA47630D17D8E",
"eth:0x3F3A131caB7eb5b4EAE9497Bebb9E06bE80F2809",
"eth:0x5BfbE850d18b73ed98FB830e0A5E9F4970Bb93dA",
"eth:0x229BbdF97eBc4993efe1433c0ae4A0bE79A4fe21"
]
}
],
"description": "Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n* Roles:\n * **admin**: EOA 2\n * **operators**: EOA 1, EOA 4\n * **tokenAdmins**: EOA 1",
"description": "Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n* Roles:\n * **admin**: EOA 1\n * **operators**: EOA 2, EOA 4\n * **tokenAdmins**: EOA 2",
"upgradableBy": [
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "14d"
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe53A6eD882Eb3f90cCe0390DDB04c876C5482E6b#code"
},
{
"name": "SHARPVerifierCallProxy",
"isVerified": true,
"address": "eth:0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
],
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1635080785,
"transactionHash": "0x80ebb7a22a207d00e26464db2f8a719d43eb3b836740a693aad13d5ef922f5e4",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1651510161,
"transactionHash": "0x604e235c6207b7909f6fc8dc0bd86b410e935dcf2f6f6bd37a5567a89379353a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1659869409,
"transactionHash": "0xc31b74237a0c68aa1b95fe2ed28ad54cf6d7df42a8beab1ea947532c95dda20a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1678106063,
"transactionHash": "0xbaa8ffb1b7e5177dbf75de753b9b2ff2fc313b244ff910cfd6d7f1f6254b6e1a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1708939523,
"transactionHash": "0x31e3caf3940dde662a1e98580259f79963dc5e098793b6519311e201d4e19312",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1708939523,
"transactionHash": "0x31e3caf3940dde662a1e98580259f79963dc5e098793b6519311e201d4e19312",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1722161267,
"transactionHash": "0x7c71592ea4c455371365d843f1a21bbf647aad7d6fae12f7187650ce24805f00",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1722197315,
"transactionHash": "0x4b25445a8e86b4620b9a19f747122b518d8973975ea73aa474b210395e277b66",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1747066175,
"transactionHash": "0x0764cd09cc5c9a96b151dd222bf14b9c33111c80bdddf27721a6406f4c0e1f3f",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1760862467,
"transactionHash": "0x7b4a25af246b28b6d5bed86942696273a84e57abc629b83072be370df2bdb797",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1765192091,
"transactionHash": "0xed93cf713d33ac63297d8c7e2eafc0d9f277b718b4074600536eb9a4205bcb81",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1769954759,
"transactionHash": "0x257cfdefacd18f0c221b1e486ee002cb974d14bb292884dfaf7f5aa987cc7170",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1777465247,
"transactionHash": "0xf088946bc461774cf86ce348fcee4d52bb27ebf049d99f3fab806226053b0d5b",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
}
],
"description": "Upgradable call proxy contract through which the SHARPVerifier can be called. A call proxy does not delegatecall and the storage context remains at the target contract. It allows SHARP Multisig to change the otherwise immutable verifier contract with 8d delay.\n* Roles:\n * **admin**: SHARP Multisig\n * **appGovernor**: SHARP Multisig\n * **governanceAdmin**: SHARP Multisig",
"upgradableBy": [
{
"name": "SHARP Multisig",
"delay": "8d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60#code"
},
{
"name": "SHARPVerifier_2026_13",
"isVerified": true,
"address": "eth:0x5C1Ce45534A9c5f7F3E6683Cd79a8ad57EE3a9fe",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Shared Starkware SHARP verifier used collectively by Starknet and other SN stack and StarkEx projects. It receives STARK proofs from the Prover and verifies the integrity of the offchain execution including a correctly computed state root which is part of the Program Output.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5C1Ce45534A9c5f7F3E6683Cd79a8ad57EE3a9fe#code"
},
{
"name": "SHARPVerifier",
"isVerified": true,
"address": "eth:0x7Da1225C752ab37E610a242D9D8a0548262E3fF7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Shared Starkware SHARP verifier used collectively by Starknet and other SN stack and StarkEx projects. It receives STARK proofs from the Prover and verifies the integrity of the offchain execution including a correctly computed state root which is part of the Program Output.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7Da1225C752ab37E610a242D9D8a0548262E3fF7#code"
},
{
"name": "FinalizableGpsFactAdapterUSDT",
"isVerified": true,
"address": "eth:0x40e1e5Ece49A878062fA9F87eA6dc81281098B22",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Adapter between the core contract and the SHARPVerifierCallProxy. Stores the Cairo programHash (`770346231394331402493200980986217737662224545740427952627288191358999988146`).\n",
"description": "Adapter between the core contract and the SHARPVerifierCallProxy. Stores the Cairo programHash (`770346231394331402493200980986217737662224545740427952627288191358999988146`), which can be changed until the adapter is finalized.\n* Roles:\n * **owner**: EOA 2 if the adapter is not finalized",
"upgradableBy": [
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x40e1e5Ece49A878062fA9F87eA6dc81281098B22#code"
},
{
"name": "PerpetualEscapeVerifier",
"isVerified": true,
"address": "eth:0xaadFdB9CAc145c65f2284fBe24600d07fb37F7BD",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Special verifier for the escape() function.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaadFdB9CAc145c65f2284fBe24600d07fb37F7BD#code"
},
{
"name": "FinalizableGpsFactAdapterUSDC",
"isVerified": true,
"address": "eth:0xE741e26573782ae3C0ea9EC710FA99Fcd27fB953",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Adapter between the core contract and the SHARPVerifierCallProxy. Stores the Cairo programHash (`2530337539466159944237001094809327283009177793361359619481044346150483328860`).\n",
"description": "Adapter between the core contract and the SHARPVerifierCallProxy. Stores the Cairo programHash (`2530337539466159944237001094809327283009177793361359619481044346150483328860`), which can be changed until the adapter is finalized.\n* Roles:\n * **owner**: EOA 2 if the adapter is not finalized",
"upgradableBy": [
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE741e26573782ae3C0ea9EC710FA99Fcd27fB953#code"
},
{
"name": "CairoBootloaderProgram",
"isVerified": true,
"address": "eth:0x24105e6697AdD9B4B1BDE04079a91BDFCCa24A47",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x24105e6697AdD9B4B1BDE04079a91BDFCCa24A47#code"
},
{
"name": "MemoryPageFactRegistry",
"isVerified": true,
"address": "eth:0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Auxiliary to the SHARPVerifier contract: Verified 'memory fact pages' get stored here. This is important as it registers all necessary onchain data produced by the verifier.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460#code"
}
]
},
"escrows": [
{
"address": "0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb",
"sinceTimestamp": 1660252039,
"tokens": [
"USDC"
],
"contract": {
"isVerified": true,
"address": "eth:0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb",
"upgradeability": {
"proxyType": "StarkWare diamond",
"admins": [
"eth:0xef75e1199B0599BA823b7770AcE8eb34864a1D55",
"eth:0xC532d2976209A56DdF4a99B844130f7c0daCa7B6"
],
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1660252039,
"transactionHash": "0x6c8b4e4fc51235fe438779e444c7f6b8332ad8e3ea371cee73974ca4c5b9de8f",
"implementations": [
"eth:0x67bC2461000cfbe67e9b623EC8B460168BdEC5F0",
"eth:0xfbea22FeB369DB10C0d3a2aAa8F4939E76815f12",
"eth:0x8f62a4a85B64dF803FDB644a1c7F595BFC6fF8dA",
"eth:0xBdc6c96D298408415Ac70D334BedEbc8862B3C41",
"eth:0xf1f087A5da4c5938E3ee091Edeea4f773fe203CA"
]
},
{
"timestamp": 1661262665,
"transactionHash": "0x4d944148289a3ce02380ec7819dcddd59c6c75bc53b98a4442a174d5a92ff14f",
"implementations": [
"eth:0x67bC2461000cfbe67e9b623EC8B460168BdEC5F0",
"eth:0xfbea22FeB369DB10C0d3a2aAa8F4939E76815f12",
"eth:0x8f62a4a85B64dF803FDB644a1c7F595BFC6fF8dA",
"eth:0xBdc6c96D298408415Ac70D334BedEbc8862B3C41",
"eth:0xf1f087A5da4c5938E3ee091Edeea4f773fe203CA"
]
},
{
"timestamp": 1671697055,
"transactionHash": "0x57d264627a2d18fbee29c402a3e48fe53c496ce51ea140adc194ab2cc9b235f4",
"implementations": [
"eth:0xdD813397b79f8df581eEb0c4B8aB72304c528396",
"eth:0x533a7f4bE5453513049EB94A2b115F2CcE161dce",
"eth:0x564EA75a26Dc0Bb5c5033B4752f88953A25AD058",
"eth:0xdD5f42B087C1D2F73a2b443249b7D3DbE148a859",
"eth:0x34E7cfedF99995A47B3e3D0AB88ba67072B55035"
]
},
{
"timestamp": 1672986575,
"transactionHash": "0x40b1d2a6419d7e69d4a0d7f779548c138795c3649099f68fc5b2d7e6dca9b28b",
"implementations": [
"eth:0xdD813397b79f8df581eEb0c4B8aB72304c528396",
"eth:0x533a7f4bE5453513049EB94A2b115F2CcE161dce",
"eth:0x564EA75a26Dc0Bb5c5033B4752f88953A25AD058",
"eth:0xdD5f42B087C1D2F73a2b443249b7D3DbE148a859",
"eth:0x34E7cfedF99995A47B3e3D0AB88ba67072B55035"
]
},
{
"timestamp": 1739785163,
"transactionHash": "0x7c6ca54630321bc1f0e2ad0b68972ec3f6efaab449f09839ef612f90d4292bdd",
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
]
}
],
"url": "https://etherscan.io/address/0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xe53A6eD882Eb3f90cCe0390DDB04c876C5482E6b",
"sinceTimestamp": 1697631539,
"tokens": [
"USDT"
],
"contract": {
"isVerified": true,
"address": "eth:0xe53A6eD882Eb3f90cCe0390DDB04c876C5482E6b",
"upgradeability": {
"proxyType": "StarkWare diamond",
"admins": [
"eth:0x53c6Ec9640761c669B800088F097E01A8207Ac8b"
],
"implementations": [
"eth:0x3167617e913BF59afb90e5ec1A7B32D4Ea03eae4",
"eth:0x5a50e280883B1FB39Aa04Eb263BCA47630D17D8E",
"eth:0x3F3A131caB7eb5b4EAE9497Bebb9E06bE80F2809",
"eth:0x5BfbE850d18b73ed98FB830e0A5E9F4970Bb93dA",
"eth:0x229BbdF97eBc4993efe1433c0ae4A0bE79A4fe21"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1697631587,
"transactionHash": "0x27741474cceaf88b1e1c14ae8b6f39e6f538352db3d214e3c74abbf812dcb8d9",
"implementations": [
"eth:0x3167617e913BF59afb90e5ec1A7B32D4Ea03eae4",
"eth:0x5a50e280883B1FB39Aa04Eb263BCA47630D17D8E",
"eth:0x3F3A131caB7eb5b4EAE9497Bebb9E06bE80F2809",
"eth:0x5BfbE850d18b73ed98FB830e0A5E9F4970Bb93dA",
"eth:0x229BbdF97eBc4993efe1433c0ae4A0bE79A4fe21"
]
},
{
"timestamp": 1701185207,
"transactionHash": "0xa56eaf93de66cd491d4e4ca0997883d927848861429ba5b3ae64b6652d4cee52",
"implementations": [
"eth:0x3167617e913BF59afb90e5ec1A7B32D4Ea03eae4",
"eth:0x5a50e280883B1FB39Aa04Eb263BCA47630D17D8E",
"eth:0x3F3A131caB7eb5b4EAE9497Bebb9E06bE80F2809",
"eth:0x5BfbE850d18b73ed98FB830e0A5E9F4970Bb93dA",
"eth:0x229BbdF97eBc4993efe1433c0ae4A0bE79A4fe21"
]
}
],
"url": "https://etherscan.io/address/0xe53A6eD882Eb3f90cCe0390DDB04c876C5482E6b#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 8d delay on code upgrades."
}
]
}
+2 -2
+1 -1
{
"redWarning": {
"text": "Critical contract references can be changed by an EOA which could result in the loss of all funds.",
"text": "Critical contracts can be upgraded by an EOA which could result in the loss of all funds.",
"detailAnchor": "permissions"
},
"unverifiedContracts": []
}
+1 -1
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "SHARP Multisig",
"name": "SHARP Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with 8d delay**\n * SHARPVerifierCallProxy [via: - acting directly with 8d delay]\n* Can interact with SHARPVerifierCallProxy\n * manage the upgrade admin amd access control roles \n * set custom implementations for specific operators (changes the verifier based on who calls it) ",
"accounts": [
{
"address": "eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4",
"type": "Contract",
"isVerified": true,
"name": "0x21F9…AEc4",
"url": "https://etherscan.io/address/0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xebc8416179fE90854fe8B3f774801165572cfD7F",
"type": "EOA",
"isVerified": true,
"name": "0xebc8…fD7F",
"url": "https://etherscan.io/address/0xebc8416179fE90854fe8B3f774801165572cfD7F"
},
{
"address": "eth:0x955B978F3ee7818dA71fA25c676062E6BC462Fec",
"type": "EOA",
"isVerified": true,
"name": "0x955B…2Fec",
"url": "https://etherscan.io/address/0x955B978F3ee7818dA71fA25c676062E6BC462Fec"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x303775491494a08b07365938787274F742a81F63",
"type": "EOA",
"isVerified": true,
"name": "0x3037…1F63",
"url": "https://etherscan.io/address/0x303775491494a08b07365938787274F742a81F63",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * StarkExchange \n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"description": "* Can upgrade **with no delay**\n * StarkExchange \n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), set the default vault withdrawal lock, unfreeze the exchange and manage the governor set ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x4a5e124201c38bf7a618388A8185D3f5C8E9133f",
"type": "EOA",
"isVerified": true,
"name": "0x4a5e…133f",
"url": "https://etherscan.io/address/0x4a5e124201c38bf7a618388A8185D3f5C8E9133f",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkExchange\n * Can regsiter new tokens for deposits and withdrawals ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xc3a27F45015E2c36ce3cC78c662c5f259c26Cf25",
"type": "EOA",
"isVerified": true,
"name": "0xc3a2…Cf25",
"url": "https://etherscan.io/address/0xc3a27F45015E2c36ce3cC78c662c5f259c26Cf25",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkExchange\n * Permissioned to regularly update the state roots of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains commitments to the data that is itself kept offchain ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
+1 -1
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "SHARP Multisig",
"name": "SHARP Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with 8d delay**\n * SHARPVerifierCallProxy [via: - acting directly with 8d delay]\n* Can interact with SHARPVerifierCallProxy\n * manage the upgrade admin amd access control roles \n * set custom implementations for specific operators (changes the verifier based on who calls it) ",
"accounts": [
{
"address": "eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4",
"type": "Contract",
"isVerified": true,
"name": "0x21F9…AEc4",
"url": "https://etherscan.io/address/0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xebc8416179fE90854fe8B3f774801165572cfD7F",
"type": "EOA",
"isVerified": true,
"name": "0xebc8…fD7F",
"url": "https://etherscan.io/address/0xebc8416179fE90854fe8B3f774801165572cfD7F"
},
{
"address": "eth:0x955B978F3ee7818dA71fA25c676062E6BC462Fec",
"type": "EOA",
"isVerified": true,
"name": "0x955B…2Fec",
"url": "https://etherscan.io/address/0x955B978F3ee7818dA71fA25c676062E6BC462Fec"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xc7C731AF62Cd43eB158ad3Ac0fC5d2dd32648C7A",
"type": "EOA",
"isVerified": true,
"name": "0xc7C7…8C7A",
"url": "https://etherscan.io/address/0xc7C731AF62Cd43eB158ad3Ac0fC5d2dd32648C7A",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * StarkExchange \n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"description": "* Can upgrade **with no delay**\n * StarkExchange \n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), set the default vault withdrawal lock, unfreeze the exchange and manage the governor set ",
"discoveryDrivenData": true
},
{
"id": "EOA-2-and-EOA-4",
"name": "EOA 2 and EOA 4",
"accounts": [
{
"address": "eth:0x107691bD4F590270B9793c807cB912DD278e8cB5",
"type": "EOA",
"isVerified": true,
"name": "0x1076…8cB5",
"url": "https://etherscan.io/address/0x107691bD4F590270B9793c807cB912DD278e8cB5",
"displayName": "EOA 2"
},
{
"address": "eth:0x5751a83170BeA11fE7CdA5D599B04153C021f21A",
"type": "EOA",
"isVerified": true,
"name": "0x5751…f21A",
"url": "https://etherscan.io/address/0x5751a83170BeA11fE7CdA5D599B04153C021f21A",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkExchange\n * Permissioned to regularly update the state roots of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains commitments to the data that is itself kept offchain ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x3e10FD04BfCE4dBF496d72F39172347Bf887ac1D",
"type": "EOA",
"isVerified": true,
"name": "0x3e10…ac1D",
"url": "https://etherscan.io/address/0x3e10FD04BfCE4dBF496d72F39172347Bf887ac1D",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkExchange\n * Can regsiter new tokens for deposits and withdrawals ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
+1 -1
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "RhinofiAdminMultisig",
"name": "RhinofiAdminMultisig",
"description": "A Multisig with 4/6 threshold. \n* Can upgrade **with 3d delay**\n * StarkExchange [via: - acting directly with 3d delay]\n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"description": "A Multisig with 4/6 threshold. \n* Can upgrade **with 3d delay**\n * StarkExchange [via: - acting directly with 3d delay]\n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), set the default vault withdrawal lock, unfreeze the exchange and manage the governor set ",
"accounts": [
{
"address": "eth:0xCCa5De1e10c05c50C51ac551D9182cd31aca1889",
"type": "Contract",
"isVerified": true,
"name": "0xCCa5…1889",
"url": "https://etherscan.io/address/0xCCa5De1e10c05c50C51ac551D9182cd31aca1889"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x6Db55792263D558d9c98B740f8cB5E8a2e02Ec05",
"type": "EOA",
"isVerified": true,
"name": "0x6Db5…Ec05",
"url": "https://etherscan.io/address/0x6Db55792263D558d9c98B740f8cB5E8a2e02Ec05"
},
{
"address": "eth:0x478615F37FcCB0DF69C191a8674233f6899D092e",
"type": "EOA",
"isVerified": true,
"name": "0x4786…092e",
"url": "https://etherscan.io/address/0x478615F37FcCB0DF69C191a8674233f6899D092e"
},
{
"address": "eth:0x0fa6bf3377Cfa276d9d7122c09C187e5e8ef1C59",
"type": "EOA",
"isVerified": true,
"name": "0x0fa6…1C59",
"url": "https://etherscan.io/address/0x0fa6bf3377Cfa276d9d7122c09C187e5e8ef1C59"
},
{
"address": "eth:0x611F96c83fE0A30B504Ee2C6a2Cae890e620bA35",
"type": "EOA",
"isVerified": true,
"name": "0x611F…bA35",
"url": "https://etherscan.io/address/0x611F96c83fE0A30B504Ee2C6a2Cae890e620bA35"
},
{
"address": "eth:0x445EEDE2681116Dd94C8D5Bfab73283B3ef1f6f3",
"type": "EOA",
"isVerified": true,
"name": "0x445E…f6f3",
"url": "https://etherscan.io/address/0x445EEDE2681116Dd94C8D5Bfab73283B3ef1f6f3"
},
{
"address": "eth:0x8501cFEE1715F5BC771cC65997F2A655f234e9Ef",
"type": "EOA",
"isVerified": true,
"name": "0x8501…e9Ef",
"url": "https://etherscan.io/address/0x8501cFEE1715F5BC771cC65997F2A655f234e9Ef"
}
],
"discoveryDrivenData": true
},
{
"id": "SHARP Multisig",
"name": "SHARP Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with 8d delay**\n * SHARPVerifierCallProxy [via: - acting directly with 8d delay]\n* Can interact with SHARPVerifierCallProxy\n * manage the upgrade admin amd access control roles \n * set custom implementations for specific operators (changes the verifier based on who calls it) ",
"accounts": [
{
"address": "eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4",
"type": "Contract",
"isVerified": true,
"name": "0x21F9…AEc4",
"url": "https://etherscan.io/address/0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xebc8416179fE90854fe8B3f774801165572cfD7F",
"type": "EOA",
"isVerified": true,
"name": "0xebc8…fD7F",
"url": "https://etherscan.io/address/0xebc8416179fE90854fe8B3f774801165572cfD7F"
},
{
"address": "eth:0x955B978F3ee7818dA71fA25c676062E6BC462Fec",
"type": "EOA",
"isVerified": true,
"name": "0x955B…2Fec",
"url": "https://etherscan.io/address/0x955B978F3ee7818dA71fA25c676062E6BC462Fec"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x8A6c80Aab6497E2DB35817817b593b79D78f6ae5",
"type": "EOA",
"isVerified": true,
"name": "0x8A6c…6ae5",
"url": "https://etherscan.io/address/0x8A6c80Aab6497E2DB35817817b593b79D78f6ae5",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkExchange\n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability ",
"discoveryDrivenData": true
},
{
"id": "EOA-2-and-EOA-3",
"name": "EOA 2 and EOA 3",
"accounts": [
{
"address": "eth:0x8fDEC5EE435501571034A78a7F3AA167185969b3",
"type": "EOA",
"isVerified": true,
"name": "0x8fDE…69b3",
"url": "https://etherscan.io/address/0x8fDEC5EE435501571034A78a7F3AA167185969b3",
"displayName": "EOA 2"
},
{
"address": "eth:0xb49e8CeD039CD6eC5881Beb29C4993031A6CcAC4",
"type": "EOA",
"isVerified": true,
"name": "0xb49e…cAC4",
"url": "https://etherscan.io/address/0xb49e8CeD039CD6eC5881Beb29C4993031A6CcAC4",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkExchange\n * Can regsiter new tokens for deposits and withdrawals ",
"discoveryDrivenData": true
}
]
}
}
+37 -9
+4 -0
{
"redWarning": {
"text": "Critical contracts can be upgraded by an EOA which could result in the loss of all funds.",
"detailAnchor": "permissions"
},
"unverifiedContracts": []
}
+23 -6
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with no delay**\n * StarkPerpetual \n* Can interact with StarkPerpetual\n * manage the token admin role \n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with no delay**\n * StarkPerpetual \n* Can interact with StarkPerpetual\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), unfreeze the exchange and manage the governor set ",
"accounts": [
{
"address": "eth:0x57814cC6e075f517781cB7c3B42897B3Bb2C54d8",
"type": "Contract",
"isVerified": true,
"name": "0x5781…54d8",
"url": "https://etherscan.io/address/0x57814cC6e075f517781cB7c3B42897B3Bb2C54d8"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xb8E3c28e88F33B9F61a37E0eE86d29C48f1cAE09",
"type": "EOA",
"isVerified": true,
"name": "0xb8E3…AE09",
"url": "https://etherscan.io/address/0xb8E3c28e88F33B9F61a37E0eE86d29C48f1cAE09"
},
{
"address": "eth:0x656A28457C85483AA80499A4E8A739129CC77247",
"type": "EOA",
"isVerified": true,
"name": "0x656A…7247",
"url": "https://etherscan.io/address/0x656A28457C85483AA80499A4E8A739129CC77247"
},
{
"address": "eth:0xDcaA8bfe9644c27eF3b40EaCB7cE7535D3223798",
"type": "EOA",
"isVerified": true,
"name": "0xDcaA…3798",
"url": "https://etherscan.io/address/0xDcaA8bfe9644c27eF3b40EaCB7cE7535D3223798"
},
{
"address": "eth:0x0a7B0Ac8d40754545D5C1fD3607Ba64678a6CBC5",
"type": "EOA",
"isVerified": true,
"name": "0x0a7B…CBC5",
"url": "https://etherscan.io/address/0x0a7B0Ac8d40754545D5C1fD3607Ba64678a6CBC5"
},
{
"address": "eth:0x2818035FC753cAf8843C440919cc183bF7Da3742",
"type": "EOA",
"isVerified": true,
"name": "0x2818…3742",
"url": "https://etherscan.io/address/0x2818035FC753cAf8843C440919cc183bF7Da3742"
}
],
"discoveryDrivenData": true
},
{
"id": "SHARP Multisig",
"name": "SHARP Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with 8d delay**\n * SHARPVerifierCallProxy [via: - acting directly with 8d delay]\n* Can interact with SHARPVerifierCallProxy\n * manage the upgrade admin amd access control roles \n * set custom implementations for specific operators (changes the verifier based on who calls it) ",
"accounts": [
{
"address": "eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4",
"type": "Contract",
"isVerified": true,
"name": "0x21F9…AEc4",
"url": "https://etherscan.io/address/0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xebc8416179fE90854fe8B3f774801165572cfD7F",
"type": "EOA",
"isVerified": true,
"name": "0xebc8…fD7F",
"url": "https://etherscan.io/address/0xebc8416179fE90854fe8B3f774801165572cfD7F"
},
{
"address": "eth:0x955B978F3ee7818dA71fA25c676062E6BC462Fec",
"type": "EOA",
"isVerified": true,
"name": "0x955B…2Fec",
"url": "https://etherscan.io/address/0x955B978F3ee7818dA71fA25c676062E6BC462Fec"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 3/4 threshold. \n* Can interact with AggregationRouterV5\n * destroy the contract and rescue funds from it ",
"accounts": [
{
"address": "eth:0x5E89f8d81C74E311458277EA1Be3d3247c7cd7D1",
"type": "Contract",
"isVerified": true,
"name": "0x5E89…d7D1",
"url": "https://etherscan.io/address/0x5E89f8d81C74E311458277EA1Be3d3247c7cd7D1"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xD8A6A3ca1739423de5F634dFAa8BA224EAf16d0e",
"type": "EOA",
"isVerified": true,
"name": "0xD8A6…6d0e",
"url": "https://etherscan.io/address/0xD8A6A3ca1739423de5F634dFAa8BA224EAf16d0e"
},
{
"address": "eth:0x223c0EF36fEe905a40175d92704b1d3624218EE7",
"type": "EOA",
"isVerified": true,
"name": "0x223c…8EE7",
"url": "https://etherscan.io/address/0x223c0EF36fEe905a40175d92704b1d3624218EE7"
},
{
"address": "eth:0xd6970196Ff8CeF3Cdd61256C1841A085EEcD3ae8",
"type": "EOA",
"isVerified": true,
"name": "0xd697…3ae8",
"url": "https://etherscan.io/address/0xd6970196Ff8CeF3Cdd61256C1841A085EEcD3ae8"
},
{
"address": "eth:0x3A6ED6885608Ead8174789a81Eb2B05600ca89F8",
"type": "EOA",
"isVerified": true,
"name": "0x3A6E…89F8",
"url": "https://etherscan.io/address/0x3A6ED6885608Ead8174789a81Eb2B05600ca89F8"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x8847c33C6AEB53bf9a43D6b5579e9146478e6D3a",
"type": "EOA",
"isVerified": true,
"name": "0x8847…6D3a",
"url": "https://etherscan.io/address/0x8847c33C6AEB53bf9a43D6b5579e9146478e6D3a",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkPerpetual\n * manage supported tokens ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0xCBe6fbf5e3c427013688E04D0fDE56705890c4bE",
"type": "EOA",
"isVerified": true,
"name": "0xCBe6…c4bE",
"url": "https://etherscan.io/address/0xCBe6fbf5e3c427013688E04D0fDE56705890c4bE",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkPerpetual\n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability ",
"discoveryDrivenData": true
},
{
"id": "EOA-3,-EOA-4-and-EOA-5",
"name": "EOA 3, EOA 4 and EOA 5",
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x17b287122363a0a6dBA7F185347DFcfb9816dA6e",
"type": "EOA",
"isVerified": true,
"name": "0x17b2…dA6e",
"url": "https://etherscan.io/address/0x17b287122363a0a6dBA7F185347DFcfb9816dA6e",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * FinalizableGpsFactAdapter ",
"discoveryDrivenData": true
},
{
"id": "EOA-4,-EOA-5-and-EOA-6",
"name": "EOA 4, EOA 5 and EOA 6",
"accounts": [
{
"address": "eth:0x38ACC82ED19e303841e222d7e933846001F969F8",
"type": "EOA",
"isVerified": true,
"name": "0x38AC…69F8",
"url": "https://etherscan.io/address/0x38ACC82ED19e303841e222d7e933846001F969F8",
"displayName": "EOA 3"
"displayName": "EOA 4"
},
{
"address": "eth:0x5C37D9fCD71F8d0D9E11a58b73D49148cf3A0323",
"type": "EOA",
"isVerified": true,
"name": "0x5C37…0323",
"url": "https://etherscan.io/address/0x5C37D9fCD71F8d0D9E11a58b73D49148cf3A0323",
"displayName": "EOA 4"
"displayName": "EOA 5"
},
{
"address": "eth:0x811aBa59F2486A0a6D93b8c708086d9A789dcFe2",
"type": "EOA",
"isVerified": true,
"name": "0x811a…cFe2",
"url": "https://etherscan.io/address/0x811aBa59F2486A0a6D93b8c708086d9A789dcFe2",
"displayName": "EOA 5"
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with EdgeXDepositor\n * withdraw any funds from this deposit wrapper contract by reaching a threshold of 2 signers ",
"discoveryDrivenData": true
}
]
}
}
+10 -3
{
"addresses": {
"ethereum": [
{
"name": "StarkPerpetual",
"isVerified": true,
"address": "eth:0xfAaE2946e846133af314d1Df13684c89fA7d83DD",
"upgradeability": {
"proxyType": "StarkWare diamond",
"admins": [
"eth:0x57814cC6e075f517781cB7c3B42897B3Bb2C54d8"
],
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720435943,
"transactionHash": "0xb4a37a973c29b0213d2622a6ab1faac67ac73ca271c14664818b3f9604cb7eaf",
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
]
}
],
"description": "Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n* Roles:\n * **admin**: Safe\n * **operators**: EOA 2\n * **tokenAdmins**: EOA 1",
"upgradableBy": [
{
"name": "Safe",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfAaE2946e846133af314d1Df13684c89fA7d83DD#code"
},
{
"name": "SHARPVerifierCallProxy",
"isVerified": true,
"address": "eth:0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
],
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1635080785,
"transactionHash": "0x80ebb7a22a207d00e26464db2f8a719d43eb3b836740a693aad13d5ef922f5e4",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1651510161,
"transactionHash": "0x604e235c6207b7909f6fc8dc0bd86b410e935dcf2f6f6bd37a5567a89379353a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1659869409,
"transactionHash": "0xc31b74237a0c68aa1b95fe2ed28ad54cf6d7df42a8beab1ea947532c95dda20a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1678106063,
"transactionHash": "0xbaa8ffb1b7e5177dbf75de753b9b2ff2fc313b244ff910cfd6d7f1f6254b6e1a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1708939523,
"transactionHash": "0x31e3caf3940dde662a1e98580259f79963dc5e098793b6519311e201d4e19312",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1708939523,
"transactionHash": "0x31e3caf3940dde662a1e98580259f79963dc5e098793b6519311e201d4e19312",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1722161267,
"transactionHash": "0x7c71592ea4c455371365d843f1a21bbf647aad7d6fae12f7187650ce24805f00",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1722197315,
"transactionHash": "0x4b25445a8e86b4620b9a19f747122b518d8973975ea73aa474b210395e277b66",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1747066175,
"transactionHash": "0x0764cd09cc5c9a96b151dd222bf14b9c33111c80bdddf27721a6406f4c0e1f3f",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1760862467,
"transactionHash": "0x7b4a25af246b28b6d5bed86942696273a84e57abc629b83072be370df2bdb797",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1765192091,
"transactionHash": "0xed93cf713d33ac63297d8c7e2eafc0d9f277b718b4074600536eb9a4205bcb81",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1769954759,
"transactionHash": "0x257cfdefacd18f0c221b1e486ee002cb974d14bb292884dfaf7f5aa987cc7170",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1777465247,
"transactionHash": "0xf088946bc461774cf86ce348fcee4d52bb27ebf049d99f3fab806226053b0d5b",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
}
],
"description": "Upgradable call proxy contract through which the SHARPVerifier can be called. A call proxy does not delegatecall and the storage context remains at the target contract. It allows SHARP Multisig to change the otherwise immutable verifier contract with 8d delay.\n* Roles:\n * **admin**: SHARP Multisig\n * **appGovernor**: SHARP Multisig\n * **governanceAdmin**: SHARP Multisig",
"upgradableBy": [
{
"name": "SHARP Multisig",
"delay": "8d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60#code"
},
{
"name": "SHARPVerifier_2026_13",
"isVerified": true,
"address": "eth:0x5C1Ce45534A9c5f7F3E6683Cd79a8ad57EE3a9fe",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Shared Starkware SHARP verifier used collectively by Starknet and other SN stack and StarkEx projects. It receives STARK proofs from the Prover and verifies the integrity of the offchain execution including a correctly computed state root which is part of the Program Output.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5C1Ce45534A9c5f7F3E6683Cd79a8ad57EE3a9fe#code"
},
{
"name": "SHARPVerifier",
"isVerified": true,
"address": "eth:0x7Da1225C752ab37E610a242D9D8a0548262E3fF7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Shared Starkware SHARP verifier used collectively by Starknet and other SN stack and StarkEx projects. It receives STARK proofs from the Prover and verifies the integrity of the offchain execution including a correctly computed state root which is part of the Program Output.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7Da1225C752ab37E610a242D9D8a0548262E3fF7#code"
},
{
"name": "AggregationRouterV5",
"isVerified": true,
"address": "eth:0x1111111254EEB25477B68fb85Ed929f73A960582",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "1inch DEX aggregator supporting RFQ fills, limit-order fills and direct DEX swaps.\n* Roles:\n * **owner**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1111111254EEB25477B68fb85Ed929f73A960582#code"
},
{
"name": "FinalizableCommittee",
"isVerified": true,
"address": "eth:0x23bf3dcc14680162b7f5355aAbb56D31823c946e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "DAC with admin funtions to manage members. Admins are not discoverable and thus not shown here.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x23bf3dcc14680162b7f5355aAbb56D31823c946e#code"
},
{
"name": "GpsFactRegistryAdapter",
"name": "FinalizableGpsFactAdapter",
"isVerified": true,
"address": "eth:0x4abBc1826389aC0FEaA49E70c30a041b665e8562",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Adapter between the core contract and the SHARPVerifierCallProxy. Stores the Cairo programHash (`2530337539466159944237001094809327283009177793361359619481044346150483328860`).\n",
"description": "Adapter between the core contract and the SHARPVerifierCallProxy. Stores the Cairo programHash (`2530337539466159944237001094809327283009177793361359619481044346150483328860`), which can be changed until the adapter is finalized.\n* Roles:\n * **owner**: EOA 3 if the adapter is not finalized",
"upgradableBy": [
{
"id": "EOA-3",
"name": "EOA 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4abBc1826389aC0FEaA49E70c30a041b665e8562#code"
},
{
"name": "PerpetualEscapeVerifier",
"isVerified": true,
"address": "eth:0xaadFdB9CAc145c65f2284fBe24600d07fb37F7BD",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Special verifier for the escape() function.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaadFdB9CAc145c65f2284fBe24600d07fb37F7BD#code"
},
{
"name": "EdgeXDepositor",
"isVerified": true,
"address": "eth:0xC0a1a1e4AF873E9A37a0caC37F3aB81152432Cc5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A deposit wrapper that allows users to deposit arbitrary tokens to EdgeX. Tokens are swapped to USDT via 1inch and deposited to edgeX. This deposit wrapper also has fast withdrawal support using liquidity providers, but it seems deprecated in practice. Standard direct deposits and withdrawals of USDT at the StarkPerpetual contract are fully supported.\n* Roles:\n * **signers**: EOA 3, EOA 4, EOA 5",
"description": "A deposit wrapper that allows users to deposit arbitrary tokens to EdgeX. Tokens are swapped to USDT via 1inch and deposited to edgeX. This deposit wrapper also has fast withdrawal support using liquidity providers, but it seems deprecated in practice. Standard direct deposits and withdrawals of USDT at the StarkPerpetual contract are fully supported.\n* Roles:\n * **signers**: EOA 4, EOA 5, EOA 6",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC0a1a1e4AF873E9A37a0caC37F3aB81152432Cc5#code"
},
{
"name": "CairoBootloaderProgram",
"isVerified": true,
"address": "eth:0x24105e6697AdD9B4B1BDE04079a91BDFCCa24A47",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x24105e6697AdD9B4B1BDE04079a91BDFCCa24A47#code"
},
{
"name": "MemoryPageFactRegistry",
"isVerified": true,
"address": "eth:0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Auxiliary to the SHARPVerifier contract: Verified 'memory fact pages' get stored here. This is important as it registers all necessary onchain data produced by the verifier.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460#code"
}
]
},
"escrows": [
{
"address": "0xfAaE2946e846133af314d1Df13684c89fA7d83DD",
"sinceTimestamp": 1720435859,
"tokens": [
"USDT"
],
"contract": {
"isVerified": true,
"address": "eth:0xfAaE2946e846133af314d1Df13684c89fA7d83DD",
"upgradeability": {
"proxyType": "StarkWare diamond",
"admins": [
"eth:0x57814cC6e075f517781cB7c3B42897B3Bb2C54d8"
],
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720435943,
"transactionHash": "0xb4a37a973c29b0213d2622a6ab1faac67ac73ca271c14664818b3f9604cb7eaf",
"implementations": [
"eth:0x8C43C9bec15d82D153C52518030e0a9590ABD35d",
"eth:0x540Ad8576d2F90f28994ab001622F964945854A8",
"eth:0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310",
"eth:0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175",
"eth:0x31e2d974BaC547101413c24C23443AD488423f64"
]
}
],
"url": "https://etherscan.io/address/0xfAaE2946e846133af314d1Df13684c89fA7d83DD#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "StarkEx program ApeX and EdgeX",
"description": "Cairo program that implements an application-specific L2 with spot and perpetual trading functionality.",
"proverSystemProject": "stone",
"verificationStatus": "notVerified",
"hash": "2530337539466159944237001094809327283009177793361359619481044346150483328860"
},
{
"title": "Simple bootloader Cairo program StarkWare_GpsStatementVerifier_2026_13",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/src/starkware/cairo/bootloaders/simple_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "3442855748187296636739564186904728563385971901122957091055928358173521721079"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2026_13",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "2358844945297786488640123814540854423585455959362109345448922524567546993330"
},
{
"title": "Simple bootloader Cairo program StarkWare_GpsStatementVerifier_2025_12",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/56407b69f3f19f69302a8623baa8c5f71f967eed/src/starkware/cairo/bootloaders/simple_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 56407b69f3f19f69302a8623baa8c5f71f967eed\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "37889379279861089970868356983774360253508326951064758033885675883862334778"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2026_13",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/56407b69f3f19f69302a8623baa8c5f71f967eed/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 56407b69f3f19f69302a8623baa8c5f71f967eed\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "989994135429182905628199499137734285064642484443466268071170571058909750176"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2025_12",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/020f846ee43d0a85f082dcfcc001f39446977272/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 020f846ee43d0a85f082dcfcc001f39446977272\n```\n\n4. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n5. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "3480185788024326007166778030599498673382667448173974782477620863541158415714"
},
{
"title": "Simple bootloader Cairo program StarkWare_GpsStatementVerifier_2025_11",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/57317a743004a608ce1aab0211c40d50083f0a65/src/starkware/cairo/bootloaders/simple_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 57317a743004a608ce1aab0211c40d50083f0a65\n```\n\n4. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n5. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "3035974089339935040143966034750116008615662951603253398063766337728525196711"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2025_11",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/57317a743004a608ce1aab0211c40d50083f0a65/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 57317a743004a608ce1aab0211c40d50083f0a65\n```\n\n4. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n5. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "3585039955034622347908243360088523999417661979601115750324841620224559981237"
},
{
"title": "Simple bootloader Cairo program StarkWare_GpsStatementVerifier_2024_10",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/v0.13.5/src/starkware/cairo/bootloaders/simple_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout v0.13.5\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/v0.13.5/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/v0.13.5/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "160268921359133235574810995023520895391777547407923205700393332203861498631"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2024_10",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/v0.13.5/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout v0.13.5\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/v0.13.5/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/v0.13.5/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "1104316318711847786071125527957082259001554753246760931396914052122269757907"
}
],
"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:0x9fb7F48dCB26b7bFA4e580b2dEFf637B13751942"
]
}
+2 -2
+1 -1
{
"redWarning": {
"text": "Critical contract references can be changed by an EOA which could result in the loss of all funds.",
"text": "Critical contracts can be upgraded by an EOA which could result in the loss of all funds.",
"detailAnchor": "permissions"
},
"unverifiedContracts": []
}
+1 -1
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "SHARP Multisig",
"name": "SHARP Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with 8d delay**\n * SHARPVerifierCallProxy [via: - acting directly with 8d delay]\n* Can interact with SHARPVerifierCallProxy\n * manage the upgrade admin amd access control roles \n * set custom implementations for specific operators (changes the verifier based on who calls it) ",
"accounts": [
{
"address": "eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4",
"type": "Contract",
"isVerified": true,
"name": "0x21F9…AEc4",
"url": "https://etherscan.io/address/0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xebc8416179fE90854fe8B3f774801165572cfD7F",
"type": "EOA",
"isVerified": true,
"name": "0xebc8…fD7F",
"url": "https://etherscan.io/address/0xebc8416179fE90854fe8B3f774801165572cfD7F"
},
{
"address": "eth:0x955B978F3ee7818dA71fA25c676062E6BC462Fec",
"type": "EOA",
"isVerified": true,
"name": "0x955B…2Fec",
"url": "https://etherscan.io/address/0x955B978F3ee7818dA71fA25c676062E6BC462Fec"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xc49Ec6Bb817E17a9Ca5B738ca330db403cc74245",
"type": "EOA",
"isVerified": true,
"name": "0xc49E…4245",
"url": "https://etherscan.io/address/0xc49Ec6Bb817E17a9Ca5B738ca330db403cc74245",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with 14d delay**\n * StarkExchange [via: - acting directly with 14d delay]\n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"description": "* Can upgrade **with 14d delay**\n * StarkExchange [via: - acting directly with 14d delay]\n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), set the default vault withdrawal lock, unfreeze the exchange and manage the governor set ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x86ED881374a81efcc1Aa9f82cA9740B40F0FCbfe",
"type": "EOA",
"isVerified": true,
"name": "0x86ED…Cbfe",
"url": "https://etherscan.io/address/0x86ED881374a81efcc1Aa9f82cA9740B40F0FCbfe",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkExchange\n * Can regsiter new tokens for deposits and withdrawals ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xe997ece81cb8A686206ea6042886B594Ecf6DdED",
"type": "EOA",
"isVerified": true,
"name": "0xe997…DdED",
"url": "https://etherscan.io/address/0xe997ece81cb8A686206ea6042886B594Ecf6DdED",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkExchange\n * Permissioned to regularly update the state roots of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains commitments to the data that is itself kept offchain ",
"discoveryDrivenData": true
}
]
}
}
+4 -0
+4 -0
{
"redWarning": {
"text": "Critical contracts can be upgraded by an EOA which could result in the loss of all funds.",
"detailAnchor": "permissions"
},
"unverifiedContracts": []
}
+4 -0
+4 -0
{
"redWarning": {
"text": "Critical contracts can be upgraded by an EOA which could result in the loss of all funds.",
"detailAnchor": "permissions"
},
"unverifiedContracts": [],
"yellowWarning": "This project was sunset on 2024-09-20 and deposits after that time may not be recoverable."
}
+3 -3
+1 -1
{
"redWarning": {
"text": "Critical contract references can be changed by an EOA which could result in the loss of all funds.",
"text": "Critical contracts can be upgraded by an EOA which could result in the loss of all funds.",
"detailAnchor": "permissions"
},
"unverifiedContracts": [],
"yellowWarning": "Sorare froze its StarkEx rollup on June 1st, 2026. The core rollup contract is currently frozen."
}
+2 -2
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "SorareAdminMultisig",
"name": "SorareAdminMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can upgrade **with no delay**\n * StarkExchange \n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"description": "A Multisig with 2/3 threshold. \n* Can upgrade **with no delay**\n * StarkExchange \n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), set the default vault withdrawal lock, unfreeze the exchange and manage the governor set ",
"accounts": [
{
"address": "eth:0xCc928977e4a75d25099e7DA7B6Fd79Dac2f9fD2B",
"type": "Contract",
"isVerified": true,
"name": "0xCc92…fD2B",
"url": "https://etherscan.io/address/0xCc928977e4a75d25099e7DA7B6Fd79Dac2f9fD2B"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0xaDB26E60FA6e326B9Ee444D886B4B62EC7FA38fc",
"type": "EOA",
"isVerified": true,
"name": "0xaDB2…38fc",
"url": "https://etherscan.io/address/0xaDB26E60FA6e326B9Ee444D886B4B62EC7FA38fc"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
}
],
"discoveryDrivenData": true
},
{
"id": "SHARP Multisig",
"name": "SHARP Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with 8d delay**\n * SHARPVerifierCallProxy [via: - acting directly with 8d delay]\n* Can interact with SHARPVerifierCallProxy\n * manage the upgrade admin amd access control roles \n * set custom implementations for specific operators (changes the verifier based on who calls it) ",
"accounts": [
{
"address": "eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4",
"type": "Contract",
"isVerified": true,
"name": "0x21F9…AEc4",
"url": "https://etherscan.io/address/0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xebc8416179fE90854fe8B3f774801165572cfD7F",
"type": "EOA",
"isVerified": true,
"name": "0xebc8…fD7F",
"url": "https://etherscan.io/address/0xebc8416179fE90854fe8B3f774801165572cfD7F"
},
{
"address": "eth:0x955B978F3ee7818dA71fA25c676062E6BC462Fec",
"type": "EOA",
"isVerified": true,
"name": "0x955B…2Fec",
"url": "https://etherscan.io/address/0x955B978F3ee7818dA71fA25c676062E6BC462Fec"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x5918481F777dBe437De249492B90AffB4e655de4",
"type": "EOA",
"isVerified": true,
"name": "0x5918…5de4",
"url": "https://etherscan.io/address/0x5918481F777dBe437De249492B90AffB4e655de4",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * StarkExchange \n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"description": "* Can upgrade **with no delay**\n * StarkExchange \n* Can interact with StarkExchange\n * manage the token admin role \n * Permissioned to appoint and remove the Operator, register additional verifier and availability verifier contracts (removals are delayed), set the default vault withdrawal lock, unfreeze the exchange and manage the governor set ",
"discoveryDrivenData": true
},
{
"id": "EOA-2-and-EOA-3",
"name": "EOA 2 and EOA 3",
"accounts": [
{
"address": "eth:0x3DE55343499f59CEB3f1dE47F2Cd7Eab28F2F5C6",
"type": "EOA",
"isVerified": true,
"name": "0x3DE5…F5C6",
"url": "https://etherscan.io/address/0x3DE55343499f59CEB3f1dE47F2Cd7Eab28F2F5C6",
"displayName": "EOA 2"
},
{
"address": "eth:0x63881ac44293E22F3c3183a0C4113586ABb3e653",
"type": "EOA",
"isVerified": true,
"name": "0x6388…e653",
"url": "https://etherscan.io/address/0x63881ac44293E22F3c3183a0C4113586ABb3e653",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkExchange\n * Permissioned to regularly update the state roots of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains commitments to the data that is itself kept offchain ",
"discoveryDrivenData": true
}
]
}
}