Аккаунты в TON: uninit, active, frozen

Статусы аккаунта nonexist, uninit, active и frozen — что они значат и как влияют на переводы и вызовы контрактов.

Статусы аккаунта

У каждого адреса в TON есть статус. Он определяет, можно ли исполнять код и что будет с входящим сообщением.

Основные состояния:

СтатусСмысл
nonexistАккаунта ещё нет в состоянии шарда
uninitЕсть баланс/запись, но нет кода и данных контракта
activeЕсть код и данные — полноценный контракт/кошелёк
frozenСостояние заморожено (хранятся хеши); исполнение ограничено

Как прочитать статус

typescript
// @ton/ton ^15.1.0
import { Address, TonClient, fromNano } from "@ton/ton";

const client = new TonClient({
  endpoint: "https://toncenter.com/api/v2/jsonRPC",
});

const address = Address.parse(
  "EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N",
);

const state = await client.getContractState(address);
console.log(state.state); // "active" | "uninitialized" | "frozen" | ...
console.log(fromNano(state.balance));
console.log(state.code ? "has code" : "no code");

Кошелёк пользователя — тоже смарт-контракт. Пока StateInit не задеплоен, адрес может быть uninit даже при ненулевом балансе (после первого non-bounceable депозита).


Как это работает

  1. Новый адрес без записей → nonexist.
  2. Пришла value без деплоя кода → часто переход к uninit с балансом.
  3. Деплой StateInit (code + data) → active; дальше TVM исполняет код.
  4. frozen — особый режим (например после проблем со storage); для обычного dApp-флоу встретишь реже, но API его возвращает.

Bounceable-перевод на uninit/nonexist без успешного деплоя часто вернёт средства. Поэтому первый депозит на новый кошелёк делают non-bounceable.


Частые ошибки

Считать «адрес из seed» уже контрактом в сети → ключ есть локально, on-chain статус может быть nonexist/uninit до первой активности.

Слать bounceable на свежий кошелёк → монеты отскочат; используй non-bounceable для инициализации.

Путать uninit и «ошибка RPC» → это валидный статус; смотри getContractState, не только баланс.


Что дальше

Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация