Визначення

Token standard — це набір правил і інтерфейсів, які визначають, як токени створюються, зберігаються та передаються в мережі. Простіше кажучи: це угода між розробниками й програмами про те, як саме має поводитися токен, щоб будь-який гаманець, DEX чи дапп міг із ним коректно працювати.

У Solana основним токен-стандартом є SPL Token Program, а його сучасним продовженням — Token-2022 (Token Extensions).

Як працює

У Solana токен-стандарт принципово відрізняється від підходів EVM-мереж (ERC-20, ERC-721). Замість того, щоб зберігати баланси всередині одного контракта, SPL Token Program використовує окремі облікові записи для кожного володіння:

  • Mint-акаунт — визначає загальні властивості токена: назву, символ, загальну пропозицію, кількість знаків після коми та права адміністратора (freeze authority, mint authority).
  • Token-акаунт — утримує баланс конкретного токена для конкретного власника. Один користувач може мати кілька token-акаунтів одного й того ж токена.

Token-2022 зберігає зворотну сумісність із SPL Token Program, але додає вбудовані розширення: конфіденційні перекази (confidential transfers), миттєве заморожування, відсотки за зберігання, метадані безпосередньо в mint-акаунті тощо. Вибір стандарту відбувається на етапі створення токена й фіксується в інструкції ініціалізації mint-акаунта.

Приклад

Ви створюєте utility-токен для свого даппу. Якщо вам достатньо базових функцій — емісія, передача, спалювання — ви використовуєте SPL Token Program. Якщо ж потрібні, наприклад, автоматичні відсотки на залишках або вбудовані метадані без додаткових контрактив, обираєте Token-2022. В обох випадках гаманці типу Phantom чи Solflare розпізнають токен, але розширені функції будуть доступні лише за умови підтримки Token-2022 на стороні клієнта.

Типова помилка

Припускати, що токен-стандарт Solana працює так само, як ERC-20. У EVM-мережах баланс користувача — це запис у мапі всередині контракта. У Solana баланс — це окремий token-акаунт із власним адресним простором. Ігнорування цієї різниці призводить до помилок в інтеграції: спроба прочитати баланс без попереднього створення token-акаунта для користувача завершиться помилкою.

Пов'язані матеріали

Внутрішні переходи

  • Token account — детально про структуру облікового запису токена в Solana
  • Liquidation — про ліквідацію позицій у DeFi-протоколах