Jetton-стандарт: master и wallet контракты

Поймёшь модель Jetton (TEP-74): зачем нужны master и wallet, как найти адрес кошелька токена и куда слать transfer.

Master и wallet в Jetton

Jetton (TEP-74) — токенный стандарт TON. Баланс пользователя живёт не в одном контракте, а в отдельном jetton-wallet на каждого владельца. Master (minter) хранит supply, admin, метаданные и код wallet; wallet хранит balance конкретного owner и обрабатывает transfer / burn.

text
Master  EQ...MASTER
  total_supply, admin, content, wallet_code

Wallet  EQ...WALLET_A  ← owner A, balance = 100
Wallet  EQ...WALLET_B  ← owner B, balance = 40

Перевод A→B: сообщение на wallet A, не на master.


Находим jetton-wallet владельца

typescript
// @ton/ton ^15.1.0, @ton/core ^0.59.0
import { Address, TonClient, JettonMaster } from "@ton/ton";

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

// jUSDT master — mainnet
const master = client.open(
  JettonMaster.create(
    Address.parse("EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs"),
  ),
);

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

const jettonWallet = await master.getWalletAddress(owner);
console.log(jettonWallet.toString()); // адрес wallet-контракта owner'а

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

  • JettonMaster.create(master) — обёртка над master; transfer с неё не делаешь.
  • getWalletAddress(owner) — get-метод get_wallet_address: детерминированный адрес wallet для пары (master, owner).
  • Адрес wallet можно посчитать до первого депозита — контракт появится при первом входящем internal_transfer.
  • Для UI баланса и для transfer нужен именно этот адрес, не master.

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

Шлёшь transfer на master «как ERC-20» → master не списывает баланс пользователя. Цель — jetton-wallet отправителя.

Путаешь owner-кошелёк и jetton-wallet → у одного человека разные адреса: Wallet V5 / Tonkeeper ≠ jetton-wallet токена.

Не проверяешь, что wallet принадлежит нужному master → после get_wallet_data сверь поле master с ожидаемым адресом токена.


Что дальше

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