Skip to Content
Avail Nexus is now live! Check out our docs to get started.

Intent

An intent represents a user’s request to execute a crosschain transaction (Nexus operation) when they lack sufficient funds or liquidity on the destination blockchain.

An intent specifies what the user is willing to offer (tokens from various source chains) to cover the transaction amount, gas fees, solver fees, and the Avail Nexus protocol fee.

The intent is verified, and taken up by a solver who provides liquidity and fills the intent (request for funds) on the user’s preferred destination chain.

What does an Intent look like?

The following information is part of an intent:

  • Source Chains: The blockchains where the user has funds/tokens.
  • Destination Chain: The blockchain where the transaction will occur (where the user lacks liquidity).
  • Tokens and Amounts: Specifies which tokens and how much from each source chain will be used.
  • Fees: Includes CA gas fee (for cross-chain operations), protocol fee (for the service), solver fee (for the liquidity provider), and any supplied gas.
  • Total Amount: The full cost, combining the transaction amount and all fees.

This is an example of how an intent would look like when simulating a Bridge operation:

type ReadableIntent = { allSources: { amount: string; chainID: number; chainLogo: string | undefined; chainName: string; contractAddress: `0x${string}`; }[]; destination: { amount: string; chainID: number; chainLogo: string | undefined; chainName: string; }; fees: { caGas: string; gasSupplied: string; protocol: string; solver: string; total: string; }; sources: { amount: string; chainID: number; chainLogo: string | undefined; chainName: string; contractAddress: `0x${string}`; }[]; sourcesTotal: string; token: { decimals: number; logo: string | undefined; name: string; symbol: string; }; };
Last updated on