Solana

Solana Token-2022: какие расширения меняют правила токена

Как устроен Token-2022 в Solana, какие функции добавляют extensions, почему часть настроек нельзя изменить после создания mint и что проверить перед переводом или обменом.

Solana Token-2022: какие расширения меняют правила токена

Token-2022 – это расширяемая программа токенов Solana, у которой базовые mint и token account дополняются специальными настройками. Их называют extensions. Они позволяют встроить в актив комиссии за перевод, hook-вызов внешней программы, конфиденциальный баланс, право постоянного делегата и другие функции. Поэтому два токена с одинаковым символом и похожей карточкой в кошельке могут вести себя по-разному.

Главная практическая особенность стандарта – функции нужно оценивать до взаимодействия. Большинство расширений нельзя просто добавить к уже созданному mint, а некоторые сочетания несовместимы. Для держателя это означает проверять не только название и адрес токена, но и его программу, набор расширений, полномочия и поддержку со стороны кошелька, DEX и других приложений.

Чем Token-2022 отличается от базовой программы токенов

В Solana действуют две основные программы для токенов: исходная Token Program и Token Extension Program, которую обычно называют Token-2022. Обе работают с mint, балансами на отдельных token accounts, переводами и полномочиями. Но Token-2022 может хранить дополнительное состояние в специальных полях расширений. Это не отдельная сеть и не новый вид SOL, а другой program ID, который исполняет операции с токенами.

Токеновый mint задаёт общие свойства выпуска: количество знаков после запятой, предложение и некоторые полномочия. Token account хранит баланс конкретного владельца. Часть функций относится именно к mint, часть – к счетам держателей. Если приложение умеет показывать обычный баланс, это ещё не доказывает, что оно корректно обрабатывает любые дополнительные правила.

Базовые понятия mint, token account и программ подробно связаны с материалом об устройстве сети Solana. Для различения полномочий выпуска и заморозки пригодится также разбор mint authority и freeze authority, а адрес счёта владельца поясняет статья про Associated Token Account.

Какие функции добавляют расширения

Набор функций зависит от конкретного mint. Transfer-fee extension удерживает комиссию при переводе и задаёт связанные полномочия: например, кто меняет параметры и кто может извлечь накопленные сборы. Комиссия не является универсальной особенностью всех токенов Token-2022. Её наличие и конкретные настройки нужно проверять у самого актива.

Transfer hook вызывает дополнительную программу при переводе. Это позволяет вводить проверки или логику, заданную эмитентом, однако добавляет зависимость от внешнего кода. Если hook-программа недоступна, настроена неверно или не поддерживается интеграцией, операция может завершиться ошибкой. Поэтому адрес hook и его поведение имеют значение не меньше, чем адрес mint.

Permanent delegate задаёт полномочие уровня mint, способное выполнять разрешённые для делегата операции с токенами на разных счетах без отдельного согласия владельцев этих счетов. Non-transferable запрещает свободную передачу актива. Confidential transfer скрывает определённые данные перевода при соблюдении правил расширения. Pausable mint даёт указанной authority возможность останавливать некоторые операции. Функции меняют модель риска: они могут быть нужны для регулируемого актива, но ограничивают свободу держателя.

Есть также расширения для metadata, группировки токенов, процентов для отображения, закрытия mint и управления состоянием token account. Наличие названия функции не заменяет чтения её полномочий: важно выяснить, кто контролирует настройки, можно ли их менять после выпуска и какие действия остаются доступными администратору.

Почему расширения надо выбирать заранее

Большинство расширений инициализируются вместе с mint или соответствующим token account. В уже созданный mint обычно нельзя произвольно дописать новую функцию. Это заставляет эмитента заранее проектировать требования актива и проверять, какие дополнительные данные потребуются счетам пользователей. Конкретная последовательность создания также важна: некоторые расширения должны быть инициализированы до базового mint.

Некоторые пары несовместимы. Например, Token-2022 не позволяет совместить Non-transferable и Transfer-fee на одном mint: их правила противоречат друг другу. Совместимость зависит от точной комбинации функций, а не от общего утверждения, что «стандарт поддерживает расширения». Разработчику следует проверять список ExtensionType и официальные правила для каждого сценария.

Владельцу токена стоит учитывать и жизненный цикл. Если расширение требует обязательных дополнительных аккаунтов, например для hook-программы, кошелёк или агрегатор должен уметь правильно построить транзакцию. Некоторые приложения могут отображать баланс, но не поддерживать переводы, свопы или выводы для конкретной конфигурации.

Как проверить Token-2022 перед использованием

Сначала найдите точный адрес mint из надёжного источника и откройте его в обозревателе. Сравните адрес посимвольно с адресом, указанным эмитентом или официальным приложением. Название, тикер и изображение не уникальны, а похожий символ можно создать отдельно. Если возникают сомнения в проверке контракта или программы, используйте общий порядок из материала о проверке исходного кода в обозревателе.

Затем выясните, какой Token Program владеет mint: исходная программа или Token-2022. Для второго случая просмотрите список расширений mint и при необходимости соответствующего token account. Зафиксируйте transfer fee, transfer hook, permanent delegate, pause authority, default account state и другие активные поля. Обратите внимание на адреса полномочий и на то, можно ли их сменить или отозвать.

До крупной операции проверьте поддержку именно этой конфигурации на стороне кошелька, биржи, DEX, моста или получателя. Начните с небольшой тестовой операции, если это безопасно и уместно, но помните: успешное отображение токена не гарантирует, что все маршруты перевода будут доступны. Если приложение не показывает расширения, не делайте вывод, что их нет.

Какие ограничения и риски учитывать

Расширения не делают актив автоматически безопасным, децентрализованным или взаимозаменяемым с любым другим SPL-токеном. Административные полномочия могут позволять менять комиссии, останавливать переводы или применять особые правила. Hook-программа создаёт отдельную поверхность отказа. Конфиденциальное расширение не скрывает всю активность кошелька: публичными могут оставаться mint, участники и сам факт транзакции.

Совместимость формируется всей цепочкой: кошельком отправителя, программой токена, hook-логикой, DEX или мостом и кошельком получателя. Перед переводом полезно проверить не только техническую возможность вызова, но и то, как платформа обрабатывает комиссии и дополнительные аккаунты. Если токен является частью регулируемого продукта, отдельно изучите условия эмитента и ограничения на использование.

Практическое правило простое: сначала проверяйте mint и его расширения, затем полномочия, затем поддержку нужного маршрута. Именно эти детали определяют, будет ли Token-2022 для пользователя обычным переводимым активом или токеном с дополнительными условиями, которые влияют на хранение, обмен и перемещение.