Skip to main content

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 txs
    • eth_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:

Cross-chain transaction flow

Next Steps

Explore the practical implementation guides:

info

All the linked guides assumes that the specified chains being used are already Compose Network Enabled