Fusion+ swaps across Monad, Bitcoin, Starknet, Sui & more for seamless multi-chain trading.
We built a full-stack cross-chain order resolution system that securely executes trades across multiple blockchains using microservices, event-based workflows, and deterministic smart contracts. This system allows seamless coordination between users on different chains using escrow contracts, automated resolvers, and real-time watchers.
Our architecture ensures atomic, trustless executionβbacked by deterministic deployments and a stateful backend that tracks every order from intent to fulfillment.
CREATE2, resulting in deterministic addresses across chains. This eliminates the need for registries, config mappings, or hardcoded addressesβmaking the developer and integrator experience significantly smoother.UNMATCHED β SRC_FILLED β DEST_FILLED β SRC_SETTLED β DST_SETTLED β FULFILLED
Each state is actively monitored and enforced by our system to ensure secure and atomic cross-chain fulfillment.
The user submits an Order Intent to the Relayer Service via a /submit API.
The Relayer Service saves order details to the database, making them visible to any available Resolver node.
The Resolver Service polls for new unmatched orders and begins execution.
The Resolver deploys a Source Escrow Contract. The LOP contract pulls the maker's funds into this escrow.
The Watcher Service listens for the SrcEscrowCreated event and updates the order status and immutable parameters (src_chain_immutables) in the database.
Once the source is confirmed, the watcher builds the DestChainImmutables and sets the order status to SRC_FILLED.
Using the new status and immutables, the Resolver deploys the Dest Escrow Contract on the destination chain.
The Watcher Service tracks this event and updates:
DEST_FILLEDsrc_withdraw_immutables and dest_chain_immutablesThe Resolver initiates source escrow withdrawal, allowing the Taker to receive funds on the source chain.
Watcher confirms the withdrawal and updates the status to SRC_SETTLED.
The Resolver then finalizes the destination escrow withdrawal, allowing the Maker to receive funds on the dest chain.
The Watcher confirms the final withdrawal and updates the order status to FULFILLED.
| Layer | Tech | | --------------- | --------------------------------- | | Smart Contracts | Solidity + Foundry | | Backend | Rust (Relayer, Resolver, Watcher) | | Client Scripts | TypeScript / JavaScript | | Blockchain | Ethereum, Base, Monad (modular) |
Alice on Ethereum wants to swap 1 ETH for 1000 USDC from Bob on Base. Our system escrows both sides, verifies chain events, and resolves the trade atomically. Neither party needs to trust the otherβjust the system.
We built a full-stack cross-chain order resolution system that securely executes trades across multiple blockchains using microservices, event-based workflows, and deterministic smart contracts. This system allows seamless coordination between users on different chains using escrow contracts, automated resolvers, and real-time watchers.
Our architecture ensures atomic, trustless executionβbacked by deterministic deployments and a stateful backend that tracks every order from intent to fulfillment.
CREATE2, resulting in deterministic addresses across chains. This eliminates the need for registries, config mappings, or hardcoded addressesβmaking the developer and integrator experience significantly smoother.UNMATCHED β SRC_FILLED β DEST_FILLED β SRC_SETTLED β DST_SETTLED β FULFILLED
Each state is actively monitored and enforced by our system to ensure secure and atomic cross-chain fulfillment.
The user submits an Order Intent to the Relayer Service via a /submit API.
The Relayer Service saves order details to the database, making them visible to any available Resolver node.
The Resolver Service polls for new unmatched orders and begins execution.
The Resolver deploys a Source Escrow Contract. The LOP contract pulls the maker's funds into this escrow.
The Watcher Service listens for the SrcEscrowCreated event and updates the order status and immutable parameters (src_chain_immutables) in the database.
Once the source is confirmed, the watcher builds the DestChainImmutables and sets the order status to SRC_FILLED.
Using the new status and immutables, the Resolver deploys the Dest Escrow Contract on the destination chain.
The Watcher Service tracks this event and updates:
DEST_FILLEDsrc_withdraw_immutables and dest_chain_immutablesThe Resolver initiates source escrow withdrawal, allowing the Taker to receive funds on the source chain.
Watcher confirms the withdrawal and updates the status to SRC_SETTLED.
The Resolver then finalizes the destination escrow withdrawal, allowing the Maker to receive funds on the dest chain.
The Watcher confirms the final withdrawal and updates the order status to FULFILLED.
| Layer | Tech | | --------------- | --------------------------------- | | Smart Contracts | Solidity + Foundry | | Backend | Rust (Relayer, Resolver, Watcher) | | Client Scripts | TypeScript / JavaScript | | Blockchain | Ethereum, Base, Monad (modular) |
Alice on Ethereum wants to swap 1 ETH for 1000 USDC from Bob on Base. Our system escrows both sides, verifies chain events, and resolves the trade atomically. Neither party needs to trust the otherβjust the system.

