## Identity

Snapshot read on **2026-10-27**. Display name: **Mantle**; Type (category): **“ZK Rollup”**; Purpose: “Universal”; host chain: **Ethereum**; chain ID: 5000; gas token: MNT. [L2BEAT](https://l2beat.com/layer2s/projects/mantle.md#summary)

TVS: the HTML project page displayed **$1.29 B USD** (rounded, approximately $1,290,000,000), above $500 million, on the read date. Its separately fetched Markdown representation displayed **$1.30 B**; both are reported rather than treating independently refreshed views as an exact synchronized dollar amount. [HTML summary](https://l2beat.com/layer2s/projects/mantle#summary) [Markdown summary](https://l2beat.com/layer2s/projects/mantle.md#summary)

Badges: “EVM”; “Ethereum with blobs”; “Built on the OP Succinct stack”. [L2BEAT](https://l2beat.com/layer2s/projects/mantle#summary)

## 1. Stage

Mantle is a Stage 0 ZK Rollup. [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)

**Stage 0**

5 requirements met. [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)

- Met: “A complete and functional proof system is deployed.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)
- Met: “The project calls itself a rollup.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)
- Met: “State roots are posted to Ethereum L1.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)
- Met: “Inputs for the state transition function are posted to Ethereum L1.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)
- Met: “A source-available node exists that can recreate the state from Ethereum L1 data. Please note that the L2BEAT team has not verified the validity of the node source code.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)

**Stage 1**

3 issues need fixing. [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)

**Principle**

- Issue: “Compromising ≥75% of the Security Council should be the only way (other than bugs) for a rollup to indefinitely block an L2→L1 message (e.g. a withdrawal) or push an invalid L2→L1 message (e.g. an invalid withdrawal) with a <7d exit window.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)

**Guidelines**

- Met: “Prover source code is published.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)
- Met: “The sources of all programs used are public and program hashes can be independently regenerated.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)
- Issue: “Users' withdrawals can be censored by the permissioned operators.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)
- Issue: “Upgrades executed by actors with more centralized control than a Security Council provide less than 7d for users to exit if the permissioned operator is down or censoring.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)

**Stage 2**

2 issues need fixing. [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)

- Issue: “Upgrades unrelated to onchain provable bugs provide less than 30d to exit.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)
- Issue: “The Security Council's actions are not confined to onchain provable bugs.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)

[Learn more about Stages](https://l2beat.com/stages). [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)

Please keep in mind that these stages do not reflect project security, this is an opinionated assessment of project maturity based on subjective criteria, created with a goal of incentivizing projects to push toward better decentralization. Each team may have taken different paths to achieve this goal. [L2BEAT](https://l2beat.com/layer2s/projects/mantle#stage)

No project-wide “under review” banner was found in the HTML or Markdown views read. The summary labels Stage 0 “Full training wheels” and warns “Please mind, stages do not reflect project security”. [HTML summary](https://l2beat.com/layer2s/projects/mantle#summary) [Markdown page](https://l2beat.com/layer2s/projects/mantle.md)

The linked [Stages framework](https://l2beat.com/stages) was also read; the quoted met/issue list above is Mantle’s project-specific checklist. [Mantle checklist](https://l2beat.com/layer2s/projects/mantle.md#stage)

Other warning entries: “a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL)” under funds theft, and “the centralized validator goes down. Users cannot produce blocks themselves and exiting the system requires new block production (CRITICAL)” under funds freezing. [Risk summary](https://l2beat.com/layer2s/projects/mantle#risk-summary)

## 2. Proof system

State Validation risk value, verbatim: **“Validity proofs (ST, SN)”**, with **“12h execution delay”** in the Markdown risk analysis. “STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup.” [L2BEAT](https://l2beat.com/layer2s/projects/mantle.md#risk-analysis)

Proofs are live: “A complete and functional proof system is deployed.” The State validation section states: “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.” Prover: “SP1 Hypercube”. [Stage](https://l2beat.com/layer2s/projects/mantle#stage) [State validation](https://l2beat.com/layer2s/projects/mantle#state-validation)

Optional mode: “Through the SuccinctL2OutputOracle, the system also allows to switch to an optimistic mode, in which no proofs are required and a challenger can challenge the proposed output state root within the finalization period.” This is the page’s proof-less fallback description, not evidence of permissionless fraud proofs. [State validation](https://l2beat.com/layer2s/projects/mantle#state-validation)

The L2BEAT discovery snapshot records `optimisticMode: false`, `finalizationPeriodSeconds: 43200` and `FINALIZATION_PERIOD_SECONDS: 43200` (12 hours). Its historical update says: “Execution delay changed from 7 days to 12 hours. It's the same value for optimistic or non-optimistic mode, so when optimistic mode is enabled this parameter should be updated (e.g., back to 7 days).” This is an execution/finalization delay, not a measured proof-generation time. [Discovery snapshot](https://github.com/l2beat/l2beat/blob/1492cd63d867e9138efeb5e6a04dedf3b7590b2e/packages/config/src/projects/mantle/discovered.json) [2025-09-24 update](https://l2beat.com/layer2s/projects/mantle?update=d7e3f45d)

Proposing is permissioned: “Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.” Permissions names **EOA 2**, `0x6667961f5e9C98A76a48767522150889703Ed77D`: “Allowed to post new state roots of the current layer to the host chain” through OPSuccinctL2OutputOracle. **MantleSecurityMultisig** can “manage the approved proposer set”. [Risk analysis](https://l2beat.com/layer2s/projects/mantle#risk-analysis) [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions)

Challenging/deleting outputs is also assigned to a named actor: **MantleEngineeringMultisig**, 3/7, “can delete proposed state roots, enable/disable the optimistic (proof-less) mode and change the finalization period”. The oracle’s Smart contracts roles explicitly list `challenger: MantleEngineeringMultisig`, `initialProposer: EOA 2`, `owner: MantleSecurityMultisig`. Permissionless onchain proposal/proof submission is therefore not established; the page documents a whitelisted proposal path. Whether arbitrary third parties can generate proofs offchain is **NOT FOUND**. [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions) [Smart contracts](https://l2beat.com/layer2s/projects/mantle#contracts)

The page additionally warns: “Funds can be stolen if optimistic mode is enabled and no challenger checks the published state”; “Funds can be stolen if the proposer routes proof verification through a malicious or faulty verifier by specifying an unsafe route id”; and “Funds can be frozen if in non-optimistic mode, the SP1VerifierGateway is unable to route proof verification to a valid verifier.” [State validation](https://l2beat.com/layer2s/projects/mantle#state-validation)

Software evidence within the allowed sources: the latest program-key update shown is **2026-09-17 14:45 UTC**, “OPSuccinctL2OutputOracle: `aggregationVkey` and `rangeVkeyCommitment` updated to the mantle-v1.6.1 op-succinct release keys.” Both current program hashes are marked “Verification: successful” in the Markdown page. This establishes a recorded deployed version and update date; newest node/prover release and its publication date are **NOT FOUND** in the permitted sources. [Update](https://l2beat.com/layer2s/projects/mantle?update=706bc529) [Program hashes](https://l2beat.com/layer2s/projects/mantle.md#program-hashes)

## 3. Exit window and upgrades

Exit Window value, verbatim: **“None”**. Explanation, verbatim: **“There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.”** [Risk analysis](https://l2beat.com/layer2s/projects/mantle#risk-analysis)

Every multisig named in the current Permissions section and its relevant powers:

- **MantleSecurityMultisig**, `0x4e59e778a0fb77fBb305637435C62FaeD9aED40f`: “A Multisig with 6/14 threshold.” “Can upgrade with no delay”: OPSuccinctL2OutputOracle, SystemConfig, L1CrossDomainMessenger, L1StandardBridge, OptimismPortal, each via ProxyAdmin. “Can upgrade with 1d delay”: L1MantleToken, via “TimelockController with 1d delay → MantleTokenProxyAdmin”. [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions)
- The same **MantleSecurityMultisig** can “toggle between the optimistic mode and not optimistic (ZK) mode, update the SP1 verification keys, the verifier address, the rollup config hash, the submission interval and manage the approved proposer set”. It can change the sequencer/batch submitter and unsafe block signer through SystemConfig. For TimelockController it can “cancel queued transactions”, “execute transactions that are ready”, “manage all access control roles with 1d delay or with no delay” (via the timelock or acting directly), and “propose transactions”. It can set/change AddressManager mappings via ProxyAdmin, and mint new MNT up to the stated 2% annual cap and transfer token ownership. [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions) [Markdown permissions with via paths](https://l2beat.com/layer2s/projects/mantle.md#permissions)
- **MantleEngineeringMultisig**, `0x2F44BD2a54aC3fB20cd7783cF94334069641daC9`: “A Multisig with 3/7 threshold.” On OPSuccinctL2OutputOracle: “can delete proposed state roots, enable/disable the optimistic (proof-less) mode and change the finalization period”. On OptimismPortal: “Allowed to pause withdrawals.” No upgrade power or mandatory delay for these actions is stated in its entry; a delay it must wait or bypasses is **NOT FOUND**. [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions)
- **SP1VerifierGatewayMultisig**, `0xCafEf00d348Adbd57c37d1B77e0619C6244C6878`: “A Multisig with 2/3 threshold.” On SP1VerifierGateway: “affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes”. A delay it must wait or bypasses is **NOT FOUND** in this entry. [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions)
- On Mantle, **GnosisSafeL2**, `0x09734bB3980906Bb217305EA6Bd34256feEAB105`: “A Multisig with 6/14 threshold.” “Can upgrade with no delay”: L2CrossDomainMessenger, L2StandardBridge, L2ToL1MessagePasser and L2ProxyAdmin, each via L2ProxyAdmin. [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions)

TimelockController is described as: “A timelock with access control. The current minimum delay is 1d.” Its `canceller`, `executor`, and `proposer` roles are MantleSecurityMultisig; `defaultAdmin` is MantleSecurityMultisig and TimelockController, ultimately MantleSecurityMultisig. No separately named “Security Council” actor is listed; the stage checklist’s generic council requirement must not be substituted for the actual thresholds above. [Smart contracts](https://l2beat.com/layer2s/projects/mantle#contracts) [Stage](https://l2beat.com/layer2s/projects/mantle#stage)

## 4. Data availability

DA value, verbatim: **“Onchain”**. “All of the data needed for proof construction is published on Ethereum L1.” [Risk analysis](https://l2beat.com/layer2s/projects/mantle#risk-analysis)

“All data required for proofs is published on chain”. “All the data that is used to construct the system state is published on chain in the form of cheap blobs or calldata. This ensures that it will be available for enough time.” The badge specifically states “Ethereum with blobs”; its explanation is “This project is posting its data to Ethereum as blobs”. [Data availability](https://l2beat.com/layer2s/projects/mantle#da-layer) [Badge](https://l2beat.com/layer2s/projects/mantle.md#badges)

Current external DA layer: none in L2BEAT’s description. The **2026-04-16** milestone “Arsia upgrade: full Ethereum DA” says: “EigenDA code path removed; DA is Ethereum only. Mantle reclassified as a rollup.” No current DAC or DAC threshold is listed; such a threshold is **NOT FOUND / not applicable to the onchain DA configuration described**. [Milestones](https://l2beat.com/layer2s/projects/mantle#milestones-and-incidents) [Data availability](https://l2beat.com/layer2s/projects/mantle#da-layer)

## 5. Sequencer and forced inclusion

“The system has a centralized operator”. “The operator is the only entity that can propose blocks. A live and trustworthy operator is vital to the health of the system.” Permissions identifies **EOA 1**, `0x2f40D796917ffB642bD2e2bdD2C762A5e40fd749`: “Allowed to commit transactions from the current layer to the host chain”. The Data posted section lists the same address as the current blob-submission sequencer; MantleSecurityMultisig can update the batch submitter (Sequencer) address. A legal entity or named human operating this account is **NOT FOUND** on the page. [Operator](https://l2beat.com/layer2s/projects/mantle#operator) [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions) [Data posted](https://l2beat.com/layer2s/projects/mantle.md#data-posted)

Sequencer Failure value, verbatim: **“Self sequence”**. Explanation: “In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There can be up to a 12h delay on this operation.” [Risk analysis](https://l2beat.com/layer2s/projects/mantle.md#risk-analysis)

“Users can force any transaction”. “Because the state of the system is based on transactions submitted on the underlying host chain and anyone can submit their transactions there it allows the users to circumvent censorship by interacting with the smart contract on the host chain directly.” The page references the OptimismPortal `depositTransaction` function. [Operator](https://l2beat.com/layer2s/projects/mantle#operator)

Proposer Failure value, verbatim: **“Cannot withdraw”**. “Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.” [Risk analysis](https://l2beat.com/layer2s/projects/mantle#risk-analysis)

The Withdrawals section qualifies forced messaging: “The system is then obliged to service this request or halt all messages, including forced withdrawals from L1 and regular messages initiated on L2. Once the force operation is submitted and if the request is serviced, the operation follows the flow of a regular message.” Regular messaging requires ZK proofs to settle blocks; it warns: “Funds can be frozen if the centralized validator goes down. Users cannot produce blocks themselves and exiting the system requires new block production (CRITICAL).” [Withdrawals](https://l2beat.com/layer2s/projects/mantle#withdrawals)

## Stage history since 2026-04-27

**No stage change found between 2026-04-27 and the 2026-10-27 read date: Stage 0 throughout the checked configuration history.** The page currently says “Stage 0”; its full Milestones list has no entry in this window. The latest milestone, the 2026-04-16 reclassification to a rollup, predates the window. No stage-transition or project-under-review banner was found in the views read. [Current stage](https://l2beat.com/layer2s/projects/mantle#stage) [Full milestones](https://l2beat.com/layer2s/projects/mantle.md#milestones--incidents) [Project page](https://l2beat.com/layer2s/projects/mantle)

History method: checked the directory commit history (37 commits returned for the inclusive date window) and all 12 `mantle.ts` revisions in it, against the last pre-window config revision, **2026-04-21 05:18:49 UTC**, “Mantle Arsia upgrade”. There is **no explicit `stage` field** in any of those Mantle config versions. Stage is generated by the OP Stack template’s `stage: templateVars.stage ?? computedStage(...)`, so claiming an explicit field edit would be incorrect. [Directory history](https://github.com/l2beat/l2beat/commits/main/packages/config/src/projects/mantle/?since=2026-04-27&until=2026-10-27) [File history](https://github.com/l2beat/l2beat/commits/main/packages/config/src/projects/mantle/mantle.ts?since=2026-04-27&until=2026-10-27) [Pre-window commit](https://github.com/l2beat/l2beat/commit/0ed3d07d4e4d0a929153b2276547362d4b5ccddd) [Template at baseline](https://github.com/l2beat/l2beat/blob/0ed3d07d4e4d0a929153b2276547362d4b5ccddd/packages/config/src/templates/opStack.ts) [Current template](https://github.com/l2beat/l2beat/blob/main/packages/config/src/templates/opStack.ts)

Baseline and current template logic give this OP Succinct configuration a false Stage 1 principle (`fraudProofType === 'Permissionless'` is required), preventing Stage 1. Across the baseline and all 37 directory revision discovery snapshots, the oracle remains OPSuccinctL2OutputOracle, `optimisticMode` is false, `additionalProposers` is empty, the initial proposer/challenger remain the same permissioned actors, and DA flags remain Ethereum blobs true / EigenDA false / Celestia false. These are configuration-history observations, not a claim to have observed the website every day. [Baseline discovery](https://github.com/l2beat/l2beat/blob/0ed3d07d4e4d0a929153b2276547362d4b5ccddd/packages/config/src/projects/mantle/discovered.json) [Last in-window directory revision, 2026-10-26](https://github.com/l2beat/l2beat/commit/1492cd63d867e9138efeb5e6a04dedf3b7590b2e) [Discovery history](https://github.com/l2beat/l2beat/commits/main/packages/config/src/projects/mantle/discovered.json?since=2026-04-27&until=2026-10-27) [Template](https://github.com/l2beat/l2beat/blob/main/packages/config/src/templates/opStack.ts)

There is consequently no stage-change commit URL/date to report in the window. For auditability, the config revisions inspected are listed below; none introduces or changes a `stage` override. [File history checked](https://github.com/l2beat/l2beat/commits/main/packages/config/src/projects/mantle/mantle.ts?since=2026-04-27&until=2026-10-27)

- 2026-05-05T10:44:15Z: [commit](https://github.com/l2beat/l2beat/commit/3ce6e827c968f61b8604e37df438fdc1e55e47a2).
- 2026-05-06T12:11:41Z: [commit](https://github.com/l2beat/l2beat/commit/8932d4a698cea9447b8aafde3e83ad506709fedd).
- 2026-07-29T08:51:35Z: [commit](https://github.com/l2beat/l2beat/commit/e856505e0900740c5b57461c7b3471e0e0960ebe).
- 2026-08-05T11:09:26Z: [commit](https://github.com/l2beat/l2beat/commit/548586a83ad227d3e54d602f8f3725015d1b4e49).
- 2026-08-20T13:39:47Z: [commit](https://github.com/l2beat/l2beat/commit/490d1ebdb014748d72479deb28674a95e7cdbfb3).
- 2026-09-28T07:20:49Z: [commit](https://github.com/l2beat/l2beat/commit/62f0d95e07d49c7259c5fac9f287fb5c8e96c84d).
- 2026-09-29T13:10:28Z: [commit](https://github.com/l2beat/l2beat/commit/97882e49075dda3a0b6c2f78b8e10cde49a7b97a).
- 2026-09-30T07:32:36Z: [commit](https://github.com/l2beat/l2beat/commit/9c43493732e65a2ed2bef6bc68b94a253c304480).
- 2026-10-02T08:01:48Z: [commit](https://github.com/l2beat/l2beat/commit/ac2f335b0bfa7976f37dfa75e391edec5391a0e4).
- 2026-10-05T08:56:08Z: [commit](https://github.com/l2beat/l2beat/commit/cd994874bd99b18ba1f55be2a7905cd3e3005273).
- 2026-10-14T08:20:36Z: [commit](https://github.com/l2beat/l2beat/commit/02aa817a9a0b68ecae973986967fe6fdd1d56d56).
- 2026-10-16T10:26:52Z: [commit](https://github.com/l2beat/l2beat/commit/d86f6d9efd21b822dadfa4bb3cc3726c79b200fd).

## Not found

- **NOT FOUND:** newest main-node or prover software release and its publication date. Checked State validation, program hashes, Upgrades & Governance, and all listed discovery updates. L2BEAT records deployed `mantle-v1.6.1` keys on 2026-09-17, but an onchain key-update date does not establish a release-publication date or that no newer release exists. Project release links were not opened because this item permits only L2BEAT and the l2beat GitHub repository. [State validation](https://l2beat.com/layer2s/projects/mantle#state-validation) [Recorded update](https://l2beat.com/layer2s/projects/mantle?update=706bc529) [All discovery updates](https://l2beat.com/layer2s/projects/mantle.md#ossification--updates)
- **NOT FOUND:** unrestricted offchain proof-generation access or measured proof-generation/finality latency. Checked State validation and Permissions; the sources establish live ZK verification, whitelisted state-root publication, and a 12h execution delay. [State validation](https://l2beat.com/layer2s/projects/mantle#state-validation) [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions) [Risk analysis](https://l2beat.com/layer2s/projects/mantle.md#risk-analysis)
- **NOT FOUND:** operator organization/person behind the sequencer EOA. Checked Operator, Data posted and Permissions; the EOA and its role are supplied above. [Operator](https://l2beat.com/layer2s/projects/mantle#operator) [Data posted](https://l2beat.com/layer2s/projects/mantle.md#data-posted) [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions)
- **NOT FOUND:** an independently named Security Council, or explicit delay/bypass values for MantleEngineeringMultisig and SP1VerifierGatewayMultisig actions. Checked Permissions, Smart contracts and Upgrades & Governance; the multisig names, thresholds, permissions, and stated upgrade delays are preserved above. [Permissions](https://l2beat.com/layer2s/projects/mantle#permissions) [Smart contracts](https://l2beat.com/layer2s/projects/mantle#contracts) [Upgrades & Governance](https://l2beat.com/layer2s/projects/mantle#upgrades-and-governance)
- **NOT FOUND / not applicable:** a current external DAC and its threshold. Checked Data availability and Milestones; current DA is Ethereum only. [DA](https://l2beat.com/layer2s/projects/mantle#da-layer) [Milestones](https://l2beat.com/layer2s/projects/mantle#milestones-and-incidents)
- **NOT FOUND:** an explicit historical `stage` field edit or stage-transition commit in the requested window. Checked every in-window Mantle config revision and its pre-window baseline; stage is template-derived, as documented in the history section. [Config history](https://github.com/l2beat/l2beat/commits/main/packages/config/src/projects/mantle/mantle.ts?since=2026-04-27&until=2026-10-27)
