Skip to main content
POST
Turns a quote into an unsigned open call on the LI.FI input settler escrow. POST the quote object you received from GET /lifi-intents/rfq; you get the same object back with transactionRequest populated. Sending that transaction escrows the inputs on the origin chain and broadcasts the order to solvers.
Include the quoteId from the RFQ response. Without it the endpoint still returns valid calldata, but no liquidity is reserved and the order is not guaranteed a Sprinter fill — you get no error saying so.

Reservation window

Converting a quote refreshes its reservation to 60 seconds, counted from this call — not from the RFQ. That is the window you have to get the transaction signed and on-chain.
Reservations come out of a pool shared with other solvers, so liquidity held against your quote is liquidity nobody else can be quoted. Each conversion holds its full amount for 60 seconds — four times the RFQ window — and the hold is not released early if you never send the transaction. Test this endpoint with small amounts: a loop over real quote sizes can take a meaningful share of a pool out of circulation a minute at a time.

What the endpoint fills in

You supply preview; everything else is derived: You can override nonce, expires, fillDeadline and inputOracle by setting them in the order object on the request, and override the exclusive filler with metadata.exclusiveFor. Leave them unset unless you have a specific reason — the defaults are what the reservation is priced against.

Constraints

  • Every entry in preview.inputs must be on the same origin chain. Mixed origins are rejected with 400.
  • The returned transaction must be sent by transactionRequest.from — the payer named in the first input.
  • Send it promptly — the reservation lapses 60 seconds after this call. See Reservation window.

After the fill

Sprinter fills on the destination chain within the exclusivity window and is repaid when the escrow settles. If nobody fills before fillDeadline, the order is reclaimable on the escrow contract — failureHandling is refund-automatic, so nothing is stranded.

Body

application/json

A quote from the RFQ response

preview
object
required
quoteId
string

Identifier for the liquidity reservation backing this quote. Pass the quote back to /lifi-intents/transaction to keep it.

validUntil
integer

Unix timestamp after which the quote and its reservation expire.

eta
integer

Estimated fill duration in seconds.

provider
string

Always sprinter.

failureHandling
string

Always refund-automatic — an unfilled order is reclaimable on the escrow.

partialFill
boolean

Whether the order may be partially filled. Sprinter quotes are all-or-nothing.

metadata
object
order
object

Optional overrides for the escrow open call. Any field left unset is derived by the transaction endpoint.

transactionRequest
object

Unsigned transaction calling open() on the input settler escrow. Send it from the user's wallet.

Response

The same quote with transactionRequest populated

preview
object
required
quoteId
string

Identifier for the liquidity reservation backing this quote. Pass the quote back to /lifi-intents/transaction to keep it.

validUntil
integer

Unix timestamp after which the quote and its reservation expire.

eta
integer

Estimated fill duration in seconds.

provider
string

Always sprinter.

failureHandling
string

Always refund-automatic — an unfilled order is reclaimable on the escrow.

partialFill
boolean

Whether the order may be partially filled. Sprinter quotes are all-or-nothing.

metadata
object
order
object

Optional overrides for the escrow open call. Any field left unset is derived by the transaction endpoint.

transactionRequest
object

Unsigned transaction calling open() on the input settler escrow. Send it from the user's wallet.