RISE System Contracts
This page provides a reference for all the system contract addresses on RISE Testnet.
Layer 1 (Sepolia) Contracts
These contracts are deployed on the Sepolia Ethereum testnet and handle the communication between L1 and RISE Testnet.
Contract Name | Description | Address |
---|---|---|
AnchorStateRegistryProxy | Stores state roots of the L2 chain | 0x5ca4bfe196aa3a1ed9f8522f224ec5a7a7277d5a |
BatchSubmitter | Submits batches of transactions | 0x45Bd8Bc15FfC21315F8a1e3cdF67c73b487768e8 |
Challenger | Handles challenges to invalid state transitions | 0xb49077bAd82968A1119B9e717DBCFb9303E91f0F |
DelayedWETHProxy | Wrapped ETH with withdrawal delay | 0x3547e7b4af6f0a2d626c72fd7066b939e8489450 |
DisputeGameFactoryProxy | Creates dispute games for challenging invalid state | 0x790e18c477bfb49c784ca0aed244648166a5022b |
L1CrossDomainMessengerProxy | Handles message passing from L1 to L2 | 0xcc1c4f905d0199419719f3c3210f43bb990953fc |
L1ERC721BridgeProxy | Bridge for NFTs between L1 and L2 | 0xfc197687ac16218bad8589420978f40097c42a44 |
L1StandardBridgeProxy | Bridge for ETH and ERC20 tokens | 0xe9a531a5d7253c9823c74af155d22fe14568b610 |
MIPS | MIPS verification for fault proofs | 0xaa33f21ada0dc6c40a33d94935de11a0b754fec4 |
OptimismMintableERC20FactoryProxy | Factory for creating bridged tokens on L2 | 0xb9b92645886135838abd71a1bbf55e34260dabf6 |
OptimismPortalProxy | Main entry point for L1 to L2 transactions | 0x77cce5cd26c75140c35c38104d0c655c7a786acb |
PreimageOracle | Stores preimages for fault proofs | 0xca8f0068cd4894e1c972701ce8da7f934444717d |
Proposer | Proposes new L2 state roots | 0x407379B3eBd88B4E92F8fF8930D244B592D65c06 |
SystemConfigProxy | Configuration for the RISE system | 0x5088a091bd20343787c5afc95aa002d13d9f3535 |
UnsafeBlockSigner | Signs blocks in development mode | 0x8d451372bAdE8723F45BF5134550017F639dFb11 |
Layer 2 (RISE Testnet) Contracts
These are the predeploy contracts on RISE Testnet (L2).
Contract Name | Description | Address |
---|---|---|
L2ToL1MessagePasser | Initiates withdrawals to L1 | 0x4200000000000000000000000000000000000016 |
L2CrossDomainMessenger | Handles message passing from L2 to L1 | 0x4200000000000000000000000000000000000007 |
L2StandardBridge | L2 side of the token bridge | 0x4200000000000000000000000000000000000010 |
L2ERC721Bridge | L2 side of the NFT bridge | 0x4200000000000000000000000000000000000014 |
SequencerFeeVault | Collects sequencer fees | 0x4200000000000000000000000000000000000011 |
OptimismMintableERC20Factory | Creates standard bridged tokens | 0x4200000000000000000000000000000000000012 |
OptimismMintableERC721Factory | Creates bridged NFTs | 0x4200000000000000000000000000000000000017 |
L1Block | Provides L1 block information | 0x4200000000000000000000000000000000000015 |
GasPriceOracle | Provides gas price information | 0x420000000000000000000000000000000000000F |
ProxyAdmin | Admin for proxy contracts | 0x4200000000000000000000000000000000000018 |
BaseFeeVault | Collects base fee | 0x4200000000000000000000000000000000000019 |
L1FeeVault | Collects L1 data fees | 0x420000000000000000000000000000000000001A |
GovernanceToken | RISE governance token | 0x4200000000000000000000000000000000000042 |
SchemaRegistry | EAS schema registry | 0x4200000000000000000000000000000000000020 |
EAS | Ethereum Attestation Service | 0x4200000000000000000000000000000000000021 |
Using System Contracts
These system contracts follow similar interfaces to other Ethereum Layer 2 solutions. You can interact with these contracts using standard Ethereum libraries and tools.
Example: Bridging ETH from L1 to L2
solidity
// On Sepolia (L1)
IL1StandardBridge bridge = IL1StandardBridge(0xe9a531a5d7253c9823c74af155d22fe14568b610);
// Deposit ETH to L2
bridge.depositETH{value: amount}(
minGasLimit,
emptyBytes // No additional data
);
Example: Sending a Message from L2 to L1
solidity
// On RISE Testnet (L2)
IL2CrossDomainMessenger messenger = IL2CrossDomainMessenger(0x4200000000000000000000000000000000000007);
// Send message to L1
messenger.sendMessage(
targetL1Address,
abi.encodeWithSignature("someFunction(uint256)", value),
minGasLimit
);
For detailed information about how to use these contracts, refer to the RISE Developer Documentation.