If you’re adding LI.FI Intents alongside other bridges, the standard escrow flow is simpler and recommended. Use the Compact flow when you need gasless submissions or are building a resource-lock-native application.
How It Differs from Escrow
Flow
1
Deposit into The Compact
Deposit tokens into The Compact resource lock. This is a one-time on-chain transaction. Later intents draw from this balance and cost no extra gas.See the lintent.org demo for a UI example of depositing and registering intents.
2
Request a quote
Call the legacy V0 endpoint
POST /quote/request with "oif-resource-lock-v0" in supportedTypes to indicate Compact support. The V1 quote endpoint does not serve resource-lock flows; it only returns user-open orders. So this flow uses V0, which takes EIP-7930 interoperable addresses — these pack the chain and address into one bytes field. Build them with the interoperable-addresses library.3
Sign the claim
Compact orders are authorized via EIP-712 signatures rather than on-chain transactions. Sign a For a complete signing example, see the lintent.org demo.
BatchClaim using The Compact’s domain separator.TypeScript
4
Submit the order off-chain
Submit the signed order to The response includes a
POST /orders/submit. Include the quoteId for preferential solver matching.meta object with orderIdentifier and onChainOrderId for tracking.5
Track the order
Same as the escrow flow. Poll
GET /orders/status until the order reaches Settled or Refunded.Integration Examples
- Signing a BatchCompact claim (UI example)
- Depositing and registering intents (UI example)
- RegisterIntentLib.sol (smart contract example)
Next Steps
Settlement
Compact claim structure, registration, and Permit2 details
Resource Locks
How resource locks, sponsors, allocators, and arbiters work
Create and Submit Orders
Full order construction reference and validation rules
Track Order Status
Monitor orders via the API or on-chain events

