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

seqno

Sequence number в TON-кошельке: 32-битный счётчик-nonce, который смарт-контракт инкрементирует при каждой исходящей транзакции для защиты от replay-атак.

Синонимы: sequence number, секно

seqno (sequence number) — 32-битный счётчик в data-cell каждого TON-кошелька, увеличивающийся на 1 после каждой исходящей транзакции. Подписанные сообщения включают seqno в тело; если seqno в подписанном сообщении не равен текущему в data — контракт отклоняет транзакцию через THROWIFNOT 33.

Зачем нужен

  • Защита от replay: атакующий не может «переотправить» вашу старую транзакцию — её seqno уже инкрементирован.
  • Гарантия порядка: транзакции выполняются строго по возрастанию seqno.

Как использовать в SDK

@ton/ton SDK сам читает seqno у контракта перед отправкой:

const seqno = await walletContract.getSeqno();
await walletContract.sendTransfer({ seqno, secretKey, messages: [...] });

В Wallet V5 появилась расширенная семантика: extensions могут иметь собственный seqno-namespace и подписывать независимо от основного владельца.

См. также