Skip to main content

TON и токены: переводы

Из чего складывается комиссия

Комиссия за отправку TON или токенов в сети TON рассчитывается локально в приложении на основе текущей конфигурации сети и параметров сообщения. В расчет входят:
  • Storage: комиссия за использование ячеек контракта; зависит от объема данных и сетевых тарифов.
  • Import message: комиссия за обработку входящего внешнего сообщения, которым пользователь инициирует транзакцию.
  • Gas: комиссия за исполнение кода; зависит от количества исходящих сообщений, где одно сообщение требует меньше газа, а несколько — больше; в коде используются фиксированные значения газа для 1-4 сообщений.
  • Forward fees: комиссия за доставку каждого исходящего сообщения по сети.
Итоговая сумма показывается в nano-TON и отображается пользователю перед подтверждением как “Network fee”, то есть комиссия блокчейна, в TON. Точная сумма может немного отличаться от той, которую сеть фактически спишет после включения транзакции в блок.

Кто платит

Комиссию всегда платит отправитель в TON. Если на балансе аккаунта недостаточно TON, отправить ни TON, ни токены нельзя. Исключение — gasless-сценарий для поддерживаемых jetton, описанный ниже.

Где это показывается

Перед отправкой перевода, будь то TON или токен, на экране предпросмотра показывается строка с комиссией в TON и, при необходимости, в фиатном эквиваленте. Для простых переводов используется блок “Network fee” с кратким описанием и, если доступно, кнопкой “more details”.

Gasless

Gasless — это возможность оплатить комиссию за перевод токена самим токеном, например USDT, а не в TON. Комиссию в TON за пользователя оплачивает relayer, то есть сервис Tonhub, а эквивалент удерживается с пользователя в переводимом токене.

Когда доступно

  • Поддерживается только для определенных токенов, список которых задается backend-конфигом gas_jettons.
  • Доступно только для кошелька W5, то есть v5R1; для других версий gasless не предлагается.
  • Конфигурация, включая список токенов и адрес relayer, запрашивается у Tonhub API: gasless/mainnet или gasless/testnet → config. В конфиге указываются relay_address и массив gas_jettons, то есть master_id.

Как рассчитывается gasless-комиссия

Перед отправкой приложение запрашивает gasless-оценку: выполняется запрос к gasless/.../estimate с параметрами, такими как адрес кошелька, публичный ключ и сообщения в формате BOC. В ответе содержатся:
  • relay_address — адрес relayer;
  • commission — комиссия, которая будет списана с пользователя в токене;
  • from — адрес, с которого будет произведено списание;
  • valid_until — срок действия оценки;
  • messages — итоговые сообщения с учетом комиссии.
Пользователь видит, сколько токенов будет списано, то есть сумма перевода плюс комиссия, и может выбрать: платить комиссию в TON или в токене через gasless. Если выбран gasless, приложение отправляет подписанную транзакцию на backend по адресу gasless/.../send; relayer отправляет ее в сеть и оплачивает gas в TON.

Ограничения и ошибки

  • Cooldown: между gasless-переводами может потребоваться пауза в несколько минут; иначе пользователю предложат подождать или оплатить комиссию в TON.
  • Недостаточно средств: если сумма перевода вместе с комиссией в токене превышает баланс, gasless становится недоступен — нужно уменьшить сумму или платить в TON.
  • Try later / Not enough: при ошибках оценки или отправки пользователь видит сообщение “Try later” или “Insufficient funds” и при необходимости может переключиться на оплату комиссии в TON.

SOL и SPL-токены: переводы

Комиссия за отправку SOL или SPL tokens в сети Solana не рассчитывается внутри приложения. Она запрашивается у backend Tonhub: POST на /solana/transaction/fees/mainnet или devnet с телом { transaction }, то есть сериализованной транзакцией. В ответе возвращается объект с полем value — это комиссия, которая отображается пользователю в SOL и, если доступно, в фиатном эквиваленте.
Комиссия оплачивается отправителем в SOL. Если на балансе недостаточно SOL, транзакция не будет подписана и отправлена.

Где это показывается

На экране предпросмотра перевода в Solana отображается блок “Network fee”, то есть комиссия блокчейна, с суммой в SOL и, если известен курс, в фиатном эквиваленте.

Комиссии за стейкинг

При участии в TON-стейкинге пользователи сталкиваются с несколькими типами комиссий, которые задаются каждым пулом индивидуально. Все комиссии явно отображаются в интерфейсе стейкинга до выполнения операции.
  • Комиссия за пополнение — комиссия за отправку средств составляет 0.2 TON.
  • Комиссия за вывод — комиссия за вывод средств обычно составляет от 0.2 до 0.4 TON.

Комиссии за обмен токенов

Tonhub предлагает два варианта обмена криптовалют:
  • Dedust.io — децентрализованная партнерская биржа. Пользователь платит только стандартную комиссию обмена без дополнительных сборов.
  • Changelly — партнерский сервис обмена. Взимается только стандартная сервисная комиссия без дополнительных платежей.