Jetton vs ERC-20
Сравнение Jetton и ERC-20: архитектура балансов, transfer flow и что это значит для клиента и контракта.
Jetton vs ERC-20 — коротко
ERC-20 хранит все балансы в одном контракте. Jetton — master + jetton-wallet на каждого владельца: перевод идёт сообщением на wallet отправителя, а не вызовом transfer на едином токене. Для клиента на TON почти всегда нужен адрес jetton-wallet, а не только master.
Таблица сравнения
| Параметр | Jetton (TON) | ERC-20 (Ethereum) |
|---|---|---|
| Где баланс | Отдельный jetton-wallet контракт | mapping(address => uint) в токене |
| Transfer | Сообщение на wallet отправителя | token.transfer(to, amount) |
| Discover wallet | Вычисляется от master + owner | Не нужен — один адрес токена |
| Approve / allowance | Нет в базовом стандарте (другие паттерны) | approve + transferFrom |
| Gas / нагрузка | Распределена по шардам | Концентрируется на одном контракте |
| События | On-chain сообщения + индексаторы | Transfer / Approval logs |
Когда важна модель Jetton
- Пишешь депозит в vault/DEX: принимаешь входящее сообщение от jetton-wallet, проверяешь sender
- Показываешь баланс в UI: сначала находишь wallet address, потом читаешь
get_wallet_data - Делаешь batch-отправки — учитываешь отдельный gas на каждое сообщение wallet→wallet
Когда привычка ERC-20 ломает код
- Вызываешь «transfer на master» как на ERC-20 — master так не переводит баланс пользователя
- Ждёшь
allowanceиз коробки — в TEP-74 этого нет - Считаешь адрес master «адресом токена пользователя» для UI баланса
Пример: куда слать transfer
Master нужен для mint/metadata и вычисления адреса wallet. Баланс и transfer — всегда через jetton-wallet.
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация