All articles
nearintentscross-chainswap1clicksolanaapisolvers

NEAR Intents: outcome-based cross-chain swaps via 1Click API

NEAR Intents lets users declare swap outcomes; market makers fill them. 1Click REST API, Solana in the chain set, quote→deposit→status flow for builders.

devrels.xyz/a/255short link

NEAR Intents: outcome-based cross-chain swaps via 1Click API. Docs live at docs.near-intents.org. Instead of scripting bridge hops and DEX legs, a user (or app) expresses what they want — e.g. SOL on Solana → USDC on Base — and market makers bid to fulfill it under on-chain verification on NEAR.

What an intent is

From the official “What are Intents?” guide: an intent states the outcome, not the path. Flow:

  1. Create intent (assets, amounts, destination).
  2. Market makers compete on price/speed.
  3. Smart contracts enforce atomic-style settlement or refund.
  4. Destination receives tokens; user keeps custody framing with refunds on failure.

NEAR hosts verification; assets on many external chains are represented as NEAR-facing asset IDs (often nep141:… / .omft.near style bridges in the token catalog).

1Click Swap API (builder surface)

1Click is the REST distribution channel: it temporarily routes deposits through a swapping agent that coordinates solvers so integrators do not implement full intent machinery themselves. Base host in docs examples: https://1click.chaindefuser.com.

Core endpoints (docs)
StepEndpoint
List tokensGET /v0/tokens
QuotePOST /v0/quote (+ Bearer JWT recommended)
StatusCheck execution status by deposit address (memo if required)
OptionalSubmit deposit tx hash; generate/submit signed intents; ANY_INPUT withdrawals

Also in the docs tree: Swap SDK (TS/Go/Rust), fee configuration, Earn (multichain yield), Explorer API, React widget, agent skills, confidential swaps, and off-chain signed intent execution (sign intent instead of on-chain deposit path).

Solana angle

Live /v0/tokens responses include blockchain: "sol" entries (native SOL and SPL mints with Solana contractAddress). That puts NEAR Intents in the same “painless corridor” conversation as LI.FI / Relay for Solana↔EVM (and beyond) when the pair is listed — always verify the pair exists before promising UX.

Same-chain SOL↔SPL should still default to Jupiter. Use intents when the destination chain or asset family leaves Solana (or enters it from elsewhere).

Thin PoC — tokens → quote → status

typescript
// Conceptual control flow from NEAR Intents 1Click docs.
// Get a JWT from their API key flow for production (avoids documented extra fee).

const ONECLICK = "https://1click.chaindefuser.com"

export async function listTokens() {
  const res = await fetch(`${ONECLICK}/v0/tokens`)
  if (!res.ok) throw new Error(`tokens ${res.status}`)
  return res.json() as Promise<
    Array<{ assetId: string; blockchain: string; symbol: string; decimals: number; contractAddress?: string }>
  >
}

export async function quoteExactIn(p: {
  jwt: string
  originAsset: string
  destinationAsset: string
  amount: string // base units
  // recipient / refund / slippage fields per current OpenAPI
  body: Record<string, unknown>
}) {
  const res = await fetch(`${ONECLICK}/v0/quote`, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${p.jwt}`,
    },
    body: JSON.stringify({
      dry: false,
      swapType: "EXACT_INPUT",
      slippageTolerance: 100,
      originAsset: p.originAsset,
      depositType: "ORIGIN_CHAIN",
      destinationAsset: p.destinationAsset,
      amount: p.amount,
      ...p.body,
    }),
  })
  if (!res.ok) throw new Error(`quote ${res.status} ${await res.text()}`)
  return res.json()
}

// After quote: send deposit to returned deposit address (and memo if present),
// optionally POST deposit tx hash, then poll status until done / refunded.
// Verify quote signatures when docs require it for your integration tier.
bash
# Public token catalog (no key)
curl -s https://1click.chaindefuser.com/v0/tokens | head -c 400

# OpenAPI
# https://1click.chaindefuser.com/docs/v0/openapi.yaml

# Agent index
# https://docs.near-intents.org/llms.txt

Chains and assets

Supported chains expand over time (EVM set includes Ethereum, Base, Arbitrum, Optimism, BNB, Polygon, and more; non-EVM includes NEAR, BTC, Solana, TON, Tron, and others present in the live token list). Treat docs chain pages + GET /v0/tokens as source of truth — not a static table in this article.

vs other “painless” stacks

Rough placement
SystemModel
NEAR Intents / 1ClickIntent + competing solvers; NEAR verification; deposit/status API
LI.FIOmnichain router over bridges/DEXs; quote/status
RelayIntent/solver-style payments API
Stack mapWhen to use Jupiter vs router vs intent layer

Builder checklist

  1. Read docs + 1Click ToS.
  2. Obtain JWT (API keys guide) for production quotes.
  3. Resolve assetIds from /v0/tokens (filter blockchain === "sol" for Solana legs).
  4. Implement quote → user review → deposit → status machine + refunds.
  5. Verify quote signatures per docs before treating a quote as binding.
  6. Configure app fees if you monetize the corridor.

People and links

Surfaces
SurfaceLink
Docsdocs.near-intents.org
Productnear-intents.org
1Click APIhttps://1click.chaindefuser.com
X@near_intents
Telegramt.me/near_intents
Org/organisations/near-intents

Resources

Keep reading

Get new articles in your inbox

Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.

NEAR Intents: outcome-based cross-chain swaps via 1Click API | devrels.xyz