Комиссии за транзакции
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
К аждый пользователь TON должен иметь в виду, что комиссия зависит от многих факторов.
Газ
Все вычислительные расходы выражаются в единицах газа и фиксируются в определённом объёме газа.
Цена единицы газа определяется конфигурацией сети и может быть изменена только по консенсусу валидаторов. Обратите внимание, что, в отличие от других систем, пользователь не может задать собственную цену на газ, и рынка комиссий не существует.
Текущие настройки в basechain: 1 единица газа стоит 400 нанотон.
1 gas = 26214400 / 2^16 nanotons = 0,000 000 4 TON
Текущие настройки в masterchain: 1 единица газа стоит 10 000 нанотон.
1 gas = 655360000 / 2^16 nanotons = 0,000 01 TON
Средняя стоимость транзакции
TLDR: Сегодня базовая транзакция стоит около ~0.0025 TON
Даже если цена TON увеличится в 100 раз, транзакции останутся ультрадешёвыми — около $0.01. узнайте, почему им это выгодно - читайте, почему они заинтересованы в этом.
Текущее количество газа указано в параметре 20 и параметре 21 конфигурации сети для masterchain и basechain соответственно.
Процесс голосования за изменение газа
Комиссия за газ, как и многие другие параметры TON, настраивается и может быть изменена с помощью специального голосования в основной сети.
Для изменения любого параметра требуется 66% голосов валидаторов.
Может ли газ стоить дороже?
Значит ли это, что однажды цена на газ может вырасти в 1000 раз или больше?
Технически да, но фактически нет.
Валидаторы получают небольшую плату за обработку транзакций, и повышение комиссий приведёт к снижению количества транзакций, что сделает процесс валидации менее выгодным.
Как рассчитываются комиссии?
Комиссии в TON сложно рассчитать заранее, так как их размер зависит от времени выполнения транзакции, статуса акка унта, содержимого и размера сообщения, настроек сети блокчейна и множества других переменных, которые нельзя определить до отправки транзакции.
Поэтому даже NFT-маркеты обычно берут дополнительное количество TON (~1 TON) и возвращают (1 - transaction_fee
) позже.
Each contract should check incoming messages for the amount of TON attached to ensure it is enough to cover the fees.
Ознакомьтесь с обзором обзором низкоуровневых комиссий, чтобы узнать больше о формулах для расчета комиссий и рассвете комиссий, чтобы понять, как рассчитывать комиссии в контрактах FunC с использованием новых опкодов TVM.
Давайте подробнее разберёмся, как комиссии работают в сети TON.
Базовая формула расчёта комиссий
Комиссии в TON рассчитываются по следующей формуле:
transaction_fee = storage_fees
+ in_fwd_fees // also named import_fee
+ computation_fees
+ action_fees
+ out_fwd_fees
// Welcome to LIVE editor! // feel free to change any variables // Check https://retracer.ton.org/?tx=b5e14a9c4a4e982fda42d6079c3f84fa48e76497a8f3fca872f9a3737f1f6262 function FeeCalculator() { // https://tonviewer.com/config#25 const lump_price = 400000; const bit_price = 26214400; const cell_price = 2621440000; const ihr_price_factor = 98304; const first_frac = 21845; const nano = 10 ** -9; const bit16 = 2 ** 16; const ihr_disabled = 0; // First of all define is ihr gonna be counted let fwd_fee = lump_price + Math.ceil((bit_price * 0 + cell_price * 0) / bit16); if (ihr_disabled) { var ihr_fee = 0; } else { var ihr_fee = Math.ceil((fwd_fee * ihr_price_factor) / bit16); } let total_fwd_fees = fwd_fee + ihr_fee; let gas_fees = 0.0011976; // Gas fees out of scope here let storage_fees = 0.000000003; // And storage fees as well let total_action_fees = +((fwd_fee * first_frac) / bit16).toFixed(9); let import_fee = lump_price + Math.ceil((bit_price * 528 + cell_price * 1) / bit16); let total_fee = gas_fees + storage_fees + total_action_fees * nano + import_fee * nano; return ( <div> <p> Total fee: {+total_fee.toFixed(9)} TON</p> <p> Action fee: {+(total_action_fees * nano).toFixed(9)} TON </p> <p> Fwd fee: {+(total_fwd_fees * nano).toFixed(9)} TON </p> <p> Import fee: {+(import_fee * nano).toFixed(9)} TON </p> <p> IHR fee: {+(ihr_fee * nano).toFixed(9)} TON </p> </div> ); }
Элементы комиссии за транзакцию
storage_fees
- это сумма, которую вы платите за хранение смарт-контракта в блокчейне. Фактически, вы платите за каждую секунду хранения смарт-контракта в блокчейне.- Пример: ваш кошелёк TON - это тоже смарт-контракт, и он платит комиссию за хранение каждый раз, когда вы получаете или отправляете транзакцию. Подробнее о расчё те комиссии за хранение.
in_fwd_fees
- это плата за импорт сообщений только из внешних источников, например,external
сообщений. Каждый раз, когда вы совершаете транзакцию, её необходимо доставить валидаторам для обработки. Для обычных сообщений от контракта к контракту эта плата не взимается. Чтобы узнать больше о входящих сообщениях, прочтите документацию TON Blockchain.- Пример: каждая транзакция, которую вы совершаете через приложение-кошелёк (например, Tonkeeper), должна сначала распределиться между узлами валидации.
computation_fees
- это плата за выполнение кода в виртуальной машине. Чем больше код, тем выше плата.- Пример: каждый раз, когда вы отправляете транзакцию через кошелёк (который является смарт-контрактом), вы выполняете код вашего кошелька и платите за это.
action_fees
- это плата за отправку исходящих сообщений смарт-контрактом, обновление кода смарт-контракта, библиотек и т. д.out_fwd_fees
- это плата за отправку сообщений за пределы блокчейна TON для взаимодействия с внешними сервисами (например, логами) и другими блокчейнами.
FAQ
Вот самые часто задаваемые вопросы пользователями TON:
Комиссия за отправку TON?
Средняя комиссия за отправку любого количества TON составляет 0.0055 TON.
Комиссия за отправку Jettons?
Средняя комиссия за отправку любого количества пользовательских Jettons составляет 0.037 TON.
Стоимость минта NFT?
Средняя комиссия за минт одного NFT составляет 0.08 TON.