НОВОЕ: Helius приобретает Light Protocol
Как получать новые выпущенные токены с помощью Helius
Блог/Разработка

Как получать новые выпущенные токены с помощью Helius

Инженер по работе с разработчикамиAnam Ansari в XAnam Ansari в LinkedIn
Чтение: 6 мин
Содержание

    Введение

    В последнее время мемкоины 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 — набор дополнительных функций и улучшений, включая:

    1.  Расширения выпуска токенов: конфиденциальные переводы, комиссии за переводы, закрытие выпуска, процентные токены, непередаваемые токены, постоянный делегат, перехватчик переводов, указатель метаданных, метаданные.
    2. Расширения аккаунтов: обязательное примечание для входящих переводов, неизменяемое право собственности, состояние аккаунта по умолчанию, защита CPI. 

    Подробнее о Token-2022 читайте в этой статье.

    Token Program в Solana позволяет создавать аккаунты выпуска и токен-аккаунты. Аккаунты выпуска содержат общую информацию о токене, а токен-аккаунты хранят связь между кошельком и аккаунтом выпуска. Создать токены можно с помощью следующего кода или spl-token-cli. Например, если у вас установлен spl-token-cli, выполните в командной строке следующую команду для создания взаимозаменяемого токена:

    Код
    spl-token create-token

    Token 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, указав следующие данные:

    1. Сеть: Mainnet/Devnet
    2. Тип webhook: можно выбрать Enhanced, Raw или Discord. Если вы выберете Discord, необходимо указать URL webhook. Бот отформатирует уведомление и отправит его напрямую. Инструкции по получению URL webhook для Discord-бота доступны здесь. Если выбрать Raw, указать тип транзакции будет невозможно. 
    3. Тип транзакции: выберите TOKEN_MINT, чтобы отслеживать новые выпущенные токены*.* Другие типы транзакций, поддерживаемые программой, перечислены здесь. 
    4. URL webhook: добавьте конечную точку, которая будет принимать уведомления, например Discord-бот или веб-сайт. 
    5. Заголовок аутентификации: укажите заголовок аутентификации для передачи POST-запросов вашему webhook. Это необязательно.
    6. Адрес аккаунта: добавьте здесь адрес 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 и получайте уведомления о наших публикациях

    Увеличенное изображение