Визначення

SPL Token — це стандарт створення та управління токенами в екосистемі Solana, який реалізовано через однойменну програму SPL Token Program. SPL розшифровується як Solana Program Library — набір готових програм, що виконуються на віртуальній машині Solana. Стандарт охоплює як fungible-токени (однорідні, як USDC або BONK), так і non-fungible token (NFT).

Існує два основні варіанти програми: оригінальна SPL Token Program та оновлена SPL Token-2022 (Token Extensions), яка додала гнучкі налаштування — наприклад, заморожування облікових записів, трансферні комісії та метадані без окремих контрактів.

Як працює

На відміну від Ethereum, де баланси токенів зберігаються всередині одного контракту, архітектура Solana використовує модель окремих облікових записів:

  • Mint-акаунт — центральний запис, що визначає токен: його назву, загальну пропозицію, кількість знаків після коми та програму, якій належить.
  • Token-акаунт — індивідуальний запис для кожного власника, де фіксується конкретний баланс певного токена. Один гаманець може мати багато token-акаунтів для різних токенів.
  • Associated Token Account (ATA) — механізм, що автоматично генерує детерміновану адресу token-акаунта для кожної пари «гаманець — mint». Це спрощує роботу: не треба вручну створювати акаунт перед отриманням токена.

Коли ви переказуєте SPL-токен, програма зменшує баланс на вашому token-акаунті відправника та збільшує на token-акаунті одержувача. Усі ці зміни фіксуються в журналі транзакцій Solana.

Програма SPL Token-2022 зберігає зворотну сумісність: старі токени продовжують працювати без змін, а нові можуть використовувати розширення за вибором розробника.

Приклад

Ви отримуєте 100 USDC на свій гаманець Phantom. USDC на Solana — це SPL-токен. Щоб гаманець міг їх зберігати, автоматично створюється Associated Token Account для mint-акаунта USDC і прив'язується до вашого адреса. У інтерфейсі Phantom ви бачите «100 USDC», але під капотом це баланс конкретного token-акаунта, який належить вашому гаманцю і посилається на mint USDC.

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

Найпоширеніша помилка — надсилання токенів на адресу гаманця замість token-акаунта. На Solana адреса гаманця (яка починається з рядка символів і закінчується суфіксом) і адреса token-акаунта — це різні облікові записи. Якщо ви вручну скопіюєте адресу гаманця одержувача й вставите її в поле «recipient» при переказі SPL-токена, транзакція або завершиться помилкою, або токени потраплять на акаунт, яким одержувач не може керувати. Правильний крок — використовувати адресу Associated Token Account одержувача для конкретного токена, або ж вводити базову адресу гаманця в інтерфейсах, які автоматично обчислюють ATA.

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

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

  • Mint — як створюється новий токен і що таке mint-акаунт детально.

Додаткові ресурси

  • Офіційний репозиторій Solana Program Library на GitHub — вихідний код SPL Token Program та Token-2022.
  • Документація Solana до розділу Token Program — технічні специфікації інструкцій та облікових записів.