Разные строки могут вести к одному account

Raw-форма записывает числовой идентификатор рабочей цепочки (workchain_id), двоеточие и 256-bit идентификатор аккаунта (account_id) в hexadecimal. Для basechain типично начало 0:, для masterchain — -1:. User-friendly форма упаковывает flags, workchain_id и тот же account_id, добавляет checksum и затем применяет Base64 либо Base64url. Конвертация между представлениями не создаёт новый кошелёк и не перемещает средства: меняется способ записи адреса назначения (destination).

Три формы одного TON destination
ФормаЧто содержитПрактическая граница
Raw: 0:… или -1:…workchain_id + account_idНет checksum, bounce и testnet metadata
Bounceable friendly: обычно EQ… mainnetFlags + account + CRC16Просит wallet сформировать bounceable internal message, если destination initialized
Non-bounceable friendly: обычно UQ… mainnetТот же account с другим flag byte + CRC16Просит non-bounceable message; часто нужен для ещё не инициализированного wallet
Три формы одного TON destination
Форма
Raw: 0:… или -1:…
Что содержит
workchain_id + account_id
Практическая граница
Нет checksum, bounce и testnet metadata
Форма
Bounceable friendly: обычно EQ… mainnet
Что содержит
Flags + account + CRC16
Практическая граница
Просит wallet сформировать bounceable internal message, если destination initialized
Форма
Non-bounceable friendly: обычно UQ… mainnet
Что содержит
Тот же account с другим flag byte + CRC16
Практическая граница
Просит non-bounceable message; часто нужен для ещё не инициализированного wallet

Bounce определяет поведение сообщения при ошибке выполнения

В TON перевод — internal message к smart contract account. Bounce означает механизм возвратного сообщения при неуспешной обработке: у bounceable message оставшаяся value может вернуться отправителю за вычетом применимых fees. Non-bounceable сообщение не ожидает такого возврата. Это не кнопка refund и не гарантия полной суммы: результат зависит от состояния account, исполнения и network fees.

Особенно важен uninitialized destination. Новый wallet contract может иметь будущий address, вычисленный из StateInit, но ещё не быть deployed. Официальный wallet workflow рекомендует проверять состояние и принудительно ставить bounce=false для uninitialized account. Для initialized destination приложение может использовать flag из user-friendly представления. Отправитель не должен решать это заменой двух первых символов вручную.

Checksum ловит опечатку, network flag — неправильную среду

CRC16 в friendly address помогает обнаружить повреждённую строку, но не подтверждает личность получателя. Testnet-only flag позволяет mainnet wallet остановить несовместимый перевод. Raw address этих защит не несёт: одинаковая hex-структура не сообщает интерфейсу, для какой среды пользователь получил строку. Поэтому raw удобен для low-level tooling, но не является предпочтительным способом обмена адресами между людьми.

Stop-сигналы перед отправкой

  • Получатель прислал raw-строку, а приложение не показывает результат конвертации и network.
  • Checksum не проходит или строка короче/длиннее ожидаемой friendly form.
  • Mainnet wallet распознаёт testnet-only flag.
  • Destination uninitialized, но интерфейс собирается отправить bounceable message без предупреждения.
  • Сервис предлагает исправить адрес заменой EQ на UQ либо наоборот как обычный текст.

Формат выбирают после проверки destination state

Decision tool: результат проверки и безопасное действие
РезультатДействиеRecovery
Friendly address валиден, mainnet, destination initializedИспользовать строку, полученную от владельца; wallet применит её bounce flagПри ошибке не пересылать автоматически: проверить transaction status и bounced message
Friendly address валиден, destination uninitializedИспользовать non-bounceable workflow, поддержанный wallet, и малый тестЕсли отправка ещё pending — не дублировать; дождаться результата и проверить account state
Дан raw addressКонвертировать доверенной библиотекой в обе friendly forms и сверить underlying account_idЗапросить у получателя user-friendly address с его receiving screen
Checksum, flag, workchain или сеть не сходятсяОстановить отправкуПолучить адрес повторно по независимому каналу; не исправлять символы догадкой
Decision tool: результат проверки и безопасное действие
Результат
Friendly address валиден, mainnet, destination initialized
Действие
Использовать строку, полученную от владельца; wallet применит её bounce flag
Recovery
При ошибке не пересылать автоматически: проверить transaction status и bounced message
Результат
Friendly address валиден, destination uninitialized
Действие
Использовать non-bounceable workflow, поддержанный wallet, и малый тест
Recovery
Если отправка ещё pending — не дублировать; дождаться результата и проверить account state
Результат
Дан raw address
Действие
Конвертировать доверенной библиотекой в обе friendly forms и сверить underlying account_id
Recovery
Запросить у получателя user-friendly address с его receiving screen
Результат
Checksum, flag, workchain или сеть не сходятся
Действие
Остановить отправку
Recovery
Получить адрес повторно по независимому каналу; не исправлять символы догадкой

Успешный decoder должен показать raw form, bounceable и non-bounceable variants и test-only status, причём account_id во всех вариантах совпадает. Затем отдельно сверяют destination в интерфейсе получателя и делают небольшой тест, если это допустимо. После отправки transaction hash и состояние account проверяют до повтора: другой текст адреса не означает другого получателя, а повтор может создать второй перевод.

Частые вопросы

EQ и UQ — разные кошельки?

Нет, если после decoding совпадают workchain и account_id. Различаются flags и checksum представления.

Можно заменить EQ на UQ вручную?

Нет: flag входит в данные checksum. Используйте библиотеку или wallet, которые корректно пересобирают всю строку.

Bounceable вернёт всю сумму при любой ошибке?

Нет. Bounce зависит от message processing, account state и fees; сначала изучите transaction trace, а не отправляйте повтор.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. TON Docs — Internal address formats TON Foundation · Проверено 19 августа 2026 г. в 20:15 GMT+5
  2. TON Docs — Addresses workflow TON Foundation · Проверено 19 августа 2026 г. в 20:15 GMT+5
  3. TON Docs — Security best practices TON Foundation · Проверено 19 августа 2026 г. в 20:15 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.