LI.FI Intents delivers real-time order streams and on-chain discovery, ensuring you never miss a cross-chain fill and enabling proactive, data-driven solver strategies.
pong
. This is used to disconnect misbehaving clients and for debugging purposes. You can find an example implementation here.
For order collection, the important event is user:vm-order-submit
. The Data will be returned similarly to it was submitted.
fillDeadline
: Ensure you have sufficient time to fill the order:
expiry
: Ensure you have enough time to fill, relay, and claim the order:
localOracle
and remoteOracle
must be of the same validation layer.
input
token. If one input token is malicious, the order may be unclaimable. Additionally, for blacklistable tokens like USDC, ensure you are not on a blacklist.
input
token uses the same AllocatorId. If the lockId are different, the lock expiry should be checked for every lockId. Alternatively, check if all lockIds are equal.
reset period
for a resource lock extends beyond the expiry
AND there is no active withdrawal.
allocatorID
is whitelisted. The allocator can block claims from processing (by withdrawing signatures or reusing nonces.)
lock tag
for inputs
(first 12 bytes).output.chainId
is whitelisted.remoteOracle
and localOracle
are correctly configured regarding originChainId
and output.chainId
. The config is immutable, so this can be done once for each pair.output.remoteFiller
is whitelisted.output.fulfillmentContext
is decodable, and the order type is supported and compatible with output.remoteFiller
.output.token
is whitelisted. Additionally, for blacklistable tokens like USDC, ensure that neither you nor the recipient is on a blacklist.
output.amount
.calldata
, ensure you can execute it and other outputs atomically. For outputs on different chains, you may have to whitelist recipients if there is calldata
.
call.length
nor context.length
are more than 65’535 bytes long.fillBatch
can be used as a protective measure.
allocatorData
. You may have to do an on-chain call.
nonce
has not been spent previously by any user. The Order nonce is not a user nonce.
StandardOrder
will be used to interface all functions on the input chain. Additionally, once hydrated with a signature, it allows one to verify the validity of an order.
The StandardOrder
struct will be signed and stored as a witness in the appropriate lock/claim structure. For TheCompact, this is:
IntentRegistered
event: