Proposal summary
This proposal withdraws 42,000 USDC and 90 WETH of reserves from the Compound III USDC and WETH markets on Unichain and sends them to the Compound Timelock on Ethereum Mainnet. The USDC is bridged using Circle's CCTP, and the WETH is unwrapped to ETH and bridged using the Unichain native bridge.
Withdrawing the reserves is the final step of the deprecation process and secures the markets' protocol-owned funds by moving them to the Timelock on Mainnet.
Reserves withdrawal
Reserves are the protocol-owned portion of a market's base asset: the Comet's base token balance plus outstanding borrows, minus what is owed to suppliers, as reported by getReserves(). They do not belong to any user, so withdrawing them does not change supplier or borrower balances. Only the governor of the market (the Unichain Timelock) can call withdrawReserves.
| Source | Amount |
|---|
cUSDCv3 reserves at proposal creation (getReserves()) | 54,707.87 USDC |
| Withdrawn from cUSDCv3 and sent to the Mainnet Timelock | 42,000.00 USDC |
cWETHv3 reserves at proposal creation (getReserves()) | 104.74 WETH |
| Withdrawn from cWETHv3, unwrapped to ETH and sent to the Mainnet Timelock | 90.00 WETH |
The proposal does not withdraw all reserves. Both markets still have open borrow positions, so the remaining reserves are left as a buffer that keeps the markets solvent until those positions are repaid or liquidated. The rest can be withdrawn by a later proposal once they are closed.
Proposal actions
The proposal action sends a message through the Unichain L1 Cross Domain Messenger to the Unichain Bridge Receiver, which queues the following calls on the Unichain Timelock:
- Call
withdrawReserves(address,uint256) on the Unichain cUSDCv3 to withdraw 42,000 USDC to the Unichain Timelock.
- Approve the CCTP Token Messenger to spend 42,000 USDC from the Unichain Timelock.
- Call
depositForBurn on the CCTP Token Messenger to burn 42,000 USDC on Unichain and mint it to the Mainnet Timelock.
- Call
withdrawReserves(address,uint256) on the Unichain cWETHv3 to withdraw 90 WETH to the Unichain Timelock.
- Call
withdraw(uint256) on Unichain WETH to unwrap it to ETH.
- Call
bridgeETHTo on the L2 Standard Bridge to bridge 90 ETH to the Mainnet Timelock.
Once Circle attests the burn, the USDC is minted on Mainnet with receiveMessage on the CCTP Message Transmitter. The ETH withdrawal is proven and, after the challenge period, finalized on the Unichain Optimism Portal on Mainnet. Anyone can submit these transactions, and the funds can only be released to the Mainnet Timelock.