Що таке ERC-20: стандарт токенів Ethereum
ERC-20 — стандарт взаємозамінних токенів у мережі Ethereum, який визначає єдиний набір функцій для переказів і балансів.
ERC-20 з’явився в Ethereum як домовленість про те, як має виглядати токен: функції totalSupply, balanceOf, transfer, approve, transferFrom і allowance, а також події Transfer та Approval. Завдяки цьому будь-який гаманець, біржа чи платіжний сервіс працює з новим токеном без окремої інтеграції. USDT і USDC в Ethereum — токени ERC-20.
Кожен токен має параметр decimals — кількість знаків після коми. Для USDT і USDC в Ethereum це 6, для багатьох інших токенів — 18. Блокчейн зберігає баланс як ціле число, тож 1 USDT у контракті — це 1 000 000 одиниць. Помилка в decimals — класична причина некоректного зарахування.
Комісія за переказ ERC-20 сплачується в ETH, а не в токені. Переказ токена дорожчий за простий переказ ETH, бо виконує код контракту. Під час завантаження мережі ціна gas зростає, і невеликі платежі в ERC-20 стають невигідними для клієнта — тому для дрібних сум частіше обирають TRON, BSC чи Solana.
З approve пов’язаний поширений вид шахрайства: користувача змушують підписати дозвіл на списання токенів для чужого контракту, після чого кошти виводять. Мерчанту не потрібно просити клієнта про approve — для оплати достатньо звичайного transfer на адресу. Якщо платіжна сторінка вимагає «підключити гаманець і підтвердити дозвіл», варто насторожитися.
Moonvex приймає в Ethereum ETH, USDT і USDC. Сервіс сам поповнює gas на адресах платежів і збирає кошти, тому мерчанту не потрібно тримати ETH на кожній адресі.