Search for projects by name or address
Starknet is a ZK rollup that uses STARK proofs to securely scale Ethereum and Ethereum blobs for data availability. Starknet is also actively engaged in bringing Bitcoin users the same scale, UX, and liquidity through a variety of products and programs.
Starknet is a ZK rollup that uses STARK proofs to securely scale Ethereum and Ethereum blobs for data availability. Starknet is also actively engaged in bringing Bitcoin users the same scale, UX, and liquidity through a variety of products and programs.
The project will move to Stage 0 because:
Not all program sources are public or not all program hashes can be independently regenerated.
2025 Jul 22 — 2026 Jul 22
The section shows the operating costs that L2s pay to Ethereum.
2025 Jul 22 — 2026 Jul 22
This section shows how much data the project publishes to its data-availability (DA) layer over time. The project currently posts data to
Ethereum.
2025 Jul 22 — 2026 Jul 22
This section shows how "live" the project's operators are by displaying how frequently they submit transactions of the selected type. It also highlights anomalies - significant deviations from their typical schedule.
2026 Jun 22 — Jul 23
Starknet reverts 18mins of history
2026 Jan 5th
Starknet experienced an outage during which block production was halted.
Users can submit transactions to an L1 map, but can’t force them. When users “complain” that their transaction is stuck on L1 and not picked up by the sequencer, the Security Council minority can bypass the sequencer by posting a state root that includes it.
STARKs are zero knowledge proofs that ensure state correctness.
All of the data (SD = state diffs) needed for proof construction is published onchain.
Non-emergency upgrades are initiated on L1 and go through a 8d delay. In case users are censored, the Security Council minority can be alerted to enforce censorship resistance by submitting a new state root. This process is assumed to take 1d, leaving users 7d to exit.
There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.
Only the whitelisted proposer can update state roots on L1, so in the event of failure the withdrawals are frozen. The Security Council minority can be alerted to enforce censorship resistance because they are a permissioned Operator.
New requirements coming soon
Not all program sources are public or not all program hashes can be independently regenerated.
State diffs are publish onchain as blob or calldata on every state update. The state diffs contain information on every contact whose storage was updated, and additional information on contract deployments. From diffs full system state can be recovered. Contracts’ code is not published on L1, but can be trustlessly verified if available elsewhere.
Starknet uses stateful compression since v0.13.4.
There is no non-empty genesis state.
The data format has been updated with different versions, and the full specification can be found here.
Each update to the system state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Ethereum by a smart contract.
The current Starknet OS and aggregator sources are published in the Starknet sequencer repository, and the bootloader sources are published in cairo-lang. The exact 1,166-felt outer bootloader stored onchain has been reproduced from this source revision. However, SHARP also commits to an ordered allowlist of recursive Cairo verifier programs whose active preimages and source-to-hash mappings have not been published, so the complete proven program is not independently reproducible.
Each update to the system state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Ethereum by a smart contract.
Onchain verifier
Onchain verifier |
Name | Hash | Repository | Verification | Used in | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
200638...3432 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
105025...1922 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
342795...2024 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
344285...1079 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
235884...3330 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
254986...4351 | Code unknown | None | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
234451...4732 | Code unknown | None | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The Starknet OS, aggregator, outer bootloader, supported-simple-bootloader commitment, and applicative bootloader are reproducible. Every SHARP verifier in the currently accepted fact-registry chain also pins a commitment to an ordered allowlist of recursive Cairo verifier programs. The active allowlist preimages and the programs behind them have not been reproduced, so an invalid nested-proof verifier cannot be ruled out independently.

The Starknet zk Rollup shares its SHARP verifier with other StarkEx and SN Stack Layer 2s. Governance of the main Starknet rollup contract and its core bridge escrows (ETHBridge, STRKBridge) is currently split between the 9/12 Security Council with instant upgrade capability and the 2/4 Starkware Multisig 2 who can upgrade with a 8d delay. The former Multisig also governs most other bridge escrows with instant upgradeability. The shared SHARP verifier used for state validation can be changed by the 2/4 SHARP Multisig with and a 8d delay, affecting all rollups like Starknet that are sharing it.
The Operator role in the Starknet contract is permissioned to update the state of the Starknet rollup by supplying valid (zk) state transition proofs. Since this role is not permissionless, Starknet implements a StarknetSCMinorityMultisig with the Operator role, which allows a 3/12 minority of the StarknetSecurityCouncil to enforce censorship resistance by including transactions that are not included by regular Operators.
All bridge escrows allow enabling a withdrawal throttle of 5% of the locked funds per 24h period. Enabling it is permissioned to a Multisig while disabling it in the core bridge escrows (STRKBridge, ETHBridge) can be done by a 3/12 minority of the Security Council.
The metrics include upgrades on the currently used proxy contracts. Historical proxy contracts and changes of such are not included.
Updated Starknet OS and aggregation ZK programs, new versions verified.
Updated Starknet OS and aggregation ZK programs, new versions verified.
| contract Starknet (eth:0xc662c410C0ECf747543f5bA90660f6ABeBD9C8c4) [starknet/Starknet] { | |
| +++ description: Central rollup contract. Receives (verified) state roots from the Sequencer, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles. | |
| values.aggregatorHashMapped: | |
| - | "2571508110958925737463010241874806654058743535666147712534445437599630018294" |
| + | "1050253032170513549151251823521174837478197699740478552102884446098263561922" |
| values.aggregatorProgramHash: | |
| - | "2571508110958925737463010241874806654058743535666147712534445437599630018294" |
| + | "1050253032170513549151251823521174837478197699740478552102884446098263561922" |
| values.configHash: | |
| - | "3188242426588271529884520804512942022765170489242162533995649881904346336763" |
| + | "2579130946496422157802313572919622021390761807038780433165936715591440018810" |
| +++ description: The L2 programHash which is a hash of the L2 state machine logic. Liveness config MUST be changed in the .ts as soon as this is updated. | |
| +++ severity: HIGH | |
| values.programHash: | |
| - | "2733003247060056328192560178934419513655729851806095615814023997114795707702" |
| + | "2006389624453304912912750132846114593020263069652857561377702883656839453432" |
| values.programHashHistory.14: | |
| + | "2733003247060056328192560178934419513655729851806095615814023997114795707702" |
| values.programHashMapped: | |
| - | "2733003247060056328192560178934419513655729851806095615814023997114795707702" |
| + | "2006389624453304912912750132846114593020263069652857561377702883656839453432" |
| } |
Rotated two ms members.
Rotated two ms members.
| contract Starkware SCMinority Multisig (eth:0xF6b0B3e8f57396CecFD788D60499DB49Ee6AbC6B) [GnosisSafe] { | |
| +++ description: None | |
| values.$members.1: | |
| - | "eth:0x04D5b12b196a8CADEB2F476F22Ffb1334Ef9F94c" |
| + | "eth:0x99E84d004E73CC41eFacd382ef6FD34208B0F122" |
| values.$members.2: | |
| - | "eth:0x5C7DcaECB4D8e49Ea2487c5Cc23C5131Ddb2252F" |
| + | "eth:0xb731B63eC22904A17d1cf6fD771eb5BA87f35Fa3" |
| } |
Rotated two ms members.
Rotated two ms members.
| contract Starkware Security Council (eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361) [GnosisSafe] { | |
| +++ description: None | |
| values.$members.3: | |
| - | "eth:0x2914767E232FD7708ab06bA60dB16c36C555751d" |
| + | "eth:0x49C6396070D3310f335AE19169Da6B80ea67B831" |
| values.$members.4: | |
| - | "eth:0xfaECfa5E4180dd55D15396F804Fd00C6dbA233B0" |
| + | "eth:0x16117672EBF77d5DE9a1Af91F8F79b26421b310F" |
| } |
| contract Starkware SCMinority Multisig (eth:0xF6b0B3e8f57396CecFD788D60499DB49Ee6AbC6B) [GnosisSafe] { | |
| +++ description: None | |
| values.$members.0: | |
| - | "eth:0x2914767E232FD7708ab06bA60dB16c36C555751d" |
| + | "eth:0x49C6396070D3310f335AE19169Da6B80ea67B831" |
| values.$members.4: | |
| - | "eth:0xfaECfa5E4180dd55D15396F804Fd00C6dbA233B0" |
| + | "eth:0x16117672EBF77d5DE9a1Af91F8F79b26421b310F" |
| } |
Starknet v0.14.2 upgrade: https://x.com/StarkWareLtd/status/2046232501887062448. Upgraded Rollup contract with minimal diff: https://disco.l2beat.com/diff/eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04/eth:0x9961D34D3baE6914635c882e8FE382e14E0F172A (mainly added safety checks on L1 - L2 msg hash computation). Also upgraded aggregation and starknet os programs: sources are here https://github.com/starkware-libs/sequencer/tree/c294a8ba263834d45cf525217d8700f5de24a260/crates/apollo starknet os program/src/cairo/starkware/starknet/core.
Starknet v0.14.2 upgrade: https://x.com/StarkWareLtd/status/2046232501887062448.
Upgraded Rollup contract with minimal diff: https://disco.l2beat.com/diff/eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04/eth:0x9961D34D3baE6914635c882e8FE382e14E0F172A (mainly added safety checks on L1 -> L2 msg hash computation).
Also upgraded aggregation and starknet os programs: sources are here https://github.com/starkware-libs/sequencer/tree/c294a8ba263834d45cf525217d8700f5de24a260/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core.
| contract Starknet (eth:0xc662c410C0ECf747543f5bA90660f6ABeBD9C8c4) { | |
| +++ description: Central rollup contract. Receives (verified) state roots from the Sequencer, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles. | |
| sourceHashes.1: | |
| - | "0x8074e96abc7cacf654908c0111c69027cf599f3b67332f3680c5de768a2d6dfe" |
| + | "0x4ebd3e71fba7928b1daa4cdd93a1081aa0b578578cc8e6aada6a3b86b057fcb5" |
| values.$implementation: | |
| - | "eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04" |
| + | "eth:0x9961D34D3baE6914635c882e8FE382e14E0F172A" |
| values.$pastUpgrades.10: | |
| + | ["2026-04-20T11:53:35.000Z","0xb2fd817ea47d39435e0b08825964bcb0b2ae08ebc4c5a47954f9b169235ed1c1",["eth:0x9961D34D3baE6914635c882e8FE382e14E0F172A"]] |
| values.$upgradeCount: | |
| - | 10 |
| + | 11 |
| values.aggregatorHashMapped: | |
| - | "1701025211190912681772481128523426351562426117847395998223683709327746845867" |
| + | "2571508110958925737463010241874806654058743535666147712534445437599630018294" |
| values.aggregatorProgramHash: | |
| - | "1701025211190912681772481128523426351562426117847395998223683709327746845867" |
| + | "2571508110958925737463010241874806654058743535666147712534445437599630018294" |
| values.identify: | |
| - | "StarkWare_Starknet_2025_10" |
| + | "StarkWare_Starknet_2026_11" |
| values.implementation: | |
| - | "eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04" |
| + | "eth:0x9961D34D3baE6914635c882e8FE382e14E0F172A" |
| +++ description: The L2 programHash which is a hash of the L2 state machine logic. Liveness config MUST be changed in the .ts as soon as this is updated. | |
| +++ severity: HIGH | |
| values.programHash: | |
| - | "918745833886511857768061986591752808672496300091957204265383861063635175685" |
| + | "2733003247060056328192560178934419513655729851806095615814023997114795707702" |
| values.programHashHistory.13: | |
| + | "918745833886511857768061986591752808672496300091957204265383861063635175685" |
| values.programHashMapped: | |
| - | "918745833886511857768061986591752808672496300091957204265383861063635175685" |
| + | "2733003247060056328192560178934419513655729851806095615814023997114795707702" |
| implementationNames.eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04: | |
| - | "Starknet" |
| implementationNames.eth:0x9961D34D3baE6914635c882e8FE382e14E0F172A: | |
| + | "Starknet" |
| } |
Added new EOA to be a security agent for ETH and STRK bridge (can enable withdrawal limit).
Added new EOA to be a security agent for ETH and STRK bridge (can enable withdrawal limit).
| contract ETHBridge (eth:0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419) { | |
| +++ description: Standard Starkware canonical bridge escrow for ETH. Withdrawals can be throttled to 5% of the locked funds per 24 hours. | |
| values.accessControl.SECURITY_AGENT.members.1: | |
| + | "eth:0x4032bE860716F6e4488CBc9f1505E26E2FA3C2c2" |
| values.secAgentAC.1: | |
| + | "eth:0x4032bE860716F6e4488CBc9f1505E26E2FA3C2c2" |
| } |
| contract STRKBridge (eth:0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4) { | |
| +++ description: Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours. | |
| values.accessControl.SECURITY_AGENT.members.1: | |
| + | "eth:0x4032bE860716F6e4488CBc9f1505E26E2FA3C2c2" |
| values.secAgentAC.1: | |
| + | "eth:0x4032bE860716F6e4488CBc9f1505E26E2FA3C2c2" |
| } |
MEV can be extracted if the operator exploits their centralized position and frontruns user transactions.
There is no general mechanism to force the sequencer to include the transaction.
Users can be censored if the operator refuses to include their transactions.
There is no generic escape hatch mechanism as Starknet cannot be forced by users into a frozen state. Note that a freezing mechanism on L2, to be secure, requires anti-censorship protection.

A Multisig with 2/4 threshold.
A Multisig with 9/12 threshold.
A Multisig with 2/4 threshold.
GOVERNANCE_ADMIN and role-admin hierarchy. This AccessControl role is separate from the outer proxy governor that schedules implementation upgradesAPP_GOVERNOR role that controls caller-specific fallback routesisValid entry point always queries the default targetA Multisig with 2/6 threshold.
A Multisig with 3/12 threshold.
Acts as a central contract to manage StarkGate bridge escrows (add new ones, deactivate existing, change configs) when given the Manager role from the respective escrows.
A Multisig with 1/3 threshold.
A Multisig with 3/5 threshold.
Member of Starkware Multisig 4.


Central Starknet rollup contract. For every state update it derives a SHARP fact from the state-transition output and either the Starknet OS or aggregator program hash, checks that fact through the configured SHARP call proxy, and requires the output’s OS-config hash to match. It also processes L1 <-> L2 messages and stores the finalized L2 state.
Permissionless commitment calculator and registry used by the Solidity STARK verifiers. Anyone may submit a public-memory page and interaction elements; the contract computes its hash and cumulative product and registers the fact key committing to them, which the CPU verifier must bind to the proof. It is part of the proof verifier, not an application-level program registry. A malicious or nonconforming implementation can break public-memory soundness; binding to a different honest registry generally causes a liveness failure instead.
Upgradeable call router through which Starknet and other applications access SHARP fact registries. It uses call, not delegatecall, so facts and immutable verifier configuration remain at each target registry. The explicit isValid entry point always queries the default target. Other calls handled by the fallback, principally proof submissions, can be routed per caller to a still-active registry in the default target’s reference chain. The default target can be replaced by SHARP Multisig after 8d.
Immutable GPS statement verifier shared by Starknet and other StarkWare systems. It verifies a STARK proof of the exact Cairo bootloader stored onchain, forces the bootloader configuration into public memory, and registers a fact for every bootloader task. A fact is also considered valid when it exists in the time-limited reference fact registry.
Immutable GPS statement verifier shared by Starknet and other StarkWare systems. It verifies a STARK proof of the exact Cairo bootloader stored onchain, forces the bootloader configuration into public memory, and registers a fact for every bootloader task. A fact is also considered valid when it exists in the time-limited reference fact registry.
Immutable GPS statement verifier shared by Starknet and other StarkWare systems. It verifies a STARK proof of the exact Cairo bootloader stored onchain, forces the bootloader configuration into public memory, and registers a fact for every bootloader task. A fact is also considered valid when it exists in the time-limited reference fact registry.
Permissionless commitment calculator and registry used by the Solidity STARK verifiers. Anyone may submit a public-memory page and interaction elements; the contract computes its hash and cumulative product and registers the fact key committing to them, which the CPU verifier must bind to the proof. It is part of the proof verifier, not an application-level program registry. A malicious or nonconforming implementation can break public-memory soundness; binding to a different honest registry generally causes a liveness failure instead.
Immutable GPS statement verifier shared by Starknet and other StarkWare systems. It verifies a STARK proof of the exact Cairo bootloader stored onchain, forces the bootloader configuration into public memory, and registers a fact for every bootloader task. A fact is also considered valid when it exists in the time-limited reference fact registry.
A simple Timelock contract with an immutable delay of 8d. The owner (Starkware Multisig 1) can queue transactions.
Standard Starkware canonical bridge escrow for ETH. Withdrawals can be throttled to 5% of the locked funds per 24 hours.

Custom (and immutable) entry point contract and escrow for users depositing LORDS to via StarkGate to the L2.

A simple registry that maps tokens to their StarkGate escrows. It also keeps a list of tokens that are blocked from being added to StarkGate.
Haltable version of the Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually. Deposits for a particular token can be halted by app governor, halt must be finalized in the second transaction that also sweeps all funds into a clrearing address. There is no logic to resume bridging after the halt.

Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.

Gateway contract that is the user entrypoint to deposit DAI to a custom escrow to bridge via StarkGate.
Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.

Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.

Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.

Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.

Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.
Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.

Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually.



Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.
Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.

Simple escrow that accepts tokens and allows to configure permissioned addresses that can access the tokens.

Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually.

Haltable version of the Starkware Multibridge escrow. Withdrawals can be throttled to 5% of the locked funds per 24 hours for each token individually. Deposits for a particular token can be halted by app governor, halt must be finalized in the second transaction that also sweeps all funds into a clrearing address. There is no logic to resume bridging after the halt.

Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 5% of the locked funds per 24 hours.

The current deployment carries some associated risks:
Funds can be stolen if a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL).
Name | Hash | Repository | Verification | Used in | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
200638...3432 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
105025...1922 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
342795...2024 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
344285...1079 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
235884...3330 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
254986...4351 | Code unknown | None | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
234451...4732 | Code unknown | None | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The Starknet OS, aggregator, outer bootloader, supported-simple-bootloader commitment, and applicative bootloader are reproducible. Every SHARP verifier in the currently accepted fact-registry chain also pins a commitment to an ordered allowlist of recursive Cairo verifier programs. The active allowlist preimages and the programs behind them have not been reproduced, so an invalid nested-proof verifier cannot be ruled out independently.