Адреса в TON: raw vs user-friendly, bounceable vs non-bounceable
Разбери raw и user-friendly адреса, флаги bounceable/test-only и когда какой формат использовать.
Адреса в TON
Адрес аккаунта в TON — это пара (workchain_id, account_id), где account_id — 256-битный хеш. Один и тот же аккаунт можно записать в raw-виде или в user-friendly (base64), с разными флагами.
Raw vs user-friendly
Raw — понятный для кода и логов формат:
User-friendly — строка base64 (часто с URL-safe алфавитом), удобная для UI и копирования:
Address.parse() принимает оба формата. Сравнение адресов делай через объект Address, а не через строки с разными флагами.
Bounceable vs non-bounceable
Флаг bounceable влияет на поведение неудачной доставки:
| Формат | Типичный префикс | Поведение при ошибке |
|---|---|---|
| Bounceable | EQ... (mainnet) | Средства могут вернуться отправителю (bounce) |
| Non-bounceable | UQ... (mainnet) | Bounce отключён — удобно для первого депозита на ещё не инициализированный кошелёк |
Test-only флаг помечает testnet-адрес (часто выглядит как kQ... / 0Q...). Не отправляй mainnet-средства на test-only адрес и наоборот.
Как это работает
- Адрес контракта обычно = хеш
StateInit(code + data) + workchain. - User-friendly добавляет checksum и флаги к raw-паре.
EQиUQмогут указывать на один аккаунт — отличаются только флагами строки.- Для депозита на новый кошелёк часто рекомендуют non-bounceable, чтобы монеты не отскочили, если контракт ещё не задеплоен.
Частые ошибки
Сравнивать строки EQ... и UQ... как разные аккаунты → это один адрес с разными флагами; сравнивай через Address.equals.
Слать bounceable-перевод на неинициализированный кошелёк → сумма может вернуться bounce-сообщением; для первого пополнения бери non-bounceable.
Перепутать testnet и mainnet по префиксу → проверяй сеть RPC и флаг test-only, не только «похожесть» строки.
Что дальше
- Аккаунты в TON: uninit, active, frozen — почему bounce важен до активации
- Внутренние и внешние сообщения — куда адрес передаётся в сообщении
- Workchains и шардинг — зачем в адресе workchain
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация