Skip to main content
Use signed intent execution when a quote uses depositType: INTENTS or depositType: CONFIDENTIAL_INTENTS. In both cases, the funds are already inside NEAR Intents, so the user authorizes the swap by signing an intent message off-chain instead of sending an on-chain deposit.
Foreign-to-foreign confidential swaps (using the confidentiality parameter with ORIGIN_CHAIN deposits) do not use signed intent execution, they follow the standard on-chain deposit flow in Making a Request. See Confidential Swaps for both paths.
For public Intents balances, this can speed execution because there is no on-chain deposit to wait for. For Confidential Intents balances, this is the required path because there is no RPC path for confidential intents.
POST /v0/generate-intent and POST /v0/submit-intent use partner authentication (X-API-Key recommended, JWT-auth legacy). They do not use the end-user User-Session token; the user’s authorization is the wallet signature submitted as signedData.
1

Quote

Request a quote with POST /v0/quote using depositType INTENTS or CONFIDENTIAL_INTENTS. Save the returned depositAddress; it links the signed intent back to the quote.See Making a Request for the full quote flow — the only required change is setting depositType (and matching refundType / recipientType when those balances also live in Intents).
2

Generate

Call POST /v0/generate-intent with the depositAddress, the user’s signerId, and their wallet’s signing standard (nep413, erc191, raw_ed25519, webauthn, ton_connect, sep53, or tip191). It returns the unsigned intent payload.
For the exact request fields and response shape, see Generate an intent for signing.
3

Sign

The user signs the returned intent payload with their wallet off-chain. Do not modify the payload between generation and signing; the signature must cover the exact payload returned by the API.The wallet returns public_key and signature. Combine those with the generated intent fields to form the full signedData MultiPayload you submit next. See Signing Intents for the payload shape across supported standards.
4

Submit

Call POST /v0/submit-intent with the signed payload (type: swap_transfer, signedData: the signed MultiPayload). It returns the intentHash.
For the exact signedData schema and response shape, see Submit a signed intent.
5

Track

Poll GET /v0/status with the depositAddress, as with any swap, see Making a Request → Monitor status for the status values. Include depositMemo if the quote response included one.