NEAR Intents Integration
Cross-chain token swaps via 1Click REST API. Get a quote, API provides deposit addresses, you build the deposit transaction and receive the resulting token automatically.
Quick Start - Pick Your Path
| Use Case | Start Here |
|----------|------------|
| React App | react-swap-widget.md - Example showing the pattern |
| Node.js / Script | server-example.md - Example showing the pattern |
| API Reference | api-quote.md → api-tokens.md → api-status.md |
| Chain-specific Deposits | deposit-{chain}.md |
Integration Flow
GET /v0/tokens → POST /v0/quote (dry) → POST /v0/quote (wet) → Deposit TX → POST /v0/deposit/submit → GET /v0/status
Rule Categories
| Priority | Category | Files |
|----------|----------|-------|
| 1 | Examples | react-swap-widget.md, server-example.md |
| 2 | API | api-quote.md, api-tokens.md, api-status.md, api-deposit-submit.md |
| 3 | Deposits | deposit-evm.md, deposit-solana.md, deposit-near.md, deposit-ton.md, deposit-tron.md, deposit-stellar.md |
| 4 | React Hooks | react-hooks.md |
| 5 | SDK | sdk.md - official TypeScript/Go/Rust client libraries |
| 6 | Advanced | intents-balance.md, passive-deposit.md, api-confidential-swaps.md, api-orders.md, api-user-auth.md, api-hyperliquid.md |
Critical Knowledge
- Use
assetIdfrom /v0/tokens - never construct manually dry: true= preview only,dry: false= get deposit address (valid ~10 min)- Poll status until terminal:
SUCCESS,FAILED,REFUNDED,INCOMPLETE_DEPOSIT(in-progress:PENDING_DEPOSIT,KNOWN_DEPOSIT_TX,PROCESSING) - Chain-to-chain is default -
depositTypeandrecipientTypedefault to chain endpoints - Auth quote or pay 0.25% - without an API key, an extra 25 bps fee applies to every non-
ANY_INPUTquote
Index
-
Examples (HIGH)
- react-swap-widget - Minimum viable React swap implementation with wagmi
- server-example - Node.js script for server-side swaps
-
API Reference (CRITICAL)
- api-tokens - Fetch supported tokens, cache result
- api-quote - Get swap quote, dry=true for preview, dry=false for deposit address
- api-deposit-submit - Notify API after deposit to speed up processing
- api-status - Poll until terminal state (SUCCESS, FAILED, REFUNDED)
- api-any-input-withdrawals - Query withdrawals for ANY_INPUT quotes
-
Chain Deposits (HIGH)
- deposit-evm - Ethereum, Base, Arbitrum, Polygon, BSC transfers
- deposit-solana - Native SOL and SPL token transfers
- deposit-near - NEP-141 token transfers via wallet selector
- deposit-ton - Native TON transfers via TonConnect
- deposit-tron - Native TRX and TRC-20 transfers
- deposit-stellar - Stellar transfers (MEMO REQUIRED)
-
React Hooks (MEDIUM)
- react-hooks - Reusable hooks for tokens, quotes, status polling
-
SDK (MEDIUM)
- sdk - Official TypeScript / Go / Rust client libraries for 1Click
-
Advanced (LOW)
- intents-balance - Hold balances in intents.near for faster swaps
- passive-deposit - QR code flow for manual transfers
- api-confidential-swaps - Private swaps (
confidentialityparam, CONFIDENTIAL_INTENTS) - api-orders - Limit orders on /v0/orders
- api-user-auth - User authentication + private balances/history
- api-hyperliquid - USDC to/from Hyperliquid
-
References
- concepts - Swap lifecycle, statuses, CEX warning, authentication
Upstream Docs (prefer live values)
For smaller areas and always-current details, consult upstream directly (append .md for markdown):
- Earn - multichain yield through 1Click
- Fee configuration -
appFees+ revenue share - Explorer API - historical transaction queries
- Swap types - EXACT_INPUT / EXACT_OUTPUT / FLEX_INPUT / ANY_INPUT
- Fees - full fee schedule
- Changelog
Resources
- Docs: https://docs.near-intents.org/integration/distribution-channels/1click-api
- API Keys: https://partners.near-intents.org/
- OpenAPI: https://1click.chaindefuser.com/docs/v0/openapi.yaml