home / skills / near / agent-skills / near-intents
This skill enables cross-chain token swaps using NEAR Intents 1Click API to fetch quotes, generate deposits, and track status across chains.
npx playbooks add skill near/agent-skills --skill near-intentsReview the files below or copy the command above to add this skill to your agents.
---
name: near-intents
description: Cross-chain token swap integration using NEAR Intents 1Click API. Use when building swap widgets, bridge interfaces, or multi-chain transfers across EVM, Solana, NEAR, TON, Stellar, and Tron.
---
# 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 | **Advanced** | `intents-balance.md`, `passive-deposit.md` |
## Critical Knowledge
1. **Use `assetId` from /v0/tokens** - never construct manually
2. **`dry: true`** = preview only, **`dry: false`** = get deposit address (valid ~10 min)
3. **Poll status** until terminal: `SUCCESS`, `FAILED`, `REFUNDED`, `INCOMPLETE_DEPOSIT`
4. **Chain-to-chain is default** - `depositType` and `recipientType` default to chain endpoints
## Index
1. **Examples (HIGH)**
- [react-swap-widget](rules/react-swap-widget.md) - Minimum viable React swap implementation with wagmi
- [server-example](rules/server-example.md) - Node.js script for server-side swaps
2. **API Reference (CRITICAL)**
- [api-tokens](rules/api-tokens.md) - Fetch supported tokens, cache result
- [api-quote](rules/api-quote.md) - Get swap quote, dry=true for preview, dry=false for deposit address
- [api-deposit-submit](rules/api-deposit-submit.md) - Notify API after deposit to speed up processing
- [api-status](rules/api-status.md) - Poll until terminal state (SUCCESS, FAILED, REFUNDED)
- [api-any-input-withdrawals](rules/api-any-input-withdrawals.md) - Query withdrawals for ANY_INPUT quotes
3. **Chain Deposits (HIGH)**
- [deposit-evm](rules/deposit-evm.md) - Ethereum, Base, Arbitrum, Polygon, BSC transfers
- [deposit-solana](rules/deposit-solana.md) - Native SOL and SPL token transfers
- [deposit-near](rules/deposit-near.md) - NEP-141 token transfers via wallet selector
- [deposit-ton](rules/deposit-ton.md) - Native TON transfers via TonConnect
- [deposit-tron](rules/deposit-tron.md) - Native TRX and TRC-20 transfers
- [deposit-stellar](rules/deposit-stellar.md) - Stellar transfers (MEMO REQUIRED)
4. **React Hooks (MEDIUM)**
- [react-hooks](rules/react-hooks.md) - Reusable hooks for tokens, quotes, status polling
5. **Advanced (LOW)**
- [intents-balance](rules/intents-balance.md) - Hold balances in intents.near for faster swaps
- [passive-deposit](rules/passive-deposit.md) - QR code flow for manual transfers
6. **References**
- [concepts](references/concepts.md) - Swap lifecycle, statuses, CEX warning, authentication
## Resources
- Docs: https://docs.near-intents.org/near-intents/integration/distribution-channels/1click-api
- API Keys: https://partners.near-intents.org/
- OpenAPI: https://1click.chaindefuser.com/docs/v0/openapi.yaml
This skill integrates NEAR Intents 1Click API to enable cross-chain token swaps and multi-chain transfers. It provides the flow to fetch token lists, get quotes (preview and deposit-ready), build chain-specific deposit transactions, submit deposits, and poll for final status. Use it to add swap widgets, bridge flows, or server-side swap handlers across EVM, Solana, NEAR, TON, Stellar, and Tron.
The integration fetches supported tokens and requests quotes from the 1Click REST API. A dry quote gives pricing and parameters; a wet quote (dry:false) returns a temporary deposit address and deposit instructions. You assemble and submit the deposit transaction on the specified chain, notify the API via deposit/submit, and poll status until a terminal state (SUCCESS, FAILED, REFUNDED, INCOMPLETE_DEPOSIT).
How long is a deposit address valid?
Deposit addresses from a wet quote are short-lived — typically valid for about 10 minutes. Request a new quote if the user delays.
What status values indicate completion?
Terminal statuses are SUCCESS, FAILED, REFUNDED, and INCOMPLETE_DEPOSIT. Poll GET /v0/status until you see one of these.
Do I need to support chain-specific deposit formats?
Yes. Use the deposit-{chain} patterns: EVM uses raw tx or signed data, Solana uses SPL/native transfer details, NEAR uses NEP-141 and wallet selector, Stellar requires MEMO, etc.