Ця інструкція проведе вас через створення першого SPL-токена на Solana Devnet за допомогою spl-token CLI. У результаті ви отримаєте робочий токен із випущеною пропозицією, який можна перевірити в Explorer. Усе відбувається на тестовому кластері — реальні кошти не витрачаються.

Середовище: Devnet (тестовий кластер Solana)
Інструмент: spl-token CLI (входить до екосистеми Solana CLI Tools)
Програма: стандартний SPL Token Program (TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA)
Передумови: встановлені Solana CLI та Rust toolchain, налаштований гаманець

Цей приклад є навчальним. Для production-рішень токени створюються програмно через Anchor або безпосередньо через SPL Token бібліотеки, а не через CLI-команди.

Підготовка

Отримання тестових SOL

Кожен акаунт у Solana повинен бути rent-exempt — мати мінімальний баланс, який блокчейн утримує як депозит. Створення токена потребує щонайменше двох акаунтів (mint та token account), тому вам знадобляться тестові SOL.

Переконайтеся, що ви підключені до Devnet:

solana config set --url devnet

Перевірте поточний баланс:

solana balance

Отримайте тестові SOL через airdrop:

solana airdrop 2

Очікуваний результат: повідомлення про успішне зарахування 2 SOL. Якщо airdrop повертає помилку про ліміт, скористайтеся веб-фацетом Solana (адресу фацету перевірте в офіційній документації Solana, оскільки вона може змінюватися).

Повторіть airdrop, якщо потрібно — для створення токена зазвичай достатньо 2–3 SOL на Devnet.

Встановлення spl-token CLI

spl-token — це командний рядок для взаємодії зі стандартною програмою токенів Solana. Він встановлюється окремо від базового Solana CLI.

Встановіть через Cargo:

cargo install spl-token-cli

Перевірте встановлення:

spl-token --version

Очікуваний результат: виведення номера версії без помилок. Якщо команда не знайдена, перевірте, що каталог ~/.cargo/bin додано до змінної середовища PATH.

Створення токена через CLI

spl-token create-token — створення mint

Mint-акаунт — це центральний контракт вашого токена. Він зберігає загальну інформацію: кількість випущених токенів, кількість знаків після коми (decimals) та адресу програми-власника. Самі токени на цьому акаунті не зберігаються.

Створіть mint-акаунт:

spl-token create-token

Очікуваний результат: CLI виведе адресу створеного mint-акаунта, наприклад:

Mint address: 7Xf3...Kj9P

Збережіть цю адресу — вона потрібна для всіх наступних кроків.

Що відбувається під капотом: CLI створює новий акаунт, депонує на нього rent-exempt мінімум (приблизно 0.0015 SOL на Devnet) та ініціалізує його через стандартну SPL Token програму з параметрами за замовчуванням (decimals = 9).

Створення token account для гаманця

Token account (акаунт токена) — це місце, де фактично зберігається баланс конкретного власника в конкретному токені. Один гаманець може мати окремі token accounts для різних токенів.

Створіть акаунт токена, прив'язаний до вашого гаманця:

spl-token create-account <MINT_ADDRESS>

Замініть <MINT_ADDRESS> на адресу, отриману на попередньому кроці.

Очікуваний результат: CLI виведе адресу створеного token account. Це буде Associated Token Account (ATA) — детерміновано згенерована адреса на основі вашого гаманця та mint-адреси.

Витрати: ще приблизно 0.002 SOL за rent-exempt депозит.

Mint-нення токенів

spl-token mint — випуск токенів

Тепер, коли існують mint-акаунт (визначає токен) і token account (зберігає баланс), можна випустити (зкарбувати) токени на свій token account.

Базова команда:

spl-token mint <MINT_ADDRESS> <AMOUNT>

Увага: параметр <AMOUNT> вказується у найменших одиницях токена, а не у «цілих» токенах. Зв'язок між ними визначається параметром decimals.

Вказування кількості та decimals

За замовчуванням spl-token create-token створює токен із decimals = 9. Це означає, що один «цілий» токен поділяється на 109 (мільярд) найменших одиниць — так само, як 1 SOL = 1 000 000 000 lamports.

decimals Команда для випуску 100 цілих токенів Відображуваний баланс
0 spl-token mint <MINT> 100 100
6 spl-token mint <MINT> 100000000 100
9 (за замовчуванням) spl-token mint <MINT> 100000000000 100

Якщо ви хочете змінити decimals, це потрібно зробити на етапі створення mint:

spl-token create-token --decimals 6

Після створення mint-акаунта змінити decimals неможливо — це незмінний параметр.

Приклад: для випуску 1000 токенів із decimals = 9 виконайте:

spl-token mint <MINT_ADDRESS> 1000000000000

Очікуваний результат: повідомлення про успішне mint-нення з вказанням кількості та token account, на який зараховано токени.

Перевірка результату

spl-token account — перегляд балансу

Перегляньте всі ваші token accounts:

spl-token accounts

Очікуваний результат: список акаунтів із відповідними mint-адресами та балансами. Знайдіть рядок із вашою mint-адресою — баланс має відповідати випущеній кількості.

Для детальної інформації про конкретний акаунт:

spl-token account <TOKEN_ACCOUNT_ADDRESS>

Це покаже: mint-адресу, власника, баланс та стан (frozen/unfrozen).

Перевірка в Explorer

Відкрийте Solana Explorer для Devnet. Адресу веб-інтерфейсу перевірте в офіційній документації Solana, оскільки вона може оновлюватися. У рядку пошуку введіть вашу mint-адресу.

Що перевірити:

  • Розділ «Supply» — має показувати випущену кількість
  • Розділ «Mint Authority» — ваша адреса (оскільки ви створювали токен через CLI, ви є авторитетом)
  • «Decimals» — має відповідати вказаному значенню (9 за замовчуванням)

Тепер введіть у пошук token account address — ви побачите баланс конкретного акаунта та посилання на mint.

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

Insufficient funds для створення акаунтів

Симптом: при виконанні spl-token create-token або spl-token create-account з'являється помилка з текстом Insufficient funds або attempt to debit an account but found no record of a prior credit.

Причина: на вашому гаманці недостатньо SOL для покриття rent-exempt мінімуму та комісії за транзакцію. Створення mint-акаунта та token account разом потребують приблизно 0.003–0.005 SOL на Devnet.

Рішення:

  1. Перевірте баланс: solana balance
  2. Отримайте додаткові SOL: solana airdrop 2
  3. Повторіть команду

Якщо airdrop недоступний через ліміти, зачекайте кілька хвилин або скористайтеся веб-фацетом.

Невірний decimals

Симптом: після mint-нення баланс у Explorer або через spl-token accounts показує набагато менше (або більше), ніж ви очікували.

Причина: ви вказали кількість у «цілих» токенах, але CLI інтерпретує її як найменші одиниці. Наприклад, з decimals = 9 команда spl-token mint <MINT> 100 випустить 100 / 109 = 0.0000001 токена.

Рішення:

  1. Перевірте decimals вашого токена: spl-token account <TOKEN_ACCOUNT> (поле «Decimals» у відповіді)
  2. Перерахуйте суму: потрібна кількість цілих токенів × 10decimals
  3. Випустіть додаткові токени з правильною сумою

Профілактика: вказуйте decimals явно при створенні mint-акаунта (--decimals 6 або інше зручне значення) та завжди множте бажану кількість на 10decimals при mint-ненні.

Відкат на Devnet: оскільки це тестове середовище, ви можете просто створити новий токен з правильними параметрами. Створені акаунти залишаться на ланцюжку, але не вплинуть на ваш баланс SOL суттєво, а токени не мають реальної цінності.

Джерела