TON Jettons
TON Jettons — це стандарт інтерфейсу взаємозамінних токенів на блокчейні TON. Взаємозамінність означає, що токени не відрізняються один від одного. Стандарт необхідний для уніфікації та спрощення розробки й використання токенів. Це робить їх сумісними з різними платформами.
Інтерфейс реалізований у вигляді смарт-контрактів на мовах програмування FunC і Tact. Створити свою монету можна і без знання коду, за допомогою TON Minter або TON Raffles. Для цього необхідно заповнити спеціальну форму, вказавши основні параметри монети.
Токени стандарту Jetton торгуються переважно на DEX біржах Ston.fi та DeDust. Рейтинг монет можна дізнатися на TON App.
Опис та механіка
Стандарт був запропонований 24 серпня 2022 року в TEP-0074 та опублікований на GitHub. Інтерфейс складається з двох смарт-контрактів: основного (майстер) та контракту гаманця. Основний контракт один для кожного жетона. Водночас для кожної адреси користувача створюється окремий контракт гаманця.
В основному контракті:
- зберігається загальна кількість токенів;
- метаінформація про монету: назва, опис, логотип, кількість знаків після коми, символ, додаткова інформація про формат відображення кількості (схема представлена окремим стандартом TEP 0064);
- код контракту гаманця;
- є функція випуску нових токенів.
Основний контракт повинен мати методи отримання даних про монету та розрахунку адреси контракту гаманця для конкретної адреси власника.
За допомогою контракту гаманця можна:
- переказати кошти;
- спалити токени: зменшити баланс з повідомленням основного контракту;
- дізнатися баланс, адресу власника гаманця, адресу основного контракту, отримати код гаманця;
При пересиланні жетонів спочатку повідомлення надсилається на контракт Jetton-гаманця відправника (зменшення балансу), потім на контракт Jettons-гаманця отримувача (збільшення балансу). Якщо контракти гаманців не існують — вони створюються.
Типи монет Jetton
1. Обгорнуті токени: Це монета, вартість якої прив'язана до іншої монети, що перебуває під заставою для забезпечення вартості обгорнутої монети. Вони можуть існувати як в одній екосистемі, так і на різних блокчейнах. Фактично, вони діють як «обгортка» для базового активу, дозволяючи йому функціонувати в нових умовах. Наприклад: WTON, jUSDT, jUSDC, jWBTC. Обгорнуті токени потрібні для переказів між різними блокчейнами, обміну на DEX, голосування в DAO. Наприклад, jWBTC — це еквівалент BTC, але в мережі TON. Таким чином, можна використовувати еквівалент BTC, не сплачуючи великих комісій.
2. Мемкоїни: Токени у вигляді жарту. Вони потрібні для привертання уваги спільноти і як високоризиковий спекулятивний актив. Наприклад: Notcoin, Arbuz. Завдяки вірусному поширенню гри, Notcoin привернув мільйонну аудиторію за короткий час, включаючи тих людей, які раніше були поза крипторинком. Після набуття популярності, Notcoin був випущений та розданий учасникам гри у вигляді Jetton-монет.
3. Utility-токени: Використовуються для доступу до послуг або функцій на платформі. Наприклад, JetTon — ігрова монета на платформі азартних ігор, Web3 TON Token — для торгівлі доменами на TON DNS, TRIBE — для монетизації цифрового контенту.
Відмінності між Jetton та ERC-20
1. Децентралізованість: Jettons є більш децентралізованими завдяки великій кількості контрактів гаманців, на яких зберігаються баланси. У ERC-20 — лише один смарт-контракт, що зберігає та керує всіма балансами. Власник контракту стандарту ERC-20 має можливість блокувати рахунки.
2. Механізм переказів: У Jettons пересилка токенів відбувається завдяки взаємодії контрактів гаманців. У ERC-20 — завдяки виклику функції «transfer» одного контракту.
3. Супутня пересилка: Під час пересилки Jettons можлива також пересилка додаткових даних та монет Toncoin. У ERC-20 такої можливості немає.
4. Спалювання: У Jettons існує спеціальний механізм спалювання. У ERC-20 — просто посилання на адресу, яка не належить нікому.
5. Запит балансу: Існують складнощі отриманням поточного балансу Jetton під час передачі. Це виникає через збільшення балансу отримувача на контракті гаманця у наступному блоці. У ERC-20 дані балансу можна отримати на основі останнього блоку, тобто переказ монет зафіксований в одному блоці.