К основному содержанию
T TON Adoption
← Словарь
NODE/03 · Term

TL-B

Type Language Binary — формальный язык описания структур данных в TON. Используется для определения схем сообщений, состояния контрактов, всех cell-структур.

Синонимы: tl-b, tlb схема, type language binary

TL-B (Type Language - Binary) — это формальный язык, на котором в TON описываются все структуры данных, упакованные в cell-ы. Это аналог Protobuf или ASN.1, но специально приспособленный под cell-модель TVM. На TL-B описана вся схема блоков, транзакций, сообщений, jetton/NFT-операций и любых пользовательских контрактных интерфейсов.

Зачем нужен

В TON cell — единственный способ хранить структурированные данные на цепочке. Но cell — это просто байты и ссылки на другие cell-ы. Чтобы парсер знал, что в начале идёт int 32, потом address, потом ссылка на cell с подписями — нужна схема. TL-B даёт эту схему в декларативной форме:

transfer#0f8a7ea5 query_id:uint64 amount:Coins
                  destination:MsgAddress response_destination:MsgAddress
                  custom_payload:(Maybe ^Cell) forward_ton_amount:Coins
                  forward_payload:(Either Cell ^Cell)
                = JettonMsg;

Это TL-B-описание стандартного jetton transfer message (TEP-74). По нему любой клиент знает, как собрать или распарсить такое сообщение.

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

  • Структуры сообщений — все internal-, external-, тело сообщений конкретных контрактов.
  • Состояние контракта — что лежит в data-cell контракта.
  • Системные структуры — формат блоков, транзакций, словарей TON, аккаунт-стейта.
  • Кастомные протоколы — TEP-74 (jetton), TEP-62/64/66 (NFT), TON Connect.

Tooling

  • tlbgen — кодогенератор: TL-B → TypeScript/Go/Python структуры с готовыми функциями сериализации.
  • block.tlb — каноничный файл со схемой всей сети, лежит в репозитории ton-blockchain/ton.
  • Tact и Tolk — генерируют TL-B-описание входящих сообщений автоматически из объявлений message/struct.

Если вы интегрируете TON-контракт и автор не предоставил TL-B — это плохой знак: почти всё, что серьёзно используется в сети, имеет TL-B-описание, и без него парсить cell-ы вручную крайне неприятно.

См. также