В Solana программа-владелец аккаунта и owner внутри токен-аккаунта — разные поля. Первое указывает программу, управляющую данными записи. Второе определяет полномочие над конкретным токен-балансом. Mint authority относится к выпуску и является ещё одной ролью. Поэтому надпись Token Program в поле owner сама по себе не означает потерю контроля вашим кошельком.
Проверьте расположение поля owner
У каждого аккаунта Solana есть базовая структура с полем программы-владельца и областью данных. Токен-программа определяет формат содержимого этой области. В разобранных данных токен-аккаунта появляется другое поле owner — полномочие владельца данного количества токенов. Обозреватель способен показывать оба значения в разных блоках. Если обрезать подписи вокруг строки, обычная запись легко выглядит как тревожное изменение.
Базовый уровень описан в справке структуры аккаунта. В обзоре токенов Solana он прямо отделён от owner внутри токеновых данных. Сравнивая адрес кошелька с результатом поиска, выясните, какой слой показывает интерфейс. Само слово owner без названия блока не отвечает на вопрос о полномочиях держателя.
Если токен-аккаунтом управляет исходная Token Program, её идентификатор в базовом owner ожидаем. Для актива Token Extension Program соответствующая программа другая. Эти обозначения не называют человека, оплатившего покупку, и не указывают владельца сайта обозревателя. Идентификатор программы описывает техническую роль, а не удостоверяет личное или юридическое право собственности.
Соотнесите роль и объект
| Роль или ссылка | Где находится | Что означает |
|---|---|---|
| Программа-владелец | Базовая структура аккаунта | Управление данными данной записи |
| Владелец токенов | Разобранные данные token account | Полномочие над конкретным остатком |
| Адрес mint | Ссылка в токен-аккаунте | Идентичность хранящегося токена |
| Mint authority | Данные mint | Дополнительный выпуск, если роль сохранена |
| Freeze authority | Данные mint | Отдельное полномочие обычной заморозки и разморозки |
| Close authority | Данные токен-аккаунта при настройке | Специальное право закрытия записи |
| Плательщик комиссии | Конкретная транзакция | Оплата исполнения, а не автоматическое владение всеми объектами |
Mint не равен вашему балансу. Он представляет общее состояние выпуска токена, а токен-аккаунт хранит количество конкретного владельца. На один mint ссылаются разные держатели. У одного кошелька также может быть несколько счетов одного токена. Обнаружение одного адреса поэтому не доказывает, что найдены все остатки. Проверяйте область поиска и выбранную сеть.
Полномочие выпуска не равно владению всеми остатками
Mint authority разрешает создавать дополнительные единицы по правилам токена. Это отличается от права владельца уже существующего токен-аккаунта. Создатель mint или плательщик его создания не обязан оставаться текущим уполномоченным на выпуск. Читайте сохранённую роль, а не делайте вывод по первой транзакции, сайту проекта или красивому названию актива.
Отсутствующее mint authority тоже описывает только одну роль. Оно не отменяет автоматически freeze authority и полномочия расширений. В справке Set Authority рассматривается изменение конкретного типа полномочия у конкретной записи. Прежде чем называть токен «без владельца» или безопасным, уточните, что именно изменилось и к какому объекту относился запрос.
Полномочия заморозки и закрытия также не следует объединять в одну подпись owner. Для одной инструкции требуется владелец токен-аккаунта, для другой может понадобиться иной уполномоченный участник. Дополнительные расширения вводят собственные роли. Короткая сводка обозревателя не обязательно содержит полный список прав любого токена. Если действие не проходит, выясняйте нужное полномочие, а не назначайте все права первому знакомому адресу.
Разберите один вымышленный набор записей
Представим токен-аккаунт T, mint M и держателя H. В базовом owner у T записана программа P. В разобранных токеновых данных T поле mint равно M, а owner — H. У M роль mint authority принадлежит A. Это условные буквы, не настоящие адреса. Принять P за нового держателя означало бы перепутать управление форматом записи с полномочием H над балансом. Один адрес способен занимать несколько ролей, но это не объединяет разные полномочия в одно. Даже при совпадении значений сверяйте каждое поле отдельно и не переносите разрешение одной роли на другое действие.
Теперь допустим, что создание оплатил аккаунт F. Этот расход сам по себе не делает F держателем T или уполномоченным на выпуск M. Нужно смотреть итоговые поля. Аналогично последующий запрос смены authority читается по точной роли и адресу назначения. Изменение внутреннего владельца токен-аккаунта не равно обычной смене настройки отображения в приложении. Название кнопки не заменяет смысл инструкции.
В справке getAccountInfo отдельно представлены метаданные аккаунта и полезная нагрузка данных. Если ответ закодирован, используйте разбор, понимающий формат соответствующей программы. Поиск своего адреса в произвольной строке байтов и его отсутствие не доказывают смену полномочий. Сначала определите тип записи и правильную схему чтения.
Перед подписью изменения задайте точный вопрос
- Запишите сеть и полный адрес затрагиваемого аккаунта.
- Определите, относится ли запрос к mint, токеновому остатку или другому объекту.
- Найдите тип меняемого полномочия, текущую и предлагаемую стороны, соответствующую токен-программу.
- Прочитайте эффект инструкции вместо доверия только удобному названию действия.
- Сравните изменение с намерением и остановитесь при необъяснимой смене authority.
- После согласованной операции проверьте итог нужного поля и сохраните ссылку.
Для чтения публичного поля подписывать действие не требуется. Если поддержке нужен скриншот, сохраните названия разделов и тип аккаунта, убрав посторонние личные сведения. Вопрос «какой уровень owner здесь показан?» точнее обвинения неизвестной программы в краже. Так специалист сможет объяснить запись, не предлагая преждевременную смену ключей или удаление аккаунта. Сохранённые подписи также пригодятся при сравнении разных обозревателей.
Для поиска поступления используйте инструкцию Solscan. Необъяснимый остаток SOL для хранения разбирается отдельно в статье о rent. При обмене без регистрации следуйте выданным реквизитам. Не заменяйте адрес получения на mint или программу только потому, что рядом написано owner: эти поля отвечают на разные вопросы.
Частые вопросы
Как понимать owner в структуре токен-аккаунта Solana?
Проверьте, показана ли программа-владелец базовой записи или владелец внутри разобранных токеновых данных. Это разные уровни и разные полномочия.
Mint authority Solana распоряжается всеми выпущенными токенами?
Эта роль относится к дополнительному выпуску по правилам токена. Владелец конкретного остатка записывается отдельно в токен-аккаунте.
Ассоциированный токен-аккаунт Solana обязательно единственный?
Это стандартный производный адрес, а не доказательство отсутствия других токен-аккаунтов у владельца. Для полной картины проверяйте соответствующие остатки и область поиска.