Getting Started
This high-level guide introduces how Compose enables cross-chain transactions and composability.
How Compose Transactions Work
Compose enables developers to execute transactions across multiple blockchains atomically through a single RPC call: eth_sendXTransaction.
This allows the user to bundle multiple transactions from different chains into one atomic operation. However, not all transactions can be bundled and sent via eth_sendXTransaction. Only transactions that make use of the mailbox system can be included in cross-chain bundles. Our bridge contracts use these mailbox functions and can be used directly. For custom contracts that need to integrate with the mailbox system, see the Custom Contract Development guide.
Transaction Signing Requirements
The eth_sendXTransaction RPC method requires signed transactions to function, as it passes raw transaction data for execution across multiple chains. While it's possible to sign transactions locally with a private key, this approach is not realistic for production dApps as it requires users to manage private keys and gas fees on each chain.
UserOperations for Production Applications
The user experience can be improved by using UserOperations, which integrate with Account Abstraction (AA) to provide:
- Smart Account Wallets: Advanced features like batch operations and custom validation
- Single Signature: Sign multiple cross-chain transactions with one action
- Paymaster usage: Developers can choose to pay the gas for certain transactions
This approach requires building and signing User Operations, which is more complex but provides a superior user experience for production applications.
Core Components
The following is a list of important components that we deem useful, in order to obtain a good UX when developing cross-chain composable dApps:
- Account Abstraction (AA): Smart contract–based wallet infrastructure that lets users define custom transaction logic
- UserOperation (UserOp): ERC-4337 AA transaction data structure containing the call, gas limits, and fees
- Kernel Account (ZeroDev, v3.1): The smart account implementation used with Compose
- Multi‑Chain ECDSA Validator: One validator plugin that lets the same owner control ZeroDev Kernels on multiple chains
- Compose Sequencer custom RPC methods:
compose_buildSignedUserOpsTx→ turns signed UserOps into per‑chain raw txseth_sendXTransaction→ submits multiple raw txs as one atomic bundle across chains
The diagram below illustrates the complete cross-chain transaction flow for a Composable dApp which uses UserOperations:

Next Steps
Explore the practical implementation guides:
- Cross-Chain Messaging: Build complex cross-chain operations
- Bridging Assets: Learn to transfer tokens across chains
- Composable dApps: Create production-ready applications with UserOperations
- Custom Contract Development: Develop cross-chain contracts by including the MailBox contracts
All the linked guides assumes that the specified chains being used are already Compose Network Enabled