Compose Universal Bridge
A Shared Liquidity Layer for Cross-Rollup Assets
The Universal Bridge represents the asset side of Compose: a shared bridge that lets rollups move tokens smoothly between each other and Ethereum, while keeping liquidity canonical and UX simple.
At a high level:
Every asset has a canonical chain:
For some assets, the canonical chain is Ethereum L1.
For others, the canonical chain is a Compose rollup (L2-native assets).
Assets that have a canonical representation on several chains can move between them with no wrapping.
Compose rollups use a shared bridge that:
Locks native tokens into universal LockBoxes on their canonical chain (often L1, but not always).
Mints ComposeableERC20 (CET) tokens on other chains that represent those native assets.
L2 ↔ L2 transfers happen via lightweight messages and a Mailbox abstraction, with settlement happening later via validity proofs.
The same bridge design works for:
Compose rollups that are part of the Compose ecosystem.
External rollups (rollups not integrated with Compose) that expose the same canonical messaging interface.
For assets whose canonical chain is Ethereum:
ETH and ERC-20s are pooled into shared LockBoxes on L1.
ERC20LockBox is implemented as an ERC-4626 tokenized vault, turning locked ERC-20 balances into fungible vault shares and enabling clean accounting for shared liquidity across rollups.
The result is a unified liquidity layer: some assets are native to L1, others are native to specific L2s, but all are represented via CET and can be moved across rollups using the same interface.
Design Goals
The Universal Bridge is designed around strict requirements:
1. Custody centralized in canonical chains
Each asset has at least one canonical chain.
On the canonical chain, the asset’s native token contract or LockBox holds the actual collateral.
On non-canonical chains, the asset appears only as CET.
Unified representation on non-canonical chains
When an asset moves to a non-canonical chain, it is represented as a ComposeableERC20 (CET). CETs are ERC-20 tokens with standardized cross-chain metadata and restricted mint/burn entry points.
Symmetric bridging between chains
The bridge supports moving both:
Native tokens on their canonical chain.
CET tokens that represent assets native elsewhere.
Safety by design
Only the bridge contracts can mint/burn CET.
The owner retains sovereignty over native assets and mint/burn decisions.
The composability settlement layer guarantees atomicity and double-spending protection through validity proofs.
Separation of fast UX and slow settlement
Fast path: a chain mints tokens as soon as it reads a SEND message from its local Mailbox.
Slow path: later, a settlement process compares mailboxes across chains and checks proofs. If something doesn’t match, settlement can rollback, undoing effects from inconsistent messages.
Universal LockBoxes where needed
For L1-canonical assets: ETH uses ETHLockBox, and ERC-20s use ERC20LockBox (implemented as an ERC-4626 vault, so liquidity from many rollups is pooled into a single, fungible vault and can be withdrawn via any rollup).
For L2-native assets, the canonical chain is a particular rollup, and collateral is held by the native token contract or native LockBox on that rollup.
Core Building Blocks
2.1 ComposeableERC20 (CET)
CET is the bridge’s universal wrapped token on non-canonical chains. It is:
ERC-20 compatible.
ERC-7802 compatible for cross-chain metadata.
Equipped with bridge-only mint/burn gates.
Flavors of CET
CoreComposeable (Core CET):
Canonical chain implementation for the native asset, in CET form.
Controlled by the asset’s owner.
Local “normal” mint / burn may exist, but are owner-gated.
Cross-chain mint / burn are gated by the bridge.
Is canonical for each chain it is deployed on.
WrappedComposeable (Wrapped CET):
Represents an asset in a non-canonical chain.
Deployed by the bridge at deterministic addresses (CREATE2).
2.2 Wrapped CET Redemption
If a canonical Core CET contract representing an asset was deployed, holders of its wrapped variations on the chain can convert them by utilizing the redeemWrappedCET functionality of the bridge. This lets ecosystems upgrade from ad-hoc wrapped tokens to a clean canonical CET without a global migration.
2.3 CET Factory
CETs are deployed via a CREATE2 factory at deterministic addresses, instead of being tracked in a registry. This allows wallets and explorers to pre-compute CET addresses given the canonical asset address.
Message-Passing Composability and Atomicity
The Universal Bridge builds upon the Shared-Publisher composability solution, inheriting its atomicity feature and security mechanisms, such as replay protection.
Following its message-passing architecture, it performs the following flow:
The source chain bridge transaction calls a write operation to send a message to the destination chain, alerting it to the bridge operation, with the appropriate arguments.
Where send_args is a payload with the token’s address, canonical chain ID, name, symbol, and the operation’s amount.
The destination chain’s sequencer receives this message and puts it in its inbox, as described by the composability protocol. In parallel, the bridge transaction calls a read operation to process it. Then, upon validation, the bridge writes back an ACK message.
The source chain follows the same flow; the sequencer populates its inbox with the ACK upon receiving it, and the transaction calls the read operation for it.
The session_id attribute is used by the composability protocol, serving as a nonce for replay protection. More details about the composability protocol can be found in its minipaper.
Bridging Between Chains
4.1 Canonical vs Non-Canonical on a Given Chain
The bridge on each chain, ComposeL2ToL2Bridge or ComposeL1Bridge, handles:
Locking native tokens on their canonical chain.
Burning/Minting CET on non-canonical chains.
Writing/reading the appropriate mailbox messages, as discussed above.
Deployments use CREATE2, so the same bridge lives at the same address on all chains.
4.2 Source Chain: Bridging a Native Token (non CET)
When the chain is the canonical chain for an asset, the user bridges the native token:
On L1, the native token might be moved into a LockBox (e.g., ERC20LockBox, an ERC-4626 vault).
On a canonical L2, the native token is held by the bridge or a native LockBox.
4.3 Source Chain: Bridging CET
CET is burned on the source chain.
Later, either native tokens are unlocked on the canonical chain, or CET is minted on the destination chain.
4.4 Destination Chain: Claiming Tokens and Sending ACK
On the destination chain, the receiver calls receiveTokens. The function reads from the Mailbox, mints the corresponding CET tokens, and delivers an ACK message back.
ETH Transfers and ETHLiquidity
5.1 ETHLiquidity for Compose L2s
For Compose L2s that ship with a pre-loaded ETH pool, ETH bridging uses an ETHLiquidity pool:
A pre-funded pool of ETH is made available across a set of Compose L2s.
Bridging ETH between these Compose L2s adjusts balances in this pool.
This gives fast ETH movement between these L2s without waiting on L1.
5.2 External Rollups and CET-Wrapped ETH
For external rollups (non-Compose chains):
There is no shared pre-funded ETH pool.
ETH is always handled as CET-wrapped ETH when bridged between external rollups or between external rollups and Compose L2s.
L1 ↔ L2 for L1-Canonical Assets (Compose Rollups)
For L1-native assets:
L1 holds them in shared LockBoxes:
ETHLockBox for ETH.
ERC20LockBox for ERC-20s, implemented as an ERC-4626 tokenized vault.
Compose rollups bridge to/from L1 via OP contracts variants: ComposePortal, L1ComposeBridge, and L2ComposeBridge, minting CET on L2 and managing deposits/withdrawals from these LockBoxes.
External Rollups
External rollups integrate by exposing compatible messaging and validity-proof interfaces. The settlement process uses validity proofs and mailbox consistency to detect fake deposits and roll back inconsistent sessions if needed. The external rollup’s native proof system is preserved by reutilizing their canonical CrossDomainMessenger and OptimismPortal contracts on L1 for the L1ComposeBridge deposits.
Safety and Invariants Recap
CET mint/burn is only allowed for the bridge.
For each asset, the total CET on non-canonical chains plus native collateral on the canonical chain is conserved.
ERC20LockBox and ETHLockBox follow standard accounting rules (ERC-4626 for ERC20LockBox).
The composability and settlement layers provide atomicity and replay protection.
API/Developer Experience
Summary
The Universal Bridge is a canonical-chain-centric cross-rollup liquidity layer where:
Each asset picks a canonical chain (L1 or L2).
Native tokens live on their canonical chain, using the CET representation on other chains.
L1-native ERC-20s and ETH use shared LockBoxes (ETHLockBox, ERC20LockBox as ERC-4626).
Compose’s L2s with preloaded pools use ETHLiquidity; external rollups use CET-wrapped ETH.

