
Дисклеймер: если вы хотите следовать инструкции из этой статьи, вам придется тратить реальные SOL, реальные деньги. Если вы не хотите тратить ваши SOL и создавать настоящий SPL токен, пожалуйста, используйте devnet или testnet.
Это далеко не первая статья на данную тему, многие писали об этом до меня. Но технология - вещь подвижная - и не стоит на месте. Некоторые моменты изменились, некоторые инструменты ушли в небытие, и я собираюсь представить самый простой рабочий метод создания SPL токена с ограниченным предложением на Solana в 2025 году. Поехали!
Перед тем как вы начнете: будет хорошо, если вы будете иметь под рукой открытый файл или заметки, чтобы вы могли копировать и сохранять нужные адреса, ссылки и пр. Потому что это нам понадобится в будущем.
Любое хорошее дело начинается с плана!
Установить Solana-CLI и сгенерировать кошелек/адрес.
Пополнить наш свежий кошелек (рекомендуется 0.05 SOL).
Установить Rust и spl-token CLI.
Использовать утилиту spl-token (spl-token-cli) чтобы создать наш токен.
Подготовить JSON с метаданными. Загрузить метаданные и логотип в децентрализованное хранилище.
Выпустить предложение токена.
Отключить функцию выпуска и заморозить метаданные.
Перевести токены друзьям или на другие специальные кошельки.
Распространение токена.
Создание пару и добавление ликвидности на децентрализованный обменник (DEX).
В данной статье мы покроем шаги 1–8, шаги 9–10 заслуживают отдельной статьи.
Мы будем использовать Token 2022 Program, чтобы создать SPL токен и управлять его метаданными. Без метаданных [на Solana] это будет простой токен, без логотипа, а также без какого-либо символа и имени. Им можно пользоваться, но не факт, что к нему будет проявлен какой-либо интерес. Итак, откроем эксплорер (Solscan) и посмотрим на программу Token 2022.
Нам понадобится Program ID (также иногда называемой адресом программы), скопируйте его и сохраните (это может быть текстовый файл, упомянутый выше или ваши заметки).

Рассчитываю, что вы пользуетесь Linux или MacOS. Если вы работаете на Windows - вам необходимо использовать WSL или аналогичное решение. Это также заслуживает отдельной статьи и не вписывается в эту.
Начнем с установки Solana CLI (если вы еще этого не сделали). Откройте терминал и запустите следующую команду:
sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
После успешной установки вы увидите сообщение следующего характера:
Close and reopen your terminal to apply the PATH changes or run the following in your existing shell:export PATH="/Users/<username>/.local/share/solana/install/active_release/bin:$PATH"
Далее необходимо либо закрыть текущий терминал и открыть новый, либо скопировать и вставить предложенную команду:
export PATH="/Users/<username>/.local/share/solana/install/active_release/bin:$PATH"
Готово! Теперь попробуем несколько команд, чтобы убедиться.
solana --version
Вы должны увидеть что-то вроде:
solana-cli 2.0.24 (src:4c817c28; feat:607245837, client:Agave)
Сгенерируйте новую пару ключей следущей командой:
solana-keygen new
Это должно сохранить пару ключей в папке по умолчанию. А теперь узнаем наш адрес в Solana:
solana address
Мой как бы и не важен. Но, конечно, если желаете, можете поставить мне кофе или пиво (только я выберу сам, что), отправив мне немного SOL на 4f6QgbUoauEwPCgUFhppQiEmX8XJZ1GPs7XrGwQaGYYV. Но ваш адрес будет другим. Скопируйте и вставьте ваш адрес в текстовый файл или заметки. Далее нам необходимо пополнить его немного SOL. Это можно сделать через централизованную биржу, сервис типа Moonpay, или любой холодный/горячий кошелек на котором есть SOL. Все, что вам нужно сделать - это перевести SOL на ваш новый адрес. Это потребуется для последующих операций. Советую положить примерно 0.05 SOL.
После пополнения кошелька, проверим его баланс.
solana balance
Должно показать ровно столько SOL, сколько вы и отправили. Шаги 1-2 завершены, и мы переходим к самому интересному.
Создание токена
Чтобы установить spl-token-cli, сначала нужно установить Rust. После установки Rust is (возможно, вам придется перезапустить терминал) мы можем установить spl-token CLI:
cargo install spl-token-cli
Заварите себе чай или кофе, это займет несколько минут. Когда готово, пробуем:
spl-token --version
Мы почти на месте. Чтобы узнать, как пользоваться утилитой spl-token, можно посмотреть help.
spl-token --help
Запустим spl-token с Program ID программы Token 2022 Program, командой create-token и опцией enable-metadata.
spl-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb create-token --enable-metadata
Если вы располагаете достаточным количеством SOL, вам будет показан адрес свежесозданного токена, количество знаков после запятой (по умолчанию в Solana - 9) и подпись транзакции. Скопируйте адрес токена в ваш файл или заметки. Вам также будет показана команда для инициализации он-чейн метаданных токена (Metaplex metadata).
To initialize metadata inside the mint, please run `spl-token initialize-metadata <YOUR_TOKEN_ADRESS> <YOUR_TOKEN_NAME> <YOUR_TOKEN_SYMBOL> <YOUR_TOKEN_URI>`
Просто и понятно, не так ли? Секунду! Как насчет token URI? У нас его нет... пока. Давайте решим этот вопрос!
Создание и выгрузка метаданных
Для этого обычно используют IPFS, Arweave (если вы совсем ленивы, можете использовать ardrive) или Pinata.
Начнем с логотипа токена. Это должно быть квадратное изображение размером 256x256 пикселей. Желательно PNG с прозрачным фоном. Документация также говорит, что можно использовать SVG, но я подозреваю, что не все кошельки и сервисы будут это поддерживать.
После выгрузки файла вы должны получить ссылку. В случае с Pinata это будет выглядеть примерно так:
https://salmon-defeated-piranha-879.mypinata.cloud/ipfs/afgsreidvep3nj4z4kggopgfc56vtgpwtsyf6ith2fslvam5u7vq7o2i4hu
Теперь мы может это использовать в нашем JSON-файле с метаданными, также называемом offchain metadata. Скопируйте эту ссылку и сохраните ее в вашем текстовом файле или заметках. Также скопируйте ее в буфер, т.к. это понобится на следующем этапе.
Создадим JSON-файл со следующей структурой (замените плейсхолдеры на ваши значения):
{
"name": "MyCoin",
"symbol": "MYCOIN",
"description": "Please put a coin description here.",
"image": "https://<your-pinata-id>.mypinata.cloud/ipfs/<CID>",
"external_url": "https://mycoinwebsite.com",
"attributes": [
{"trait_type": "Type", "value": "Meme Coin"},
{"trait_type": "Blockchain", "value": "Solana"}
],
"properties": { "files": [{
"uri": "https://<your-pinata-id>.mypinata.cloud/ipfs/<CID>",
"type": "image/png"
}],
"category": "image"
}
}
По мере готовности заливаем на Pinata/Arweave, и — снова — сохраняем ссылку в рабочий файл.
In order to update the metadata we will use the command proposed before:
spl-token initialize-metadata <YOUR_TOKEN_ADRESS> <YOUR_TOKEN_NAME> <YOUR_TOKEN_SYMBOL> <YOUR_TOKEN_URI>
Вставляем свой адрес токена, полное название токена, символ токена (сокращенное называние), а также URI загруженного JSON-файла.
Выпуск предложения
Перед выпуском токена нам необходимо создать токен-аккаунт, такова специфика работы с SPL-токенами на Solana.
spl-token create-account <YOUR_TOKEN_ADDRESS>
Это создаст специальный аккаунт - скопируйте и сохраните его адрес в ваш рабочий файл. На этот аккаунт выпускаем токен:
spl-token mint <YOUR_TOKEN_ADDRESS> <AMOUNT> <YOUR_MINT_ACCOUNT>
spl-token balance <YOUR_TOKEN_ADDRESS>
Давайте убидимся, что все в порядке. Открываем в браузере ссылку (вставьте адрес своего токена):
https://solscan.io/token/<YOUR_TOKEN_ADDRESS>
В обозревателе блокчейна вы увидите имя токена, символ и логотип. В кошельках типа Phantom и пр. метаданные могут появится не сразу, а через какое-то время.
Призываем Subzero!
После того, как мы сделали выпуск, замораживаем дальнейший выпуск и обновление метаданных (исключая такую возможность):
spl-token authorize <YOUR_TOKEN_ADDRESS> mint --disable
spl-token authorize <YOUR_TOKEN_ADDRESS> freeze --disable
spl-token authorize <YOUR_TOKEN_ADDRESS> metadata --disable
Мои поздравления! Вы сделали этo!
Отправляем токен друзьям
Используем следующую команду:
spl-token transfer --fund-recipient <YOUR_TOKEN_ADDRESS> amount <YOUR_FRIENDS_SOLANA_ADRESS> --allow-unfunded-recipient
Можно открыть solscan.io и посмотреть детали транзакции, скопировав и вставив подпись транзакции из терминала.
В следующей части мы рассмотрим как создать пару на Raydium DEX и добавить ликвидность (что также делает наш токен доступным на Jupiter DEX). Это позволит людям торговать вашим токеном. Также рассмотрим альтернативные способы создания токенов на Solana. Продолжение следует...