
Как получать новые выпущенные токены с помощью Helius
Содержание
Введение
В последнее время мемкоины Solana не сходят с первых полос: капитализация $WIF превысила 3,5 млрд долларов, а Boden достиг 300 млн долларов. Popcat и Wen недавно преодолели отметку в 350 млн долларов. Объём торгов Slerf уже в первый день превысил совокупный объём торгов на всех биржах на базе Ethereum. После взлёта BONK в ноябре прошлого года в Solana создаётся больше новых токенов, чем когда-либо прежде.
В этой статье мы расскажем, как создаются токены в Solana, что такое SPL-токены, а также как отслеживать новые токены и получать их метаданные с помощью Helius.
Как создаются токены в Solana?
Solana поддерживает как нативный SOL, так и другие токены. Solana Program Library (SPL) определяет общие стандарты взаимозаменяемых и невзаимозаменяемых токенов (NFT) в Solana. В отличие от Ethereum, где для разных типов невзаимозаменяемых (ERC-721) и взаимозаменяемых токенов (ERC-20) установлены разные стандарты, в Solana Program Library нет отдельных стандартов для разных типов токенов.
Token Program
Стандартной реализацией взаимозаменяемых и невзаимозаменяемых токенов (NFT) в Solana служит Token Program. Она позволяет создавать новые типы токенов и аккаунты, переводить и сжигать токены, а также выполнять другие операции. Разработка Token Program завершена, и добавление новых функций не планируется. Изменения могут вноситься для исправления важных или критических ошибок.
Однако возможности Token Program ограничены: чтобы добавить новые функции, разработчикам приходится создавать форк, что усложняет транзакции и повышает риски. Для решения этой проблемы Solana представила Token-2022 — набор дополнительных функций и улучшений, включая:
- Расширения выпуска токенов: конфиденциальные переводы, комиссии за переводы, закрытие выпуска, процентные токены, непередаваемые токены, постоянный делегат, перехватчик переводов, указатель метаданных, метаданные.
- Расширения аккаунтов: обязательное примечание для входящих переводов, неизменяемое право собственности, состояние аккаунта по умолчанию, защита CPI.
Подробнее о Token-2022 читайте в этой статье.
Token Program в Solana позволяет создавать аккаунты выпуска и токен-аккаунты. Аккаунты выпуска содержат общую информацию о токене, а токен-аккаунты хранят связь между кошельком и аккаунтом выпуска. Создать токены можно с помощью следующего кода или spl-token-cli. Например, если у вас установлен spl-token-cli, выполните в командной строке следующую команду для создания взаимозаменяемого токена:
spl-token create-tokenToken Metadata Program
Аккаунты выпуска содержат определённые атрибуты данных, например текущий объём предложения токена. Однако в них нет стандартизированных данных, таких как название и символ. Для решения этой проблемы Metaplex представила Token Metadata Program. Эта программа позволяет прикреплять дополнительные данные к взаимозаменяемым и невзаимозаменяемым токенам с помощью PDA (Program Derived Addresses), полученных из адреса выпуска.
Изначально Token Metadata Program была создана для упрощения выпуска NFT в Solana. Однако она также работает с SFT — полувзаимозаменяемыми токенами. SFT сочетают свойства взаимозаменяемых и невзаимозаменяемых токенов. Изначально они ведут себя как взаимозаменяемые токены: их можно обменивать на идентичные токены без потери стоимости для любой из сторон. После использования они теряют обменную стоимость и приобретают свойства коллекционных невзаимозаменяемых токенов. SFT работают как уникальный тип аккаунта, к которому прикрепляются метаданные для представления характеристик в игре или метавселенной. В некоторых сценариях SFT предпочитают NFT благодаря их эффективности, экономичности, гибкости и повышенной безопасности транзакций.
Token Metadata Program также поддерживает программируемые NFT (pNFT). Этот новый стандарт активов позволяет создателям определять собственные правила для конкретных операций и точнее делегировать полномочия сторонним участникам. Токен-аккаунт pNFT всегда заморожен в SPL Token program независимо от того, делегирован ли pNFT. Это не позволяет обойти Token Metadata Program путём прямого взаимодействия с SPL Token program.
Мониторинг новых токенов
Чтобы отслеживать новые выпущенные токены, настроим webhook. Webhook позволяют отслеживать ончейн-события и запускать определённые действия при их наступлении. Мы настроим webhook для отслеживания типа транзакций TOKEN_MINT из Token Metadata Program. Сейчас для этого типа транзакций поддерживаются следующие источники (другие источники будут помечены как «UNKNOWN»):
"TOKEN_MINT": [ "CANDY_MACHINE_V1", "ATADIA", "SOLANA_PROGRAM_LIBRARY" ]Webhook можно создать через панель управления Helius или программно с помощью справочника API. Чтобы создать webhook через панель управления, перейдите в раздел Webhooks на левой панели и нажмите New Webhook. Затем настройте webhook, указав следующие данные:
- Сеть: Mainnet/Devnet
- Тип webhook: можно выбрать Enhanced, Raw или Discord. Если вы выберете Discord, необходимо указать URL webhook. Бот отформатирует уведомление и отправит его напрямую. Инструкции по получению URL webhook для Discord-бота доступны здесь. Если выбрать Raw, указать тип транзакции будет невозможно.
- Тип транзакции: выберите
TOKEN_MINT, чтобы отслеживать новые выпущенные токены*.* Другие типы транзакций, поддерживаемые программой, перечислены здесь. - URL webhook: добавьте конечную точку, которая будет принимать уведомления, например Discord-бот или веб-сайт.
- Заголовок аутентификации: укажите заголовок аутентификации для передачи POST-запросов вашему webhook. Это необязательно.
- Адрес аккаунта: добавьте здесь адрес Token Metadata Program:
metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s. В других случаях при необходимости можно добавить несколько адресов аккаунтов. Если вы хотите получать сведения об определённом пользователе в транзакции, укажите его адрес.
После подтверждения webhook готов к работе. Теперь на основе URL webhook можно создать подходящий фронтенд. Здесь мы выбрали Discord в качестве типа webhook и указали URL webhook Discord-бота, поэтому программировать Discord-бота не требуется. Мы будем получать такие уведомления:
Получение метаданных токена
Чтобы получить метаданные определённого токена, используйте его ID — адрес выпуска токена. Обработайте JSON-уведомление, отправленное через Enhanced webhook, когда для типа webhook выбрано значение Enhanced. Адрес выпуска находится в поле "mint" первого объекта массива transferTokens. Получив ID токена, можно использовать метод getAsset из DAS API, чтобы получить дополнительную информацию о токене.
Например, с помощью метода getAsset можно получить информацию о Jito Staked SOL (JitoSOL):
const url = `https://mainnet.helius-rpc.com/?api-key=<api_key>`
const getAsset = async () => {
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 'my-id',
method: 'getAsset',
params: {
id: 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn',
displayOptions: {
showFungible: true //return details about a fungible token
}
},
}),
});
const { result } = await response.json();
console.log("Asset: ", result);
};
getAsset();Дополнительные примеры использования DAS API, а также полная схема запроса и ответа этого метода доступны в нашей документации.
Заключение
В этой статье мы узнали, как создаются токены в Solana, что такое SPL-токены и как отслеживать новые токены, настроив webhook и получая их метаданные через Helius. Если вам нужна помощь или поддержка, свяжитесь с нами в Discord!
Введите свой адрес электронной почты ниже, чтобы не пропускать новости Solana. Хотите узнать больше? Читайте новые статьи в блоге Helius и продолжайте изучать Solana уже сегодня.
Ресурсы
Похожие статьи
Подпишитесь на Helius
Следите за новостями разработки на Solana и получайте уведомления о наших публикациях


