Settlement is the process of escrowing user funds (input settlement) and recording solver delivery (output settlement). This page covers both sides.Documentation Index
Fetch the complete documentation index at: https://docs.li.fi/llms.txt
Use this file to discover all available pages before exploring further.
Input settlement
Two single-chain input settlers are supported:- 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:finaliseCalled by the solver. The caller designates where to send assets and whether to make an external call.finaliseWithSignatureCalled by anyone with anAllowOpensignature from the solver containing destination and call details.
Compact Registration
Compact intents are signed as aBatchClaim using The Compact’s EIP-712 domain separator:
Escrow Registration
Escrow intents can be registered 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
The auction type is determined by thecontext field in MandateOutput:
Next Steps
System Overview
Full architecture and contract addresses
Oracle Systems
Verification and proof systems
Create and Submit Orders
Order construction for integrators
Filling Orders
How solvers deliver outputs

