
Overview
Reactive contracts can listen to event logs on one chain and trigger actions on another. To describe that flow, we use two roles:
- Origin: the chain where events happen and event logs are read from (the event source).
- Destination: the chain where Reactive Network delivers a callback transaction (the chain where state changes occur).
Origins and destinations don’t have to be the same. A single reactive contract can subscribe to events from multiple origin chains, and it can send callbacks to one or more destination chains. Your Solidity logic can also choose the destination conditionally.
Callback Proxy Address
Callbacks are delivered by Reactive Signer, which posts transactions to destination chains. These transactions pass through a callback proxy contract, which makes them verifiable and safe for destination-side contracts.
A destination contract can validate a callback by checking that msg.sender is the relevant callback proxy and the original sender from Reactive Network is Reactive Signer.
Mainnet Chains
Origin is the chain where events originate (and are read from). Destination is the chain where callbacks are delivered in response to those events. Mainnets and testnets must not be mixed: if the origin is a mainnet, the destination must also be a mainnet.
| Chain | Origin | Destination | Chain ID | Callback Proxy | RPC |
|---|---|---|---|---|---|
| Abstract | ✅ | ✅ | 2741 | 0x9299472A6399Fd1027ebF067571Eb3e3D7837FC4 | Chainlist |
| Arbitrum | ✅ | ✅ | 42161 | 0x4730c58FDA9d78f60c987039aEaB7d261aAd942E | Chainlist |
| Avalanche | ✅ | ✅ | 43114 | 0x934Ea75496562D4e83E80865c33dbA600644fCDa | Chainlist |
| Base | ✅ | ✅ | 8453 | 0x0D3E76De6bC44309083cAAFdB49A088B8a250947 | Chainlist |
| BSC | ✅ | ✅ | 56 | 0xdb81A196A0dF9Ef974C9430495a09B6d535fAc48 | Chainlist |
| Ethereum | ✅ | ✅ | 1 | 0x1D5267C1bb7D8bA68964dDF3990601BDB7902D76 | Chainlist |
| HyperEVM | ✅ | ✅ | 999 | 0x9299472A6399Fd1027ebF067571Eb3e3D7837FC4 | Chainlist |
| Linea | ✅ | ✅ | 59144 | 0x9299472A6399Fd1027ebF067571Eb3e3D7837FC4 | Chainlist |
| Plasma | ✅ | ✅ | 9745 | 0x9299472A6399Fd1027ebF067571Eb3e3D7837FC4 | Chainlist |
| Reactive | ✅ | ✅ | 1597 | 0x8888888888888888888888888888888888888888 | https://mainnet-rpc.rnk.dev/ |
| Sonic | ✅ | ✅ | 146 | 0x9299472A6399Fd1027ebF067571Eb3e3D7837FC4 | Chainlist |
| Unichain | ✅ | ✅ | 130 | 0x9299472A6399Fd1027ebF067571Eb3e3D7837FC4 | Chainlist |
Testnet Chains
Origin is the chain where events originate (and are read from). Destination is the chain where callbacks are delivered in response to those events. Mainnets and testnets must not be mixed: if the origin is a testnet, the destination must also be a testnet.
| Chain | Origin | Destination | Chain ID | Callback Proxy | RPC |
|---|---|---|---|---|---|
| Avalanche Fuji | ✅ | ➖ | 43113 | ➖ | Chainlist |
| Base Sepolia | ✅ | ✅ | 84532 | 0xa6eA49Ed671B8a4dfCDd34E36b7a75Ac79B8A5a6 | Chainlist |
| BSC Testnet | ✅ | ➖ | 97 | ➖ | Chainlist |
| Ethereum Sepolia | ✅ | ✅ | 11155111 | 0xc9f36411C9897e7F959D99ffca2a0Ba7ee0D7bDA | Chainlist |
| Reactive Lasna | ✅ | ✅ | 5318007 | 0x8888888888888888888888888888888888888888 | https://lasna-rpc.rnk.dev/ |
| Polygon Amoy | ✅ | ➖ | 80002 | ➖ | Chainlist |
| Unichain Sepolia | ✅ | ✅ | 1301 | 0x9299472A6399Fd1027ebF067571Eb3e3D7837FC4 | Chainlist |