Skip to main content
NEAR Intents exposes an RPC endpoint to request quotes, publish signed intents, and check intent status on the Message Bus. Endpoint: POST https://solver-relay-v2.chaindefuser.com/rpc

Authentication

This endpoint requires a JWT authentication token. Include the token in the X-API-Key header:
To obtain an API key, register through the Partner Portal.
Developers searching to integrate swap functionality should use the 1Click Swap API instead.

quote

Request price quotes from connected solvers. The Message Bus forwards the request to all solvers, waits up to 3000ms, and returns all available options.
Only one of exact_amount_in or exact_amount_out should be provided, not both.
string
required
Asset to trade from (e.g., nep141:ft1.near)
string
required
Asset to trade to (e.g., nep141:ft2.near)
string
Amount of input token for exchange
string
Amount of output token for exchange
number
default:"60000"
Minimum validity time for offers (in milliseconds). Shorter times may yield better prices.
Response fields:
  • quote_hash - Quote response hash
  • defuse_asset_identifier_in - Asset to trade from
  • defuse_asset_identifier_out - Asset to trade to
  • amount_in - Input amount (exact if specified, proposed otherwise)
  • amount_out - Output amount (exact if specified, proposed otherwise)
  • expiration_time - Expiration timestamp of the offer

publish_intent

Submit a signed user intent for execution. Supported signature standards: nep413, erc191, raw_ed25519.
public_key and signature come from signing the intent message with the NEAR key you registered on the Verifier contract (add_public_key, see the Quickstart’s “Deposit liquidity” step), not from a value you construct by hand. The Example Solver walks through the real signing code (near-api-js’s signMessage, then bs58-encoding the result with an ed25519: prefix). For the full field-by-field spec of every supported standard (including erc191 and raw_ed25519 below), see Signing Intents.
string[]
required
Quote response hashes from solvers
object
required
  • standard - "nep413"
  • payload.message - Stringified intent payload
  • payload.nonce - Unique nonce
  • payload.recipient - "intents.near"
  • payload.callbackUrl - Optional, for some wallets
  • signature - Signature of the payload
  • public_key - Signer’s public key
Response fields:
  • status - "OK" or "FAILED"
  • reason - Error reason (if failed)
  • intent_hash - Intent identifier

publish_intents

Submit multiple signed intents in one call. If any fail, the relay automatically requotes and retries the failed ones rather than failing the whole batch.
string[]
required
Quote response hashes from solvers, one set per intent being published
object[]
required
Array of signed intents, same shape as signed_data in publish_intent
boolean
default:"false"
When true, automatically requests a fresh quote and retries any intent that fails to publish, instead of just reporting the failure
Response fields are the same as publish_intent.

get_status

Check the status of an intent’s execution.
string
required
Intent identifier
Response fields:
  • intent_hash - Intent identifier
  • status - Execution status (see status values below)
  • status_details - Human-readable detail on the current status (e.g. failure reason for NOT_FOUND_OR_NOT_VALID)
  • data.hash - NEAR transaction hash (if available)
  • filled_amounts - Amounts actually filled per leg, in the order the intent’s diffs were specified (useful when a token_diff only partially fills)