Deliver output assets on EVM chains and Bitcoin to fulfill LI.FI intents.
To finalize an intent and claim the locked input funds, the solver must deliver all outputs described in the order. This page covers both EVM and Bitcoin filling.
BTC support on LI.FI Intents is currently not live and still in development. If you are interested in filling BTC orders, reach out and we will assist you with onboarding.
To determine whether an order involves a Bitcoin transaction, check orderDto.order.outputs[].token.
The first 30 bytes should be 0x000000000000000000000000BC0000000000000000000000000000000000 (the 13th byte is 0xBC)
The 31st byte indicates the number of confirmations required before on-chain verification (0x00 and 0x01 both mean 1 confirmation, 0x02 means 2, etc.)
The 32nd byte is an address version identifier decoded as uint8
The outputs[].recipient field contains the destination hash or witness, not a human-readable address. Use the version byte and the recipient hash to reconstruct the Bitcoin address.
Create a transaction with at least one output that exactly matches the order’s output description. The transaction can have any number of inputs and additional outputs, allowing for batch filling and consolidation.If calldata is set on the output, add an OP_RETURN output immediately after the filling output: