Ця інструкція проведе вас через створення першого 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.
Рішення:
- Перевірте баланс:
solana balance - Отримайте додаткові SOL:
solana airdrop 2 - Повторіть команду
Якщо airdrop недоступний через ліміти, зачекайте кілька хвилин або скористайтеся веб-фацетом.
Невірний decimals
Симптом: після mint-нення баланс у Explorer або через spl-token accounts показує набагато менше (або більше), ніж ви очікували.
Причина: ви вказали кількість у «цілих» токенах, але CLI інтерпретує її як найменші одиниці. Наприклад, з decimals = 9 команда spl-token mint <MINT> 100 випустить 100 / 109 = 0.0000001 токена.
Рішення:
- Перевірте decimals вашого токена:
spl-token account <TOKEN_ACCOUNT>(поле «Decimals» у відповіді) - Перерахуйте суму: потрібна кількість цілих токенів × 10decimals
- Випустіть додаткові токени з правильною сумою
Профілактика: вказуйте decimals явно при створенні mint-акаунта (--decimals 6 або інше зручне значення) та завжди множте бажану кількість на 10decimals при mint-ненні.
Відкат на Devnet: оскільки це тестове середовище, ви можете просто створити новий токен з правильними параметрами. Створені акаунти залишаться на ланцюжку, але не вплинуть на ваш баланс SOL суттєво, а токени не мають реальної цінності.