Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Guides

Launching a Cross-Rollup Intent Routing System

This guide provides a technical walkthrough for building a system that routes and executes user intents across different rollup networks, addressing fragmentation and unified state.
Chainscore © 2026
introduction
ARCHITECTURAL GUIDE

Launching a Cross-Rollup Intent Routing System

A technical guide to designing and deploying a system that routes user intents across multiple rollup environments, enabling seamless cross-chain interactions.

A cross-rollup intent routing system is a middleware layer that interprets user-specified goals (intents) and finds optimal execution paths across fragmented rollup ecosystems. Unlike traditional transaction-based bridges that require users to specify exact steps, intent-based systems focus on the desired outcome—such as "swap 1 ETH for the best-priced USDC on any supported chain." The core components of such a system include an intent solver network that competes to fulfill requests, a cross-chain messaging layer (like Hyperlane or LayerZero) for state attestation, and on-chain settlement contracts on each destination rollup. This architecture shifts complexity from the end-user to specialized solvers, abstracting away the underlying multi-chain mechanics.

The first step in launching a system is defining your intent schema. This is a structured data format that solvers and the protocol can understand. For a swap intent, the schema must include fields for the source asset, amount, desired destination asset, constraints (like maximum slippage), and a validity window. This is typically expressed as a JSON object signed by the user's wallet. You then need to deploy a set of smart contracts: a Dispatcher contract on the source chain to receive signed intents, an Aggregator contract (often on a decentralized settlement layer like Ethereum) to collect solver bids, and Executor contracts on each target rollup to finalize the routed transactions. These contracts must be audited, especially the logic handling cross-chain message verification.

Integrating a secure cross-chain messaging protocol is critical. You must choose a provider (e.g., Axelar, Wormhole, CCIP) and deploy its required light client or verifier contracts on your supported rollups. Your Executor contracts will rely on these to validate that a transaction was completed on the source chain before executing on the destination. For example, after a solver fulfills a swap on Arbitrum, they submit proof to the Executor on Optimism. The Executor checks the proof against the verifier contract, and if valid, releases the destination funds to the user. This atomicity—ensuring the entire cross-rollup action either succeeds or fails—is a key security challenge.

The off-chain solver network is the engine of the system. You need to design an open solver API that allows participants to subscribe to intent auctions, query liquidity across integrated DEXs (like Uniswap, Curve) on different rollups, and submit signed fulfillment bundles. A basic solver might use a MEV-boost-like model, searching for the most profitable routing path across chains while respecting the user's constraints. To incentivize participation, the protocol typically takes a small fee from successful fulfillments, which is shared with the winning solver. Bootstrapping this network often requires running a few canonical solvers initially to ensure reliable service.

Finally, thorough testing is required before mainnet launch. This involves deploying your entire stack on testnets (e.g., Sepolia, Arbitrum Sepolia, Optimism Goerli) and conducting integration tests with the cross-chain messaging layer. Key test scenarios include: intent submission and expiration, solver competition under network congestion, partial fulfillment failures, and malicious intent handling. Monitoring and analytics are also crucial post-launch; you'll need to track metrics like average fulfillment time, solver profitability, and cross-chain message latency to optimize performance and ensure a reliable user experience for cross-rollup operations.

prerequisites
CROSS-ROLLUP INTENT ROUTING

Prerequisites and System Architecture

Before deploying a cross-rollup intent routing system, you must understand its core components and the technical environment required for development and operation.

An intent routing system is a decentralized network of off-chain actors, known as solvers, that compete to fulfill user-submitted intent declarations. An intent is a signed, declarative statement of a desired outcome (e.g., "Swap 1 ETH for the best possible amount of USDC across Arbitrum and Optimism") without specifying the exact execution path. The system's architecture typically comprises three layers: the User Interface (wallets, dApps), the Solver Network (off-chain execution engines), and the Settlement Layer (on-chain smart contracts for finalizing transactions). This separation allows for complex, gas-optimized execution paths to be discovered off-chain before a single, atomic transaction is settled on-chain.

The primary prerequisite is a robust development environment. You will need Node.js (v18+), a package manager like yarn or npm, and familiarity with TypeScript. Essential blockchain tooling includes Foundry for smart contract development and testing, and Hardhat or a similar framework for deployment scripts. You must have access to RPC endpoints for the target rollups (e.g., Arbitrum, Optimism, Base) and a wallet with testnet funds. A deep understanding of Ethereum's ERC-4337 Account Abstraction standard is crucial, as intents often leverage user operations and bundlers. Knowledge of interoperability protocols like Axelar, LayerZero, or native bridging mechanisms is also required for cross-chain messaging.

The core smart contract architecture includes several key components. The Intent Contract is the on-chain registry where users post signed intent objects. The Solver Contract manages the registration, staking, and slashing logic for the off-chain solver network. A Settlement Contract or Executor is responsible for atomically executing the winning solver's proposed transaction bundle. These contracts must be deployed on each rollup in the network. For cross-rollup functionality, you will need Verification Contracts on destination chains that can cryptographically verify messages and proofs sent from a source chain's settlement layer, ensuring the entire cross-chain intent execution is trust-minimized.

key-concepts
ARCHITECTURE

Core Components of an Intent Router

An intent routing system translates user goals into executable on-chain transactions. These are the essential components required to build one.

01

Intent Expression Language

A domain-specific language (DSL) or schema for users to declare their desired outcome without specifying the exact transaction path. This is the core abstraction layer.

  • Key elements: Constraints (e.g., maxSlippage: 0.5%), objectives (e.g., swap ETH for USDC), and conditions (e.g., deadline: 1 hour).
  • Examples: UniswapX's signed orders, Anoma's Taiga intent model, or SUAVE's preference fields.
  • Implementation: Often uses structured JSON or a custom grammar parsed by the solver network.
02

Solver Network & Competition

A decentralized network of solvers (also called fillers or resolvers) that compete to discover and propose the optimal transaction path to fulfill a user's intent.

  • Role: Solvers monitor the intent mempool, simulate execution across multiple chains and DApps, and submit fulfillment bundles.
  • Incentives: Solvers earn fees via MEV capture or explicit user tips. Systems like CoW Protocol and UniswapX use batch auctions to optimize for solver competition.
  • Security: Requires staking, slashing, and reputation systems to prevent malicious solver behavior.
03

Cross-Chain Execution Layer

The infrastructure that enables atomic execution of the solver's proposed transaction path across multiple blockchains or rollups.

  • Requires: A secure messaging layer (like Hyperlane, LayerZero, or Axelar) and on-chain verification.
  • Mechanism: Uses a primary settlement chain (e.g., Ethereum) for intent resolution and proof verification, with connected app chains or rollups acting as spokes.
  • Example Flow: A solver's bundle is executed on Arbitrum, a proof is relayed to Ethereum for verification, and final settlement occurs on Base.
04

Intent Mempool & Order Flow Auction

A dedicated, permissionless mempool where users broadcast signed intents. This space often hosts an order flow auction (OFA) where solvers bid for the right to fulfill them.

  • Difference from TX mempool: Intents are not executable transactions; they are declarations of desired state changes.
  • OFA Benefits: Auctions like those in CoW Protocol can aggregate liquidity and reduce MEV extraction from users.
  • Implementation: Can be a smart contract on a settlement layer or a peer-to-peer network with encrypted mempools for privacy.
05

Verification & Settlement Contract

The on-chain smart contract that acts as the final arbiter. It verifies solver proofs, ensures constraints are met, and atomically settles the transaction.

  • Core Functions: 1) Validates cryptographic proofs of execution from auxiliary chains. 2) Checks intent constraints (slippage, deadline). 3) Releases user funds to the solver upon successful verification.
  • Security Critical: This contract holds user funds in escrow; its code must be rigorously audited. It is typically deployed on a secure, decentralized settlement layer like Ethereum mainnet.
06

User Abstraction & Signing

The client-side tooling that allows users to interact with the system without managing gas, nonces, or complex transaction building.

  • Account Abstraction (AA): Uses smart contract wallets (ERC-4337) or native AA chains (like zkSync) to enable gas sponsorship, batch intents, and social recovery.
  • Signing Schemes: Supports EOA signatures (EIP-712), Passkeys, or multi-party computation (MPC) wallets for secure intent signing.
  • SDKs: Developers integrate via SDKs (e.g., ZeroDev, Biconomy) to embed intent-based UX directly into their applications.
step-1-intent-standard
ARCHITECTURE

Step 1: Define an Intent Standard and User Operation

The foundation of an intent-based system is a standardized data structure that expresses user goals without specifying low-level execution steps. This step defines the core schema.

An intent is a declarative statement of a user's desired outcome, such as "swap 1 ETH for the best possible price of DAI across rollups L2 and L3 within 24 hours." Unlike a traditional transaction with a fixed execution path, an intent delegates the "how" to specialized solvers. To enable interoperability and automated processing, you must first define a formal intent standard. This is typically an on-chain or off-chain schema, like an EIP or a structured JSON object, that all participants in the system agree to use.

The standard must capture essential components: the signer (who expresses the intent), the constraints (rules that must be met, like deadline, minimum output, or allowed protocols), and the objective (the desired end state). For cross-rollup routing, constraints are critical and must include chain-specific parameters like destination chain IDs, bridge identifiers, and gas limits per hop. A common approach is to extend the ERC-4337 UserOperation structure, which already defines fields for sender, nonce, callData, and signatures, adding custom fields for intent-specific logic.

Here is a simplified example of an intent object schema for a cross-rollup swap:

json
{
  "standard": "ChainscoreIntent-v1",
  "signer": "0x...",
  "deadline": 1735689600,
  "constraints": {
    "sourceChainId": 1,
    "sourceAsset": "0x...",
    "sourceAmount": "1000000000000000000",
    "targetChainId": 42161,
    "targetAsset": "0x...",
    "minOutputAmount": "3200000000",
    "allowedBridges": ["Hop", "Across"],
    "allowedDexs": ["Uniswap V3", "Balancer"]
  }
}

This structure gives solvers the flexibility to find a route while ensuring the user's core requirements are enforced.

Once the intent is signed by the user's wallet, it becomes a User Operation ready for submission to a dedicated mempool. In an ERC-4337 context, the callData within the UserOp would encode a call to a handler contract that knows how to validate and fulfill the intent's constraints. Defining this standard upfront ensures that intent creators, solvers, and the final settlement layer all speak the same language, enabling a competitive solver market to emerge.

step-2-solver-network
ARCHITECTURE

Step 2: Build the Solver Network and Auction Mechanism

This step details the core components for executing user intents: the decentralized network of solvers and the auction that determines who fulfills each request.

The solver network is a permissionless set of off-chain agents that compete to fulfill user intents. A solver's job is to find the most efficient execution path for a request like "swap X for Y across chains." They analyze liquidity across DEXs, bridges, and rollups, simulating transactions to discover the optimal route that meets the user's constraints (e.g., minimum output, deadline). Popular frameworks for building solvers include Flashbots SUAVE for its encrypted mempool and intent-centric design, and custom setups using EigenLayer for leveraging Ethereum's economic security.

The auction mechanism is how solvers compete. When a user submits an signed intent to the system, it is broadcast to the solver network. Solvers then submit sealed bids back to an auctioneer contract on a settlement layer (like Ethereum mainnet or a shared rollup). Each bid contains a commitment to the execution path and the proposed fee. The contract runs a verification game (e.g., via optimistic challenge periods or ZK proofs) to ensure the proposed solution is valid, then awards the intent to the solver with the best bid, typically the one offering the highest net output for the user.

Critical to this model is solution privacy and censorship resistance. Using a system like SUAVE, solvers can receive encrypted intents and submit encrypted bids, preventing front-running and predatory trading. The auction must also be designed to resist centralization pressures; mechanisms like MEV smoothing or a commit-reveal scheme can prevent a few large solvers from dominating the network and ensure long-term permissionless participation.

Here is a simplified conceptual flow for the on-chain auction contract, illustrating the commit-reveal pattern to prevent sniping:

solidity
// Pseudocode for auction steps
1. User posts encrypted intent with hash(IntentData).
2. Solvers commit hash(Bundle, Fee) with a stake.
3. After commit phase, solvers reveal their full bundles.
4. Contract verifies the bundle fulfills the intent.
5. Contract selects winner with best user outcome, slashing stakes for invalid reveals.

To launch, you must define the economic incentives. Solvers earn fees from users and potentially cross-chain MEV. They must also be slashed for malicious behavior (e.g., submitting invalid solutions). The settlement layer must be chosen for its security and cost; Ethereum mainnet offers highest security for settlement, while Layer 2 rollups like Arbitrum or Optimism offer lower fees. The final architecture creates a robust, competitive marketplace where users get optimal execution without needing expertise in the fragmented cross-rollup landscape.

step-3-cross-chain-execution
IMPLEMENTATION

Step 3: Implement Cross-Chain Execution via Messaging

This guide details the core implementation of a cross-rollup intent routing system, focusing on the messaging layer that connects intent solvers on a source chain with executors on a destination chain.

The messaging layer is the critical infrastructure that enables your intent routing system to operate across isolated rollups. After an intent is solved on a source chain (e.g., Arbitrum), the resulting transaction calldata must be reliably delivered to an executor on the destination chain (e.g., Optimism). For production systems, you should integrate with a general-purpose messaging protocol like Axelar, LayerZero, or Wormhole. These protocols abstract away the complexities of validating and relaying messages between heterogeneous chains, providing a secure and standardized interface.

Your system's CrossChainMessenger contract on the source chain will call the chosen protocol's gateway. For example, using Axelar, you would call callContract on the AxelarGateway to send a payload. This payload must be a standardized packet containing the destination chain ID, the address of your executor contract, and the encoded transaction data from the solved intent. It's crucial to include a unique message ID and a nonce for idempotency and tracking on the destination.

On the destination chain, a corresponding CrossChainExecutor contract must be deployed to receive and process these messages. This contract will be registered as the authorized receiver with the messaging protocol. Upon receiving a verified message, the executor's primary function is to decode the payload and perform a low-level call or delegatecall to the target contract specified in the intent. Implement strict access controls, ensuring only the authorized messenger contract can trigger execution, and include a nonce replay protection mechanism to prevent duplicate transactions.

Error handling and gas management are paramount. Cross-chain messages can fail due to revert conditions on the destination. Your executor should implement a try-catch pattern or use a gas-efficient forwarder proxy to isolate execution failures. Consider using EIP-2771 for meta-transactions or a relayer network to sponsor gas on the destination chain, as the original intent solver may not hold native gas tokens there. Failed messages should emit events for off-chain monitoring and potential retry mechanisms.

Finally, you must establish a state synchronization and attestation flow. The destination executor should emit events upon successful or failed execution. An off-chain orchestrator service should listen to these events on both chains, updating the system's global state (e.g., marking an intent as 'fulfilled') and providing proof of completion back to the user. This closed-loop system, powered by secure cross-chain messaging, transforms isolated intents into interoperable, executable actions across the modular blockchain ecosystem.

step-4-fee-management
COST MANAGEMENT

Step 4: Handle Gas and Fee Optimization

Optimizing transaction costs is critical for a competitive cross-rollup routing system. This step covers strategies to estimate, subsidize, and minimize fees across multiple chains.

A cross-rollup intent routing system must manage gas fees across multiple, independent rollup environments, each with its own fee market. The primary cost components are the execution fee on the destination rollup and the bridge fee for moving assets or data between chains. For a user submitting an intent, the total cost is the sum of these fees, plus any relayer compensation for service provision. Accurate fee estimation requires querying real-time gas prices from RPC providers like Alchemy or Infura for each involved network and calculating the gas units required for the target contract interaction.

To offer a seamless user experience, systems often implement fee abstraction or sponsorship. A common pattern is for users to pay fees in the input asset, with the system handling the conversion to the native gas token on the destination chain. This can be done via a gas tank model, where the service provider maintains liquidity in various native tokens (like ETH on Arbitrum, MATIC on Polygon zkEVM) to pay for execution. Alternatively, protocols like Gas Station Network (GSN) or ERC-4337 Account Abstraction allow for meta-transactions, where a third party (the relayer) pays the gas fee and is reimbursed in the transaction's output tokens.

Optimization involves selecting the most cost-effective paths and execution methods. For bridging, compare fees across different bridge protocols (e.g., Across, Socket, Layerswap). For execution, consider using gas-efficient contract designs—minimizing storage writes, using immutable variables, and leveraging calldata over memory where possible. Batch processing multiple user intents into a single settlement transaction on the destination rollup can dramatically reduce the per-user gas cost. Monitoring tools like EigenPhi for MEV analysis and Blocknative for gas estimation are essential for maintaining an optimized and competitive service.

Implement a robust fee estimation endpoint in your system's backend. This service should poll gas oracles, apply a safety multiplier (e.g., 1.2x), and return a total fee quote to the user's client. The quote should be valid for a short time window to account for market volatility. Here is a simplified conceptual structure for a fee quote object:

json
{
  "totalFeeInInputToken": "0.05",
  "breakdown": {
    "bridgeFee": "0.02",
    "destinationExecutionFee": "0.025",
    "relayerFee": "0.005"
  },
  "expiryTimestamp": 1710000000
}

Always disclose fee breakdowns transparently to build user trust.

Finally, continuously analyze and adjust your strategy. Track average fee costs per route and success rates. Consider implementing dynamic fee pricing based on network congestion. For high-priority intents, you may programmatically increase the gas premium to ensure timely inclusion in a block. The goal is to balance cost-effectiveness for users with reliable and prompt execution, creating a sustainable economic model for your cross-rollup routing service.

INFRASTRUCTURE

Cross-Chain Messaging Protocol Comparison

A comparison of key protocols for building a cross-rollup intent routing system, focusing on security, performance, and developer experience.

Feature / MetricLayerZeroWormholeAxelarHyperlane

Security Model

Decentralized Verifier Network

Guardian Network (19/33)

Proof-of-Stake Validator Set

Modular (sovereign consensus)

Time to Finality

< 3 min

< 1 min

~6 min

< 1 min

Developer SDK

Solidity, Rust, Go

Rust, TypeScript, Python

JavaScript, Go, Python

TypeScript, Solidity

Native Gas Abstraction

Avg. Message Cost (Mainnet)

$0.25 - $1.50

$0.10 - $0.75

$0.50 - $2.00

$0.05 - $0.50

Supported Chains

70+

30+

55+

80+

Permissionless Interoperability

Relayer Network

Oracle/Relayer (OFT)

Generic Relayer

Gateway Routers

Modular Interchain Security

step-5-unified-state
ARCHITECTURE

Step 5: Create a Unified State and Status Layer

Implement a central service to track the global state of intent execution across multiple rollups, ensuring atomicity and providing real-time status updates.

A cross-rollup intent routing system requires a single source of truth to coordinate actions across disparate chains. The Unified State and Status Layer serves this purpose, acting as a centralized, off-chain coordinator that maintains the global execution state. It tracks each intent's journey from submission on a source rollup (like Arbitrum) through its relay and fulfillment on a destination rollup (like Optimism). This layer is responsible for atomicity—ensuring the entire multi-step transaction either completes successfully or fails entirely, preventing funds from being stuck in an intermediate state.

The core of this layer is a state machine, often implemented as a database (e.g., PostgreSQL or Redis) paired with a sequencer service. Each intent is assigned a unique ID and progresses through defined statuses: PENDING, RELAYED, FULFILLED, or FAILED. The service listens for events from the Relay Network and Fulfillment Bots on each rollup, updating the intent's state accordingly. A critical function is idempotency checking; the system must handle duplicate event emissions from rollups without double-spending or state corruption.

Developers interact with this layer via a Status API, which provides real-time queries about intent execution. For example, a dApp frontend can poll GET /intent/<id>/status to show user progress. The API should return the current state, the involved rollup addresses, transaction hashes for completed steps, and any error messages. This transparency is essential for user trust. The service must be highly available and fault-tolerant, as it is the central nervous system for the entire routing operation.

Implementing the state layer requires careful error handling and reconciliation logic. Network delays or rollup reorgs can cause events to arrive out of order. The service must implement a reconciliation process, periodically checking the on-chain state of pending intents against its internal ledger. If a discrepancy is found (e.g., the fulfillment transaction succeeded but no event was emitted), the system must have admin functions to manually reconcile the state, ensuring the database never permanently diverges from on-chain reality.

For a production system, consider using a purpose-built protocol like the Chainlink Cross-Chain Interoperability Protocol (CCIP) for its built-in risk management and proven infrastructure, or the Axelar General Message Passing (GMP) service. These provide audited, decentralized alternatives to a custom-built coordinator. If building custom, the state layer's logic and data schema should be open-sourced and thoroughly audited, as it becomes a central point of trust and potential failure for the entire cross-rollup ecosystem.

DEVELOPER FAQ

Frequently Asked Questions

Common technical questions and troubleshooting for building on a cross-rollup intent routing system.

Intent-based routing is a paradigm shift from specifying exact transaction parameters to declaring a desired end-state. Instead of signing a transaction to swap 1 ETH for USDC on Uniswap V3 on Arbitrum, a user submits a signed intent expressing the goal: "I want the best price for 1 ETH in USDC across supported chains."

The system's solver network then competes to find and execute the optimal path, which may involve:

  • Cross-chain bridging via protocols like Axelar or LayerZero.
  • Multi-hop DEX routing across chains (e.g., via 1inch Fusion).
  • Liquidity aggregation from various sources.

This abstracts away complexity, often resulting in better execution and a seamless user experience, as the solver handles gas estimation, nonce management, and failure recovery.

conclusion
IMPLEMENTATION SUMMARY

Conclusion and Next Steps

You have built the core components of a cross-rollup intent routing system. This guide covered the foundational architecture, from defining intents to executing them across chains.

Your system now enables users to express desired outcomes (e.g., "swap 1 ETH for the best-priced ARB on Arbitrum") without specifying the low-level transaction path. The key components you implemented are: the Intent Standard (like EIP-4337 UserOperation), a Solver Network for discovering optimal routes, and a Verification & Settlement Layer to ensure execution integrity. This architecture decouples user intent from execution complexity, a core principle of intent-centric design.

For production deployment, several critical steps remain. First, integrate with a decentralized solver marketplace like Anoma or Essential to source competitive solutions. Second, implement robust economic security via staking and slashing mechanisms for solvers to prevent malicious behavior. Third, establish a cross-chain messaging backbone; while you can start with a centralized relayer, migrating to a protocol like Hyperlane or Axelar is essential for decentralization and censorship resistance.

Testing is paramount. Develop a comprehensive suite that simulates adversarial conditions: solver collusion, message delays on L2s, and sudden liquidity shifts. Use forked mainnet environments with tools like Foundry and Tenderly to test under realistic network congestion and gas price volatility. Monitor key metrics such as fulfillment rate, average cost to user, and solver profitability.

The future of this system involves expanding its capabilities. Consider supporting conditional intents that execute based on oracle data (e.g., "swap if ETH > $3,500") or composite intents that bundle multiple actions across different application domains (DeFi, NFTs, identity). Engaging with the broader intent ecosystem through standards bodies is crucial for interoperability.

To continue your learning, explore the Anoma Research blog for intent theory, review the Essential Contracts on GitHub for practical implementations, and experiment with solver strategies in sandbox environments. The shift from transaction-based to intent-based systems is a fundamental evolution in blockchain UX, and your implementation is a significant step in that direction.