Skip to main content

Overview

The Router supports two fundamental operation types: Fill and Claim. These operations enable different settlement patterns with distinct security models and use cases.
Fill operations require atomic signature authorization, while claim operations rely on protocol-level authorization already validated by the underlying protocol.

Operation Types

Fill Operations

Settlement operations that fulfill user orders by transferring assets and executing target operations. Require atomic signature from authorized signer.

Claim Operations

Resource unlock operations that claim user assets from protocols. Execute without atomic signatures as they rely on protocol-level authorization.

Fill Operations

Fill operations represent settlement transactions where a solver fulfills a user’s order:

Architecture

RouterLogic.sol

Atomic Signature Security

The atomic fill signer prevents unauthorized operation execution:
RouterLogic.sol
Security Model:
  • Only the designated atomicFillSigner can authorize fill batches
  • Each signature is bound to specific calldata via hash
  • Prevents unauthorized solvers from executing user operations
  • Setting signer to address(0) pauses all fill operations

Fill Flow Example

Same-chain Compact fill operation:
1

Solver Submits Fill

2

Router Validates Signature

3

Router Delegates to Adapter

4

Adapter Pre-Funds Recipient

5

Arbiter Validates & Unlocks

6

Execute Target Operations

Fill Operation Security

Claim Operations

Claim operations unlock user resources from protocols without requiring atomic signatures:

Architecture

RouterLogic.sol

Claim vs Fill

Single Claim Operation

For individual claim operations:
RouterLogic.sol
Single claim operations are optimized for gas efficiency when only one claim is needed.

Batch Processing

Both fill and claim operations support atomic batch execution:

Batch Atomicity

Relayer Context Consumption

RouterLogic.sol
Context Validation:The Router validates that the number of relayer contexts matches the number of regular adapter calls. Special selectors (singleCall, multiCall, fee collection) don’t consume contexts.

Special Selectors

Both fill and claim operations support special selectors that bypass adapter lookup:
DirectRoutes.sol
Benefits:

Gas Savings

Saves ~2,600+ gas by avoiding SLOAD and DELEGATECALL overhead

No Context

Special selectors don’t consume relayer contexts

Built-in

Common operations handled natively by Router

Gas Optimizations

Adapter Caching

RouterLogic.sol

Encoded Calldata (Fill Only)

Context Tracking

Use Cases

Cross-Chain Settlement
  • User swaps ETH on Ethereum for USDC on Arbitrum
  • Solver fills order by providing USDC on Arbitrum
  • Solver claims ETH on Ethereum after settlement
Same-Chain Settlement
  • User swaps USDC for DAI on same chain
  • Solver pre-funds DAI to recipient
  • Solver claims USDC after arbiter validation
Intent Execution
  • User authorizes multi-step operations
  • Solver executes operations via IntentExecutor
  • Solver receives compensation after execution

Error Handling

Fill Errors

Claim Errors

Best Practices

Use Fill for Settlements

When solvers are fulfilling user orders, always use fill operations with atomic signatures for security.

Use Claim for Unlocks

When users or solvers are unlocking resources without settlement context, use claim operations.

Batch Operations

Combine multiple operations into atomic batches to ensure all-or-nothing execution.

Context Management

Ensure relayer context array length matches number of regular adapter calls (excluding special selectors).

Router System

Learn about Router architecture and operation routing

Adapters

Understand adapter architecture and delegatecall pattern

Arbiters

Learn about arbiter layer and settlement validation