1Click / NEAR Intents

Быстрый старт: swap за 4 шага

Официальная страница: Quickstart

Полный цикл свопа через 1Click состоит из четырёх запросов. Все их можно выполнить в песочнице портала — там уже есть готовые шаблоны с теми же номерами шагов.

Внимание: тестовой сети у 1Click нет. Первый реальный своп делайте на минимальной сумме.

Шаг 1. Получить список токенов — GET /v0/tokens#

Возвращает все поддерживаемые активы. Для каждого токена важны поля:

  • assetId — идентификатор актива (например, nep141:wrap.near), именно он подставляется в котировку;
  • decimals — количество знаков: сумма в запросах указывается в наименьших единицах (например, 1 wNEAR = 10^24, то есть 1000000000000000000000000);
  • blockchain, symbol, price — сеть, тикер и текущая цена в USD.

Шаг 2. Запросить котировку — POST /v0/quote#

Сначала всегда делайте dry-котировку ("dry": true) — это безопасный предпросмотр: депозитный адрес не создаётся, своп не запускается.

Минимальный набор обязательных полей:

{
  "dry": true,
  "swapType": "EXACT_INPUT",
  "slippageTolerance": 100,
  "originAsset": "nep141:wrap.near",
  "depositType": "ORIGIN_CHAIN",
  "destinationAsset": "nep141:usdt.tether-token.near",
  "amount": "1000000000000000000000000",
  "refundTo": "YOUR_NEAR_ACCOUNT.near",
  "refundType": "ORIGIN_CHAIN",
  "recipient": "YOUR_NEAR_ACCOUNT.near",
  "recipientType": "DESTINATION_CHAIN",
  "deadline": "2030-01-01T00:00:00.000Z"
}

Пояснения:

ПолеЧто значит
swapType: EXACT_INPUT«Отдаю ровно столько, получу сколько выйдет». Есть и другие типы: EXACT_OUTPUT, FLEX_INPUT, ANY_INPUT
slippageToleranceДопустимое проскальзывание в базисных пунктах: 100 = 1%
amountСумма в наименьших единицах исходного токена (строкой)
recipientАдрес получателя в сети токена назначения
refundToКуда вернуть средства, если своп не исполнится
deadlineISO-время, после которого начинается возврат средств

Когда результат dry-котировки устраивает — повторите запрос с "dry": false. В ответе появится depositAddress (и иногда depositMemo). Сохраните весь ответ, включая signature.

Шаг 3. Отправить депозит и (опционально) сообщить хеш — POST /v0/deposit/submit#

Переведите точную сумму amount исходного токена на depositAddress до истечения deadline (если в котировке был depositMemo — обязательно укажите memo при переводе). Сам перевод выполняется вашим кошельком, вне портала.

Чтобы ускорить обработку, можно сообщить 1Click хеш транзакции:

{
  "txHash": "TX_HASH_OF_YOUR_DEPOSIT",
  "depositAddress": "DEPOSIT_ADDRESS_FROM_QUOTE"
}

Этот шаг необязательный: 1Click и сам заметит депозит, просто чуть позже.

Шаг 4. Следить за статусом — GET /v0/status?depositAddress=...#

Опрашивайте статус по депозитному адресу (плюс depositMemo, если был):

СтатусЗначение
PENDING_DEPOSITЖдём поступления депозита
KNOWN_DEPOSIT_TXХеш депозита получен, ждём подтверждения
INCOMPLETE_DEPOSITПоступила не вся сумма
PROCESSINGИдёт обмен
SUCCESSГотово: средства отправлены получателю
REFUNDEDСредства возвращены на refundTo
FAILEDОшибка — см. «Проблемы и FAQ»

Куда дальше#