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
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
- Replay Protection
- Atomicity Guarantees
Claim Operations
Claim operations unlock user resources from protocols without requiring atomic signatures:Architecture
RouterLogic.sol
Claim vs Fill
- Security Model
- Entry Points
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
Special Selectors
Both fill and claim operations support special selectors that bypass adapter lookup:DirectRoutes.sol
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
- Fill Use Cases
- Claim 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
- User swaps USDC for DAI on same chain
- Solver pre-funds DAI to recipient
- Solver claims USDC after arbiter validation
- 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).
Related Concepts
Router System
Learn about Router architecture and operation routing
Adapters
Understand adapter architecture and delegatecall pattern
Arbiters
Learn about arbiter layer and settlement validation