Input settlement
LI.FI Intents supports two single-chain input settlers:- InputSettlerEscrow. Standard escrow that associates tokens with their intent.
- InputSettlerCompact. Long-lived deposits via The Compact resource lock.
StandardOrder
Single-chain input settlers use the following order structure:MandateOutput
Finalization
To claim input funds after filling an order, call one of:finalise— the solver calls this and chooses where the input assets are sent and whether to make an external call. The Escrow and Compactfinaliseinterfaces differ, to optimize for gas.finaliseWithSignature— anyone can call this if they hold anAllowOpensignature in which the solver authorized the payout destination and call details.
Compact Registration
A Compact intent is carried in theBatchCompact payload below and signed as part of a BatchClaim, using The Compact’s EIP-712 domain separator:
Escrow Deposit Methods
Escrow intents can be deposited in several ways:- Direct open by the owner through ERC-7683
function open(bytes). Emitsevent Open(bytes32 indexed orderId, bytes order). - ERC-3009 with the orderId as nonce. A signature per input is required.
- Permit2 with an EIP-712 signed
PermitBatchWitnessTransferFrom.
Integration Examples
- Smart contract registration:
RegisterIntentLib.sol - UI signing (Batch Compact): lintent.org demo
- UI deposit and registration: lintent.org demo
Output settlement
Currently one output settler exists:OutputSettlerSimple.sol. It supports four order types: simple limit orders, Dutch auctions, exclusive limit orders, and exclusive Dutch auctions.
Configuring Auction Type
Thecontext field in MandateOutput sets the auction type:
Next Steps
System Overview
Full architecture and contract addresses
Oracle Systems
Verification and proof systems
Create and Submit Orders
Order construction for integrators
Solving LI.FI Intents
How solvers deliver outputs

