# Lighter on Robinhood Markdown version of https://l2beat.com/layer2s/projects/lighter-robinhood ## Summary **Warning:** Why is the project listed in others? There are less than 5 external actors that can submit challenges. Consequence: projects without a sufficiently decentralized set of challengers rely on few entities to safely update the state. A small set of challengers can collude with the proposer to finalize an invalid state, which can cause loss of funds. Learn more about the [recategorisation](https://medium.com/l2beat/framework-update-l2-projects-recategorisation-5d43b0d1fe50). - Total Value Secured: $104.72 M (+0.23% compared to seven days ago; canonically bridged $104.72 M, natively minted $0.00, externally bridged $0.00; 0.00% with additional trust assumptions compared to the tokens involved and the Stage assigned to the project's canonical messaging bridge) - TVS by asset: ETH & derivatives $1.97 K (0.00%), Stablecoins $104.72 M (99.9%) - Past day UOPS: No data - Type: Other - Purpose: Exchange - Host chain: Robinhood Chain - Risks shown: combined with host chain Robinhood Chain; Risk analysis also lists each separately ### Risks - Sequencer failure: No mechanism (sentiment: bad) - State validation: Fraud proofs (INT) (6d 8h challenge period + 2d execution delay; sentiment: bad) - Data availability: Onchain (sentiment: good) - Exit window: None (sentiment: bad) - Proposer failure: Use escape hatch (sentiment: good) ### About Lighter on Robinhood is an application-specific ZK rollup deployed on Robinhood Chain. It is a fork of Lighter adapted to use Global Dollar (USDG) as its quote and margin asset. ### Links - Website: https://lighter.xyz, https://robinhood.com/chain/ - Docs: https://robinhood.com/us/en/support/articles/robinhood-wallet-perpetual-futures/, https://docs.robinhood.com/chain/, https://docs.lighter.xyz - Explorer: https://robin.etherscan.io, https://robinhoodchain.blockscout.com/ - Repository: https://github.com/elliottech/lighter-contracts, https://github.com/elliottech/lighter-prover - Social: https://x.com/Lighter_xyz, https://x.com/RobinhoodApp, https://discord.gg/lighterxyz - Contracts explorer (Disco): https://disco.l2beat.com/ui/p/lighter-robinhood ### Badges - Application-specific chain: This project is built to operate a specific application - Ethereum with blobs: This project is posting its data to Ethereum as blobs ## Value Secured The interactive TVS charts are shown on [the HTML page](https://l2beat.com/layer2s/projects/lighter-robinhood#tvs). Token by token: [TVS breakdown](https://l2beat.com/layer2s/projects/lighter-robinhood/tvs-breakdown). - [TVS chart (JSON)](https://l2beat.com/api/scaling/tvs/lighter-robinhood) - [TVS breakdown by token (JSON)](https://l2beat.com/api/scaling/tvs/lighter-robinhood/breakdown) ## Milestones & Incidents - 2026-07-01: [Robinhood launches Lighter perpetuals integration](https://robinhood.com/us/en/newsroom/robinhood-accelerates-global-expansion-robinhood-chain-mainnet-stock-tokens-agentic-trading/). Robinhood announces Lighter perpetual futures in Robinhood Wallet on public mainnet. - 2026-06-26: [Lighter contracts deployed on Robinhood Chain](https://robinhoodchain.blockscout.com/tx/0x56119cbe72da40648b646b402e71c66a174a4e0e62a10d3a90f9c3b0d8ecdad3). The USDG-based Lighter fork is deployed on Robinhood Chain. ## Risk summary There are 5 additional risks coming from the host chain [Robinhood Chain](https://l2beat.com/layer2s/projects/robinhood) ### Funds can be stolen if 1. a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL). ### Funds can be lost if 2. the oracle prices are manipulated. ### MEV can be extracted if 3. the operator exploits their centralized position and frontruns user transactions. ## Risk analysis The L3 risks depend on the individual properties of L3 and those of the host chain combined. | | Sequencer failure | State validation | Data availability | Exit window | Proposer failure | | --- | --- | --- | --- | --- | --- | | Robinhood Chain (L2) | No mechanism (sentiment: bad) | Fraud proofs (INT) (sentiment: bad) | Onchain (sentiment: good) | None (sentiment: bad) | Self propose (sentiment: good) | | Lighter on Robinhood (L3, individual) | Force via L1 (sentiment: good) | Validity proofs (SN) (sentiment: good) | Onchain (SD) (sentiment: good) | None (sentiment: bad) | Use escape hatch (sentiment: good) | | Lighter on Robinhood (L3, combined) | No mechanism (sentiment: bad) | Fraud proofs (INT) (sentiment: bad) | Onchain (sentiment: good) | None (sentiment: bad) | Use escape hatch (sentiment: good) | ### L3 combined risks The information below reflects combined L2 & L3 risks. #### Sequencer failure No mechanism (sentiment: bad) There is no guaranteed mechanism to have transactions included if the sequencer is down or censoring. Although users can enqueue messages in the L1 delayed inbox and call forceInclusion on the SequencerInbox, the chain runs ArbOS 61 transaction filtering: an authorized filterer can register any transaction hash in the ArbFilteredTransactionsManager precompile (0x00…0074), after which the state transition function forcibly fails that transaction, including force-included ones, without delay. #### State validation Fraud proofs (INT) (6d 8h challenge period + 2d execution delay; sentiment: bad) Fraud proofs only allow 2 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period. #### Data availability Onchain (sentiment: good) All of the data needed for proof construction is published on the base chain, which ultimately gets published on Ethereum. #### Exit window None (sentiment: bad) There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable. #### Proposer failure Use escape hatch (sentiment: good) Users are able to trustlessly exit by submitting a zero knowledge proof of funds. ## Stage Lighter on Robinhood is not even a Stage 0 Appchain project. **Warning:** There is no available node software that can reconstruct the state from L1 data, hence there is no way to verify that this system is a rollup. ### Stage 0 1 issue needs fixing. - Met: A complete and functional proof system is deployed. - Met: The project calls itself a rollup. - Met: State roots are posted to Ethereum L1. - Met: Inputs for the state transition function are posted to Ethereum L1. - Issue: No source-available node exists that can recreate the state from L1 data. ### Stage 1 6 issues need fixing. **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. **Guidelines** - Met: The proof system meets the minimum trusted setup requirements defined in the L2BEAT [trusted setup assessment framework](https://forum.l2beat.com/t/the-trusted-setups-framework-for-zk-catalog/381). - Issue: Users' withdrawals can be censored by the permissioned operators. - 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. - Issue: The Security Council is not properly set up. - Issue: Prover source code is not published. - Issue: Not all onchain verifiers' smart contracts can be independently regenerated from the verifier source code. ### Stage 2 2 issues need fixing. - Issue: Upgrades unrelated to onchain provable bugs provide less than 30d to exit. - Issue: The Security Council's actions are not confined to onchain provable bugs. [Learn more about Stages](https://l2beat.com/stages). 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. ## Data availability ### State differences posted on Robinhood Chain The state differences required to reconstruct and prove the Lighter state are included directly in commitBatch calldata on Robinhood Chain. Unlike the Ethereum deployment, the Lighter contract does not read EIP-4844 blob hashes. Robinhood Chain subsequently batches its own transaction data to Ethereum blobs. **References** - [Example commitBatch transaction on Robinhood Chain](https://robinhoodchain.blockscout.com/tx/0x73360fb1c909946ab6eba200a1dfc8c70065c04784dadcbc0ca090c1788fd7a3) - [Robinhood Chain architecture documentation](https://docs.robinhood.com/chain/) Learn more about the DA layer here: [Robinhood Chain](https://l2beat.com/layer2s/projects/robinhood) ## State validation 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 transactions to the previous state. These proofs are verified on Robinhood Chain by a smart contract. In desert mode, users can provide proofs of their balances to exit, which is validate by the DesertVerifier. ### Verification Keys Generation Lighter uses a Plonk-based proof system which requires a trusted setup. The verification keys are hardcoded in the verifier contract on-chain. The Lighter prover repository contains a [script](https://github.com/elliottech/lighter-prover/blob/main/build_circuits.sh) that regenerates circuits and verification keys, but it does not reproduce the verification keys used by this deployment. **References** - [ZK Lighter verifier verification keys](https://robinhoodchain.blockscout.com/address/0x7817a34136c56A6097C7042B3cAAe24b9eEd9fb4) ### Validity proofs State updates are verified by the ZkLighterVerifier contract. Desert verifier consists of circuits proving valid L2 -> L1 withdrawals in the desert mode. More details in [ZK Catalog](https://l2beat.com/zk-catalog/lighterprover#proof-system). **References** - [Deployed DesertVerifier implementation](https://robinhoodchain.blockscout.com/address/0x93c83bdA3A45241729Ce150C1e3677bA7389c0D0) ### Prover: [Lighter](https://l2beat.com/zk-catalog/lighterprover) #### Trusted setups - Gnark (Plonk): - Aztec Ignition, risk green (lowest risk) per the [Trusted Setups Risk Framework](https://forum.l2beat.com/t/the-trusted-setups-framework-for-zk-catalog/381): Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation. - Onchain verifiers: [ZkLighterVerifier](https://robin.etherscan.io/address/0x7817a34136c56A6097C7042B3cAAe24b9eEd9fb4#code) (1 not verified), [DesertVerifier](https://robin.etherscan.io/address/0x93c83bdA3A45241729Ce150C1e3677bA7389c0D0#code) (1 not verified) - Used in: [Lighter on Robinhood](https://l2beat.com/layer2s/projects/lighter-robinhood) - Verifiers: 2 not verified ## Updates Each date links the update on the HTML page, which also shows its contract diffs. ### [2026-10-13 13:31 UTC](https://l2beat.com/layer2s/projects/lighter-robinhood?update=b94370c0) (high severity, 29 changes) Lighter upgrade with a new ZkLighterVerifier and a new DesertVerifier (no sources published yet). Main contract changes: - L1 `createOrder` now takes a public market index instead of a perps market index. - `changePubKey` accepts `NIL_ACCOUNT_INDEX` to target the caller's own master account. - Minor validation changes. ### [2026-09-28 13:09 UTC](https://l2beat.com/layer2s/projects/lighter-robinhood?update=8dcd4c5a) (3 changes) Verified lighter implementation on robinhood. ### [2026-09-18 10:17 UTC](https://l2beat.com/layer2s/projects/lighter-robinhood?update=64487888) (high severity, 8 changes) Upgraded lighter verifier on robinhood. The new version is not yet reproduced from the sources. The .sol sources were missing from the blockscout and sourcify, I reconstructed and submitted them. ### [2026-08-24 11:23 UTC](https://l2beat.com/layer2s/projects/lighter-robinhood?update=efd95ad7) (high severity, 15 changes) New verifier deployed (no sources published yet). Also, upgraded Lighter contract to add `PricedOnly` asset margin mode (the same diff as this Lighter upgrade: https://disco.l2beat.com/diff/eth:0xE67606837D3d68a679B25B49b8abE5cB4B0Ae483/eth:0x8D692294a4824d868e35B3CEcd734aCf41B2342e). ### [2026-08-19 10:52 UTC](https://l2beat.com/layer2s/projects/lighter-robinhood?update=096f00a9) (3 changes) Verified all contracts and removed spam. ### [2026-08-13 10:10 UTC](https://l2beat.com/layer2s/projects/lighter-robinhood?update=16789fb8) (high severity, 10 changes) Network governor and upgrade master changed from an EOA to a 3/5 ms (old EOA is one of the members). Also, many lighter contract fields got discovered, probably due to one of the contracts becoming verified. ### [2026-08-03 14:31 UTC](https://l2beat.com/layer2s/projects/lighter-robinhood?update=80d6aa1a) (3 changes) Verified the source code of desert verifier. It is equivalent to the one in Lighter deployment on Ethereum. ### [2026-07-20 11:13 UTC](https://l2beat.com/layer2s/projects/lighter-robinhood?update=f395f3ca) (high severity, 62 changes) Lighter Robinhood upgraded ZkLighter and AdditionalZkLighter contracts and replaced the desert-mode verifier. The new implementations are not verified on Blockscout, so their source cannot be fetched. ### [2026-07-13 15:02 UTC](https://l2beat.com/layer2s/projects/lighter-robinhood?update=97472188) (5 changes) Initial discovery of the USDG-quoted Lighter instance on Robinhood Chain. ## Operator The section considers only the L3 properties. For more details please refer to [Robinhood Chain](https://l2beat.com/layer2s/projects/robinhood) ### Centralized operators Only the centralized operators can submit batches and verify them with a ZK proof, i.e. advance the state of the protocol. The network governor can add or remove validators. **Risks** - MEV can be extracted if the operator exploits their centralized position and frontruns user transactions. ### Priority requests can be submitted on Robinhood Chain Users can submit priority requests directly to the Lighter contract on Robinhood Chain. If the operators leave the oldest request unprocessed for more than 14d, anyone can activate desert mode. **References** - [Lighter contract on Robinhood Chain](https://robinhoodchain.blockscout.com/address/0x94bAB9693Ba2f6358507eFfcbd372b0660AFfF9d) ## Withdrawals The section considers only the L3 properties. For more details please refer to [Robinhood Chain](https://l2beat.com/layer2s/projects/robinhood) ### Regular exit The user initiates the withdrawal by submitting a regular transaction on this chain. When the block containing that transaction is settled the funds become available for withdrawal on L1. ZK proofs are required to settle blocks. Finally the user submits an L1 transaction to claim the funds. ### Escape hatch through ZK proofs If the centralized operators fail to process forced transactions after the deadline, the system can be frozen (desert mode) and users are expected to exit by reconstructing the latest settled state and providing a ZK proof of balance. **References** - [Deployed DesertVerifier on Robinhood Chain](https://robinhoodchain.blockscout.com/address/0x93c83bdA3A45241729Ce150C1e3677bA7389c0D0) ## Other considerations ### USDG is the quote and margin asset Unlike the Ethereum deployment, this fork uses Global Dollar (USDG) instead of USDC as the quote and margin asset. **References** - [Robinhood Chain token contracts](https://docs.robinhood.com/chain/contracts/) - [Robinhood Wallet perpetual futures documentation](https://robinhood.com/us/en/support/articles/robinhood-wallet-perpetual-futures/) ### External oracles used for index prices Lighter uses external oracles to determine index prices. External signatures are not verified by the settlement contract and the sequencer must be trusted to truthfully report data. **Risks** - Funds can be lost if the oracle prices are manipulated. **References** - [Lighter docs - Fair Price Marking](https://docs.lighter.xyz/perpetual-futures/fair-price-marking) ## Permissions Explore these contracts and permissions in Disco, L2BEAT's contract explorer: https://disco.l2beat.com/ui/p/lighter-robinhood ### Robinhood Chain #### Actors ##### SafeL2 Addresses: [0x8Caf9FF9392F39E87cBC65A130c026caaCD321ef](https://robinhoodchain.blockscout.com/address/0x8Caf9FF9392F39E87cBC65A130c026caaCD321ef) A Multisig with 3/5 threshold. - Can upgrade **with 21d delay** - Lighter [via: UpgradeGatekeeper with 21d delay] - ZkLighterVerifier [via: UpgradeGatekeeper with 21d delay] - Governance [via: UpgradeGatekeeper with 21d delay] - Can interact with Governance - manage validators, update the address that manages the insurance fund, update the treasury address that collects fees from markets, add and update markets and assets Participants (5): [0x07B06B78C1A1908dD8e59322Fd45F78406d2241f](https://robinhoodchain.blockscout.com/address/0x07B06B78C1A1908dD8e59322Fd45F78406d2241f), [0xA88dC20dc32c72E90032C409703DE04A942c9353](https://robinhoodchain.blockscout.com/address/0xA88dC20dc32c72E90032C409703DE04A942c9353), [0x7F7DB611e49edD1745cb9E92B74d7233f57682E0](https://robinhoodchain.blockscout.com/address/0x7F7DB611e49edD1745cb9E92B74d7233f57682E0), [0x9517f746f489a04679c0aff07c73bb50A6543377](https://robinhoodchain.blockscout.com/address/0x9517f746f489a04679c0aff07c73bb50A6543377), [0x42cDb51c23D03c69c05Fa691c3B5517Ace876213](https://robinhoodchain.blockscout.com/address/0x42cDb51c23D03c69c05Fa691c3B5517Ace876213) (Lighter Governor) ##### 3 EOAs Addresses: [0x114E0f5a71D169DdfBAef41160A0Ac789f7015cA](https://robinhoodchain.blockscout.com/address/0x114E0f5a71D169DdfBAef41160A0Ac789f7015cA) (Lighter Validator 2), [0x19f3e744b6e8FbA3Bc3737437dC82E394638b88b](https://robinhoodchain.blockscout.com/address/0x19f3e744b6e8FbA3Bc3737437dC82E394638b88b) (Lighter Validator 1), [0x8eC9b15e83E69418350d7286e9679e4DcEf7001f](https://robinhoodchain.blockscout.com/address/0x8eC9b15e83E69418350d7286e9679e4DcEf7001f) (Lighter Validator 3) - Can interact with Governance - can commit, verify, execute batches, and revert committed but not yet executed batches ##### Lighter Security Council Addresses: [0x4972E0CaCb2AC45644BA054838e96fF4f6f7eFDb](https://robinhoodchain.blockscout.com/address/0x4972E0CaCb2AC45644BA054838e96fF4f6f7eFDb) - Can interact with UpgradeGatekeeper - can reduce the upgrade delay to zero seconds ## Smart contracts ![A diagram of the smart contract architecture](https://l2beat.com/static/images/architecture/lighter-robinhood.3aab1e16.png) Explore these contracts and permissions in Disco, L2BEAT's contract explorer: https://disco.l2beat.com/ui/p/lighter-robinhood ### Robinhood Chain #### UpgradeGatekeeper Addresses: [0x43CfF77CD060A155dCe5deb12B93b875f69F2716](https://robin.etherscan.io/address/0x43CfF77CD060A155dCe5deb12B93b875f69F2716#code) Governance contract functioning like an upgrade timelock for downstream contracts. The current delay is 21d and can be entirely skipped by 0x4972E0CaCb2AC45644BA054838e96fF4f6f7eFDb. In practice every upgrade so far has been fast-tracked: the security council zeroes the notice period right before each upgrade is finished. - Roles: - **getMaster**: SafeL2 - **securityCouncilAddress**: Lighter Security Council #### DesertVerifier Addresses: [0x93c83bdA3A45241729Ce150C1e3677bA7389c0D0](https://robin.etherscan.io/address/0x93c83bdA3A45241729Ce150C1e3677bA7389c0D0#code) Verifies the zk proofs that let users exit their funds directly on L1 while the system is in desert mode (escape hatch). #### Lighter (escrow) Addresses: [0x94bAB9693Ba2f6358507eFfcbd372b0660AFfF9d](https://robin.etherscan.io/address/0x94bAB9693Ba2f6358507eFfcbd372b0660AFfF9d#code), [0x998ecf039Eb110b72F5F6C1Ea31C2fA41a458FAA](https://robin.etherscan.io/address/0x998ecf039Eb110b72F5F6C1Ea31C2fA41a458FAA#code) (Implementation #1 (Upgradable)), [0x8E1aF081a30C5d632999b8ECA8438B911a4670EB](https://robin.etherscan.io/address/0x8E1aF081a30C5d632999b8ECA8438B911a4670EB#code) (Implementation #2 (Upgradable)), [0x43CfF77CD060A155dCe5deb12B93b875f69F2716](https://robin.etherscan.io/address/0x43CfF77CD060A155dCe5deb12B93b875f69F2716#code) (Admin) The main rollup contract. It processes L2 batches, manages token deposits and withdrawals, allows users to submit priority requests and controls desert mode (escape hatch). This variant uses a configurable quote asset and commits state differences through host-chain calldata instead of EIP-4844 blob hashes. Logic is split between two contracts because of code-size limits, with many operations delegated to AdditionalZkLighter. - Roles: - **admin**: UpgradeGatekeeper; ultimately SafeL2 The following tokens are included in the value secured calculation: ETH, USDG, AAPL, AMZN, GOOGL, META, MSFT, NVDA, TSLA, ORCL, SPCX, BABA, USAR, USO, COIN, CRCL, QQQ, SPY, SGOV, SLV, AMD, INTC, MU, SNDK, CRWV, PLTR Can be upgraded by: SafeL2 with 21d delay #### ZkLighterVerifier Addresses: [0xe1aFBE2D670eFF0e7C8A41F080792C011916ac31](https://robin.etherscan.io/address/0xe1aFBE2D670eFF0e7C8A41F080792C011916ac31#code), [0x7817a34136c56A6097C7042B3cAAe24b9eEd9fb4](https://robin.etherscan.io/address/0x7817a34136c56A6097C7042B3cAAe24b9eEd9fb4#code) (Implementation (Upgradable)), [0x43CfF77CD060A155dCe5deb12B93b875f69F2716](https://robin.etherscan.io/address/0x43CfF77CD060A155dCe5deb12B93b875f69F2716#code) (Admin) The main ZK verifier of Lighter, settles the proofs of correct L2 state transition in the case of normal rollup operation. - Roles: - **admin**: UpgradeGatekeeper; ultimately SafeL2 Can be upgraded by: SafeL2 with 21d delay #### Governance Addresses: [0xf6F6Bd6eEA2b9A2041328732CcAe4c5e1DD278B7](https://robin.etherscan.io/address/0xf6F6Bd6eEA2b9A2041328732CcAe4c5e1DD278B7#code), [0x3468Dcab5a2D81Af207B3e301DFA889321989a61](https://robin.etherscan.io/address/0x3468Dcab5a2D81Af207B3e301DFA889321989a61#code) (Implementation (Upgradable)), [0x43CfF77CD060A155dCe5deb12B93b875f69F2716](https://robin.etherscan.io/address/0x43CfF77CD060A155dCe5deb12B93b875f69F2716#code) (Admin) Manages the list of validators and the network governor. - Roles: - **admin**: UpgradeGatekeeper; ultimately SafeL2 - **networkGovernor**: SafeL2 - **validators**: Lighter Validator 1, Lighter Validator 2, Lighter Validator 3 Can be upgraded by: SafeL2 with 21d delay 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).