How Intents are Processed
The journey of an intent from quote to settlement — one signature, source deposits, solver fulfilment.
An intent moves through a short, well-defined lifecycle: the user signs it once, funds are locked on the source chains, a solver fills it on the destination chain, and the protocol settles with the solver afterwards.
The intent details show which solver provided liquidity once the intent is successfully processed.
Showing a subset of supported chains. See Supported Chains & Tokens for the full list.
The SDK requests a quote from Nexus: which source chains to draw funds from, and the fees. From this it builds the intent — sources, destination, and fees.Your app presents the intent to the user via the The signed intent is submitted to the Nexus network and recorded with status The user's funds are deposited into Vault contracts on each source chain — the solver submits token deposits using the user's signed intent and allowances, while native-token deposits are sent directly from the user's wallet. When every source deposit is confirmed, the intent becomes A solver fronts its own capital and fills the intent on the destination chain — the user receives their funds here, in seconds. The intent becomes The solver is reimbursed from the locked source-chain funds through an on-chain settlement authorized by Nexus validators. This happens asynchronously in the background — the user's transfer is already complete.
These are the same statuses you see as an integrator: intents returned by the SDK's
Stages
Quote & Intent Construction
User Approval & Single Signature
onIntent hook (allow, deny, or refresh with different sources). On approval, the user signs one message covering the whole operation.Submission to the Nexus Network
created.Source Deposits
deposited.Solver Fulfilment
fulfilled.Settlement
Note
If the intent isn't filled in time: every intent carries an expiry. If no solver fills it before then, the intent becomes
expired and the user's deposited funds are refunded on the source chains.listIntents() have a status of 'created' | 'deposited' | 'fulfilled' | 'expired'.