| Объект | Что хранит или делает | Какой вопрос закрывает |
|---|---|---|
| Owner wallet | Управляет сообщениями и является владельцем Jetton wallet | Кому относится баланс |
| Jetton master | Параметры выпуска, metadata, admin и код wallet; вычисляет wallet для owner | Какой именно Jetton проверяется |
| Jetton wallet | Баланс одного owner для одного master и логику переводов | Где находится конкретный token balance |
- Объект
- Owner wallet
- Что хранит или делает
- Управляет сообщениями и является владельцем Jetton wallet
- Какой вопрос закрывает
- Кому относится баланс
- Объект
- Jetton master
- Что хранит или делает
- Параметры выпуска, metadata, admin и код wallet; вычисляет wallet для owner
- Какой вопрос закрывает
- Какой именно Jetton проверяется
- Объект
- Jetton wallet
- Что хранит или делает
- Баланс одного owner для одного master и логику переводов
- Какой вопрос закрывает
- Где находится конкретный token balance
Проверка начинается с master address, а не с ticker
Название, symbol, decimals и изображение могут находиться в Jetton content и повторяться у постороннего контракта. Возьмите master address из официального сайта проекта, его проверенного объявления или поддерживаемого реестра площадки и зафиксируйте mainnet. Сравнивайте весь адрес после нормальной валидации: форматы адресов TON могут выглядеть по-разному при одном account ID, но ручная замена префикса не является проверкой.
Master вычисляет wallet для конкретного owner
Стандартный master предоставляет get_wallet_address(owner_address). Результат — ожидаемый Jetton wallet для этой пары owner и master. Адрес детерминирован, но contract account может ещё не быть развёрнут, пока не получил соответствующее сообщение или токены. Самостоятельно собирать StateInit по предположению о внутреннем layout опасно: официальная документация предупреждает, что постоянные данные wallet не полностью заданы стандартом. Предпочтительный путь — get-method выбранного master.
Воспроизводимая проверка адреса
- 1Зафиксируйте сеть
Используйте TON mainnet endpoint и не смешивайте результат с testnet или кешем другого провайдера.
- 2Подтвердите master
Сохраните полный master address и источник, который связывает его с ожидаемым активом.
- 3Передайте owner
Вызовите get_wallet_address на этом master с обычным wallet address владельца как аргументом.
- 4Сравните результат
Ожидаемый адрес должен совпасть с Jetton wallet, который показывает explorer, индексатор или входящее сообщение.
- 5Прочитайте wallet data
Если контракт развёрнут, get_wallet_data должен вернуть ожидаемые owner и master; только затем интерпретируйте balance.
Balance принадлежит wallet-контракту и использует минимальные единицы
get_wallet_data возвращает raw balance, owner, master и код Jetton wallet. Raw value нужно форматировать через Decimals токена из проверенного контекста; десятичная запятая в интерфейсе не записана в balance. Нулевой ответ ожидаемого wallet и отсутствие развёрнутого account — разные наблюдения. Индексатор также может запаздывать, поэтому для спора сохраняют endpoint, block context и полный ответ get-method.
| Наблюдение | Вывод | Следующее действие |
|---|---|---|
| Master доверенный; derived wallet совпал; owner/master в data совпали | Маршрут идентифицирован | Форматировать raw balance и проверить свежесть state |
| Ticker совпал, но master другой | Это другой Jetton | Не переводить и не добавлять его как ожидаемый актив |
| Wallet data указывает другого owner | Проверяется чужой wallet-контракт | Повторить derivation с собственным owner |
| Wallet data указывает другой master | Wallet не принадлежит выбранному Jetton | Остановить обработку и проверить отправителя |
| Derived address правильный, account ещё не развёрнут | Баланс нельзя доказывать metadata карточки | Проверить историю сообщений и не отправлять большой тест |
- Наблюдение
- Master доверенный; derived wallet совпал; owner/master в data совпали
- Вывод
- Маршрут идентифицирован
- Следующее действие
- Форматировать raw balance и проверить свежесть state
- Наблюдение
- Ticker совпал, но master другой
- Вывод
- Это другой Jetton
- Следующее действие
- Не переводить и не добавлять его как ожидаемый актив
- Наблюдение
- Wallet data указывает другого owner
- Вывод
- Проверяется чужой wallet-контракт
- Следующее действие
- Повторить derivation с собственным owner
- Наблюдение
- Wallet data указывает другой master
- Вывод
- Wallet не принадлежит выбранному Jetton
- Следующее действие
- Остановить обработку и проверить отправителя
- Наблюдение
- Derived address правильный, account ещё не развёрнут
- Вывод
- Баланс нельзя доказывать metadata карточки
- Следующее действие
- Проверить историю сообщений и не отправлять большой тест
Входящий перевод проверяют по wallet отправителя и master
Для процессинга недостаточно прочитать поле sender из уведомления и название токена. Получив Jetton wallet отправителя, приложение должно определить его master и убедиться, что сам wallet является ожидаемым для указанного owner в рамках этого master. Такая обратная сверка мешает поддельному wallet-контракту притвориться официальным Jetton только за счёт похожего payload. После проверки контракта отдельно проверяют транзакцию: successful execution, amount, destination и отсутствие bounce.
Stop-сигналы
- источник даёт только ticker или изображение без master address;
- derived wallet не совпадает с адресом, с которого пришло уведомление;
- get_wallet_data возвращает другого owner или другой master;
- интерфейс показывает formatted amount, но не позволяет увидеть raw balance и decimals;
- сервис просит подписать неизвестное сообщение, чтобы просто показать публичные данные.
При несовпадении ничего не исправляют переводом
Сохраните owner, ожидаемый master, фактический Jetton wallet, transaction hash и ответы обоих get-method. Не отправляйте токен обратно на адрес из payload и не подписывайте approve или transfer для «активации отображения»: сначала локализуйте несовпавшее звено. Экран подписи должен соответствовать отдельному осознанному действию, а публичное чтение master и wallet data подписи не требует.
Источники
Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.
- TON Docs — Jetton interface TON Foundation · Проверено 20 августа 2026 г. в 09:25 GMT+5
- TON Docs — How to find Jetton wallet TON Foundation · Проверено 20 августа 2026 г. в 09:25 GMT+5
- TON Docs — How to get Jetton wallet data TON Foundation · Проверено 20 августа 2026 г. в 09:25 GMT+5
- TON Docs — Jettons payments processing TON Foundation · Проверено 20 августа 2026 г. в 09:25 GMT+5
