<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Aleksei BELOKUR[off]</title><author><name>Aleksei BELOKUR[off]</name></author><id>https://teletype.in/atom/not_under_ton</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/not_under_ton?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@not_under_ton?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=not_under_ton"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/not_under_ton?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-10-07T23:53:01.030Z</updated><entry><id>not_under_ton:tlvKlVtYhFm</id><link rel="alternate" type="text/html" href="https://teletype.in/@not_under_ton/tlvKlVtYhFm?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=not_under_ton"></link><title>🎰 TON Lottery — разбор смарт-контракта лотереи на Tact</title><published>2025-12-03T20:41:08.031Z</published><updated>2025-12-03T20:43:20.252Z</updated><summary type="html">В этой статье разберём полноценный смарт-контракт лотереи, написанный на Tact, который:</summary><content type="html">
  &lt;p id=&quot;RhDJ&quot;&gt;В этой статье разберём полноценный смарт-контракт лотереи, написанный на &lt;strong&gt;Tact&lt;/strong&gt;, который:&lt;/p&gt;
  &lt;ul id=&quot;JhCS&quot;&gt;
    &lt;li id=&quot;poi9&quot;&gt;принимает ставки пользователей&lt;/li&gt;
    &lt;li id=&quot;ZmDR&quot;&gt;автоматически завершает раунд при достижении лимита&lt;/li&gt;
    &lt;li id=&quot;IgRf&quot;&gt;случайным образом выбирает победителя&lt;/li&gt;
    &lt;li id=&quot;G0yh&quot;&gt;распределяет призовой фонд&lt;/li&gt;
    &lt;li id=&quot;9O7g&quot;&gt;возвращает остатки средств&lt;/li&gt;
    &lt;li id=&quot;bTUD&quot;&gt;позволяет владельцу обновлять параметры, отменять раунд и выводить баланс&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;EWKL&quot;&gt;Контракт реализует полностью автономную логику — от покупки билетов до выплаты выигрыша и комиссии разработчика.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;8wmg&quot;&gt;📌 Основные параметры лотереи&lt;/h1&gt;
  &lt;p id=&quot;wPiX&quot;&gt;Контракт использует следующие параметры:&lt;/p&gt;
  &lt;ul id=&quot;oYUI&quot;&gt;
    &lt;li id=&quot;QlE0&quot;&gt;&lt;strong&gt;minEntryAmount&lt;/strong&gt; — минимальная ставка за один слот&lt;/li&gt;
    &lt;li id=&quot;5POO&quot;&gt;&lt;strong&gt;trigerAmount&lt;/strong&gt; — сумма для завершения раунда&lt;/li&gt;
    &lt;li id=&quot;Q0Zk&quot;&gt;&lt;strong&gt;devReward&lt;/strong&gt; — награда разработчику&lt;/li&gt;
    &lt;li id=&quot;RFav&quot;&gt;&lt;strong&gt;devWallet&lt;/strong&gt; — кошелёк разработчика&lt;/li&gt;
    &lt;li id=&quot;rYVb&quot;&gt;&lt;strong&gt;owner&lt;/strong&gt; — владелец контракта&lt;/li&gt;
    &lt;li id=&quot;TvcJ&quot;&gt;&lt;strong&gt;maxSlotCount&lt;/strong&gt; — рассчитанное количество слотов (trigerAmount / minEntryAmount)&lt;/li&gt;
    &lt;li id=&quot;AThr&quot;&gt;&lt;strong&gt;roundSlotCounter&lt;/strong&gt; — сколько слотов уже куплено&lt;/li&gt;
    &lt;li id=&quot;kRHv&quot;&gt;&lt;strong&gt;roundCounter&lt;/strong&gt; — номер текущего раунда&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;gz3M&quot;&gt;При запуске контракт вычисляет максимальное количество слотов и определяет forward fee сети TON.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;Evq3&quot;&gt;🧩 Как работает лотерея?&lt;/h1&gt;
  &lt;h3 id=&quot;AjTr&quot;&gt;1. Пользователь отправляет сообщение &lt;code&gt;&amp;quot;enter_lottery&amp;quot;&lt;/code&gt; вместе с TON&lt;/h3&gt;
  &lt;p id=&quot;aRox&quot;&gt;Контракт вызывает функцию:&lt;/p&gt;
  &lt;pre id=&quot;Tkwy&quot;&gt;processEntry(sender, value)
&lt;/pre&gt;
  &lt;p id=&quot;GbV3&quot;&gt;Она рассчитывает, сколько слотов можно купить на отправленную сумму.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;Ho69&quot;&gt;2. Покупка слотов&lt;/h3&gt;
  &lt;p id=&quot;bJRR&quot;&gt;Каждый слот стоит &lt;code&gt;minEntryAmount&lt;/code&gt;.&lt;br /&gt; Пользователь может купить сразу много слотов одной транзакцией.&lt;/p&gt;
  &lt;p id=&quot;fjPd&quot;&gt;Контракт записывает:&lt;/p&gt;
  &lt;ul id=&quot;Tc1n&quot;&gt;
    &lt;li id=&quot;bW7n&quot;&gt;количество слотов&lt;/li&gt;
    &lt;li id=&quot;WGT9&quot;&gt;адрес игрока&lt;/li&gt;
    &lt;li id=&quot;ffa2&quot;&gt;общую сумму раунда&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;KsxP&quot;&gt;3. Завершение раунда&lt;/h3&gt;
  &lt;p id=&quot;FFll&quot;&gt;Когда куплено достаточно слотов:&lt;/p&gt;
  &lt;pre id=&quot;xqgI&quot;&gt;roundSlotCounter &amp;gt;= maxSlotCount
&lt;/pre&gt;
  &lt;p id=&quot;ijdu&quot;&gt;Контракт:&lt;/p&gt;
  &lt;ol id=&quot;r9Im&quot;&gt;
    &lt;li id=&quot;Z5xd&quot;&gt;проверяет, хватает ли TON на сеть + награду разработчику&lt;/li&gt;
    &lt;li id=&quot;mq1F&quot;&gt;выбирает победителя&lt;/li&gt;
    &lt;li id=&quot;zlXa&quot;&gt;распределяет:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;ul id=&quot;xKtZ&quot;&gt;
    &lt;li id=&quot;HFnE&quot;&gt;devReward → разработчику&lt;/li&gt;
    &lt;li id=&quot;6Q2U&quot;&gt;prizePayment → победителю&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;jwnv&quot;&gt;4. Возврат остатка&lt;/h3&gt;
  &lt;p id=&quot;o1dW&quot;&gt;Если пользователь отправил больше, чем нужно — контракт делает &lt;em&gt;refund&lt;/em&gt;, удерживая только gas и forward fee:&lt;/p&gt;
  &lt;pre id=&quot;N5L6&quot;&gt;refund = valueLeft - gasConsumed() - FORWARD_FEE
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;6lr9&quot;&gt;5. После завершения раунда&lt;/h3&gt;
  &lt;p id=&quot;4Y4p&quot;&gt;Контракт:&lt;/p&gt;
  &lt;ul id=&quot;tYxJ&quot;&gt;
    &lt;li id=&quot;NC0P&quot;&gt;очищает список игроков&lt;/li&gt;
    &lt;li id=&quot;Fumj&quot;&gt;обнуляет счётчик&lt;/li&gt;
    &lt;li id=&quot;9ovv&quot;&gt;увеличивает roundCounter&lt;/li&gt;
    &lt;li id=&quot;xcuY&quot;&gt;сохраняет победителя&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ibFE&quot;&gt;Полный процесс полностью автоматизирован.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;OMqD&quot;&gt;🎲 Механика выбора победителя&lt;/h1&gt;
  &lt;p id=&quot;4lDM&quot;&gt;Контракт использует простую и честную систему:&lt;/p&gt;
  &lt;ol id=&quot;HTXW&quot;&gt;
    &lt;li id=&quot;E4vy&quot;&gt;Генерируется случайное число:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;rrU0&quot;&gt;winningSlot = random(1, roundSlotCounter + 1)
&lt;/pre&gt;
  &lt;ol id=&quot;f88E&quot;&gt;
    &lt;li id=&quot;LdcF&quot;&gt;Идёт перебор всех игроков и их «слотов»:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;ul id=&quot;AGWh&quot;&gt;
    &lt;li id=&quot;wNZo&quot;&gt;если сумма слотов ≥ winningSlot → этот игрок и есть победитель&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Ybgl&quot;&gt;Чем больше слотов покупает игрок — тем выше шанс.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;0Lrs&quot;&gt;💸 Распределение средств&lt;/h1&gt;
  &lt;h3 id=&quot;LmWh&quot;&gt;Призовой фонд:&lt;/h3&gt;
  &lt;pre id=&quot;BWQo&quot;&gt;prizePool = min(maxSlotCount * minEntryAmount, myBalance() - storageReserve)
&lt;/pre&gt;
  &lt;h3 id=&quot;4wXV&quot;&gt;Выплата:&lt;/h3&gt;
  &lt;pre id=&quot;zL5a&quot;&gt;prizeAmount = prizePool - devReward - 2 * forwardFee
&lt;/pre&gt;
  &lt;h3 id=&quot;Fzi6&quot;&gt;Итог:&lt;/h3&gt;
  &lt;ul id=&quot;JWaj&quot;&gt;
    &lt;li id=&quot;mKeP&quot;&gt;победитель получает prizeAmount&lt;/li&gt;
    &lt;li id=&quot;gzwN&quot;&gt;разработчик получает devReward&lt;/li&gt;
    &lt;li id=&quot;VZlI&quot;&gt;контракт сохраняет 0.02 TON резерв на существование&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;a9Id&quot;&gt;⛔ Админ-функции&lt;/h1&gt;
  &lt;p id=&quot;toSh&quot;&gt;Контракт поддерживает административные команды:&lt;/p&gt;
  &lt;h3 id=&quot;HCBJ&quot;&gt;🔹 Обновление параметров&lt;/h3&gt;
  &lt;p id=&quot;X0jh&quot;&gt;Получает:&lt;/p&gt;
  &lt;pre id=&quot;ZDA1&quot;&gt;UpdateParams{ minEntryAmount, trigerAmount, devReward, devWallet }
&lt;/pre&gt;
  &lt;p id=&quot;epBB&quot;&gt;Но обновление доступно только если раунд ещё не начался:&lt;/p&gt;
  &lt;pre id=&quot;EKbh&quot;&gt;require(players.isEmpty())
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;xoQD&quot;&gt;🔹 Вывод средств владельцем&lt;/h3&gt;
  &lt;pre id=&quot;9jc9&quot;&gt;receive(&amp;quot;withdraw&amp;quot;)
&lt;/pre&gt;
  &lt;p id=&quot;fMhs&quot;&gt;Выводит весь доступный баланс, кроме обязательного резерва и forwardFee.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;GW86&quot;&gt;🔹 Отмена раунда&lt;/h3&gt;
  &lt;pre id=&quot;26ix&quot;&gt;receive(&amp;quot;cancelRound&amp;quot;)
&lt;/pre&gt;
  &lt;p id=&quot;Czan&quot;&gt;Контракт:&lt;/p&gt;
  &lt;ol id=&quot;tkh2&quot;&gt;
    &lt;li id=&quot;WmNQ&quot;&gt;рассчитывает сумму возвратов&lt;/li&gt;
    &lt;li id=&quot;2VV2&quot;&gt;убеждается, что хватает TON&lt;/li&gt;
    &lt;li id=&quot;fiam&quot;&gt;возвращает деньги всем участникам&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Uvja&quot;&gt;Полностью безопасная отмена раунда.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;ZcSG&quot;&gt;🧠 Полный код контракта &lt;/h1&gt;
  &lt;blockquote id=&quot;wWVb&quot;&gt;&lt;/blockquote&gt;
  &lt;pre id=&quot;esJx&quot;&gt;import &amp;quot;@stdlib/ownable&amp;quot;;

// сообщение обновления параметров лотереи
message(0x3a8b046a) UpdateParams {
    queryId: Int as uint64;
    minEntryAmount: Int as coins;    // цена 1 слота
    trigerAmount: Int as coins;      // сумма для окончания раунда
    devReward: Int as coins;         // выплата разработчику
    devWallet: Address;              // кошелек разработчика
}

// сообщение деплоя (ничего не делает)
message(0xf23ea34) Deploy {
    queryId: Int as uint64;
}

// обязательный резерв для существования контракта
const STORAGE_RESERVE: Int = ton(&amp;quot;0.02&amp;quot;);

contract Lottery with Ownable {

    id: Int as uint32;                   // ID лотереи
    roundCounter: Int as uint32;         // номер раунда
    minEntryAmount: Int as coins;        // стоимость 1 слота
    maxSlotCount: Int as uint32;         // слотов всего: triggerAmount / minEntryAmount
    owner: Address;                      // владелец
    trigerAmount: Int as coins;          // сумма окончания раунда
    devWallet: Address;                  // кошелек разработчика
    devReward: Int as coins;             // награда разработчику
    roundWinners: map&amp;lt;Int, Address&amp;gt;;     // история победителей
    players: map&amp;lt;Address, Int&amp;gt;;          // адрес игрока → сколько слотов купил
    roundSlotCounter: Int as uint32;     // сколько слотов куплено в текущем раунде
    FORWARD_FEE: Int as coins;           // комиссия сети на отправку

    // ИНИЦИАЛИЗАЦИЯ — расчет слотов, установка параметров
    init(id, minEntryAmount, devWallet, owner, trigerAmount, devReward) {
        self.id = id;
        self.roundCounter = 0;
        self.roundSlotCounter = 0;
        self.minEntryAmount = minEntryAmount;
        self.devWallet = devWallet;
        self.owner = owner;
        self.trigerAmount = trigerAmount;
        self.devReward = devReward;

        self.maxSlotCount = trigerAmount / minEntryAmount;  // слотов в раунде
        self.FORWARD_FEE = getForwardFee(1, 288, false);    // комиссия TON
    }

    receive(deploy: Deploy) {}   // игнор события деплоя
    receive() {}                 // игнор обычных TON без текстов

    // Покупка слотов пользователем
    receive(&amp;quot;enter_lottery&amp;quot;) {
        self.processEntry(context().sender, context().value);
    }

    // Основная логика покупки слотов
    fun processEntry(sender: Address, valueLeftStart: Int) {
        let valueLeft = valueLeftStart;    // сколько TON осталось использовать
        let stopProcessing = false;

        // цикл — покупаем слоты, пока хватает TON
        while (valueLeft &amp;gt;= self.minEntryAmount &amp;amp;&amp;amp; !stopProcessing) {

            // сколько слотов осталось до конца раунда
            let slotsLeft = self.maxSlotCount - self.roundSlotCounter;

            // сколько слотов игрок может купить на свои TON
            let possibleSlots = valueLeft / self.minEntryAmount;

            // покупаем разрешенное количество
            let slotCount = min(possibleSlots, slotsLeft);

            if (slotCount &amp;gt; 0) {
                // предыдущие покупки игрока
                let prev = self.players.exists(sender) ? self.players.get(sender)!! : 0;

                // обновляем количество его слотов
                self.players.set(sender, prev + slotCount);

                // увеличиваем счетчик раунда
                self.roundSlotCounter += slotCount;

                // списываем деньги
                valueLeft -= slotCount * self.minEntryAmount;

                // если раунд заполнен — пытаемся завершить
                if (self.roundSlotCounter &amp;gt;= self.maxSlotCount) {

                    // нужно TON на devReward + 2 FORWARD_FEE
                    let requiredFee = 2 * self.FORWARD_FEE + self.devReward;

                    // хватает ли TON чтобы завершить раунд
                    if (myBalance() &amp;gt;= requiredFee) {
                        self.finishRound();
                        valueLeft -= self.devReward + 2 * self.FORWARD_FEE;
                    }
                }

            } else {
                stopProcessing = true;   // денег недостаточно → выйти
            }
        }

        // Возврат остатка пользователю
        let refund = valueLeft - gasConsumed() - self.FORWARD_FEE;
        let balanceAfter = myBalance() - refund;

        if (refund &amp;gt; 0 &amp;amp;&amp;amp; balanceAfter &amp;gt; 0) {
            self.transferTons(sender, refund, &amp;quot;Refund&amp;quot;);
        }
    }

    // Завершение раунда — выбор победителя и выплаты
    fun finishRound() {

        let winner = self.pickWinner();  // выбираем случайного игрока

        if (winner != null) {
            // сохраняем победителя в истории
            self.roundWinners.set(self.roundCounter, winner!!);

            // общий пул (не забираем storage reserve)
            let prizePool = min(
                self.maxSlotCount * self.minEntryAmount,
                myBalance() - STORAGE_RESERVE
            );

            // приз победителю
            let prizeAmount = prizePool - self.devReward - 2 * self.FORWARD_FEE;

            // комиссия разработчику
            self.transferTons(self.devWallet, self.devReward, &amp;quot;DevReward&amp;quot;);

            // отправляем приз
            self.transferTons(winner!!, prizeAmount, &amp;quot;Prize&amp;quot;);
        }

        // очистка раунда
        self.players = emptyMap();
        self.roundSlotCounter = 0;
        self.roundCounter += 1;
    }

    // Универсальная отправка TON
    fun transferTons(to: Address, value: Int, body: String) {
        send(SendParameters{
            to: to,
            value: value,
            mode: SendPayGasSeparately,   // газ платит контракт
            bounce: false,
            body: body.asComment()        // строка-комментарий для wallet
        });
    }

    // Выбор случайного победителя
    fun pickWinner(): Address? {
        let winningSlot = random(1, self.roundSlotCounter + 1);  // случайный слот

        let current = 0;

        // перебор игроков
        foreach (addr, count in self.players) {
            current += count;
            if (winningSlot &amp;lt;= current)
                return addr; // этот игрок попал в диапазон
        }
        return null;
    }

    // Обновление параметров лотереи
    receive(msg: UpdateParams){
        self.requireOwner();
        require(self.players.isEmpty(), &amp;quot;Round already started&amp;quot;);

        self.minEntryAmount = msg.minEntryAmount;
        self.trigerAmount = msg.trigerAmount;
        self.devReward = msg.devReward;
        self.devWallet = msg.devWallet;
    }

    // Вывод TON владельцем
    receive(&amp;quot;withdraw&amp;quot;) {
        self.requireOwner();

        // доступный остаток (без хранения и комиссии)
        let available = myBalance() - STORAGE_RESERVE - self.FORWARD_FEE;

        require(available &amp;gt; 0, &amp;quot;Nothing to withdraw&amp;quot;);

        self.transferTons(self.owner, available, &amp;quot;Withdrawal&amp;quot;);
    }

    // Отмена раунда → возврат всем участникам
    receive(&amp;quot;cancelRound&amp;quot;) {
        self.requireOwner();

        let totalRefund = 0;
        let playersCount = 0;

        // суммируем возвраты
        foreach (addr, count in self.players) {
            totalRefund += count * self.minEntryAmount;
            playersCount += 1;
        }

        // комиссия отправки каждому игроку
        let totalFee = getForwardFee(1, 288, false) * playersCount;

        let needed = totalRefund + totalFee + gasConsumed();

        require(myBalance() &amp;gt;= needed, &amp;quot;Not enough balance&amp;quot;);

        // возвращаем деньги
        foreach (addr, count in self.players) {
            self.transferTons(addr, count * self.minEntryAmount, &amp;quot;CancelRefund&amp;quot;);
        }

        // сброс
        self.players = emptyMap();
        self.roundSlotCounter = 0;
    }
}
&lt;/pre&gt;
  &lt;p id=&quot;0jlF&quot;&gt;&lt;a href=&quot;https://studio.rubeton.app/&quot; target=&quot;_blank&quot;&gt;https://studio.rubeton.app/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>not_under_ton:vayKJ6uPRgh</id><link rel="alternate" type="text/html" href="https://teletype.in/@not_under_ton/vayKJ6uPRgh?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=not_under_ton"></link><title>Учимся Tact: создаём и разбираем контракт продажи джеттонов в TON</title><published>2025-12-03T07:08:51.523Z</published><updated>2025-12-05T22:51:36.114Z</updated><summary type="html">Контракт продаёт джеттоны (Rubeton) за TON.
 Ты отправляешь TON → контракт отправляет тебе джеттоны по фиксированному курсу.
 Владелец контракта может забирать накопившиеся TON командой &quot;withdraw&quot;.</summary><content type="html">
  &lt;h1 id=&quot;IctZ&quot;&gt;📘 Общая идея контракта&lt;/h1&gt;
  &lt;p id=&quot;TI2S&quot;&gt;Контракт &lt;strong&gt;продаёт джеттоны &lt;/strong&gt; за TON.&lt;br /&gt; Ты отправляешь TON → контракт отправляет тебе джеттоны по фиксированному курсу.&lt;br /&gt; Владелец контракта может забирать накопившиеся TON командой &lt;code&gt;&amp;quot;withdraw&amp;quot;&lt;/code&gt;.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;ImnT&quot;&gt;📌 Разбор кода по частям&lt;/h1&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;PHKa&quot;&gt;1. Импорты&lt;/h1&gt;
  &lt;pre id=&quot;joQg&quot;&gt;import &amp;quot;@stdlib/deploy&amp;quot;;
import &amp;quot;@stdlib/ownable&amp;quot;;
&lt;/pre&gt;
  &lt;ul id=&quot;yR7i&quot;&gt;
    &lt;li id=&quot;R4TC&quot;&gt;&lt;strong&gt;Deployable&lt;/strong&gt; — позволяет удобно деплоить контракт.&lt;/li&gt;
    &lt;li id=&quot;7QoJ&quot;&gt;&lt;strong&gt;Ownable&lt;/strong&gt; — добавляет механику владельца (owner) + проверку &lt;code&gt;requireOwner()&lt;/code&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;Ktke&quot;&gt;2. Объявление контракта&lt;/h1&gt;
  &lt;pre id=&quot;aKyp&quot;&gt;contract RubetonSeller with Deployable, Ownable {
    owner: Address;
    jetton_wallet: Address;
&lt;/pre&gt;
  &lt;p id=&quot;xTPW&quot;&gt;Контракт хранит:&lt;/p&gt;
  &lt;ul id=&quot;TA4z&quot;&gt;
    &lt;li id=&quot;7b0M&quot;&gt;&lt;strong&gt;owner&lt;/strong&gt; — владелец, который может делать &lt;code&gt;withdraw&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;FT04&quot;&gt;&lt;strong&gt;jetton_wallet&lt;/strong&gt; — адрес кошелька джеттона, на который нужно отправлять запрос «выпустить/отправить» джеттоны покупателю.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;Icd8&quot;&gt;3. Константы&lt;/h1&gt;
  &lt;pre id=&quot;YufQ&quot;&gt;const TokenCourse: Int = 2;
const MinTonForStorage: Int = ton(&amp;quot;0.01&amp;quot;);
&lt;/pre&gt;
  &lt;h3 id=&quot;mypr&quot;&gt;TokenCourse = 2&lt;/h3&gt;
  &lt;p id=&quot;oYCh&quot;&gt;Это курс:&lt;br /&gt; &lt;strong&gt;1 TON → 2 Rubeton (джеттона)&lt;/strong&gt;.&lt;/p&gt;
  &lt;h3 id=&quot;J6iN&quot;&gt;MinTonForStorage = 0.01 TON&lt;/h3&gt;
  &lt;p id=&quot;NbnQ&quot;&gt;Это минимальный остаток TON, который всегда должен лежать на контракте.&lt;br /&gt; Он нужен, чтобы контракт не &amp;quot;умер&amp;quot; от нехватки газа.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;Ulin&quot;&gt;4. init — код инициализации&lt;/h1&gt;
  &lt;pre id=&quot;erXK&quot;&gt;init(jetton_code: Cell, jetton_master: Address) {
    self.owner = address(&amp;quot;UQCDnkR1NOwZUzARCLDAY5Z6YuD1k_LVs5iUVUBOiuUJKtOI&amp;quot;);
&lt;/pre&gt;
  &lt;p id=&quot;ldKw&quot;&gt;Здесь вручную прописывается &lt;strong&gt;owner&lt;/strong&gt;, владелец контракта.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;oy5g&quot;&gt;🧩 Создание Jetton-кошелька контракта&lt;/h2&gt;
  &lt;p id=&quot;XGy1&quot;&gt;Контракт сам создаёт свой Jetton Wallet.&lt;/p&gt;
  &lt;pre id=&quot;Axph&quot;&gt;let jetton_data: Cell = beginCell()
    .storeCoins(0)
    .storeAddress(myAddress())
    .storeAddress(jetton_master)
    .storeRef(jetton_code)
    .endCell();
&lt;/pre&gt;
  &lt;p id=&quot;Qyhi&quot;&gt;Собирается «данные» для кошелька:&lt;/p&gt;
  &lt;ul id=&quot;88Jg&quot;&gt;
    &lt;li id=&quot;xyp8&quot;&gt;баланс — 0&lt;/li&gt;
    &lt;li id=&quot;xRq3&quot;&gt;владелец — сам контракт&lt;/li&gt;
    &lt;li id=&quot;iFuQ&quot;&gt;мастер-адрес джеттона&lt;/li&gt;
    &lt;li id=&quot;Atjz&quot;&gt;код кошелька&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;pre id=&quot;8qio&quot;&gt;let jetton_wallet: Address = contractAddressExt(0, jetton_code, jetton_data);
self.jetton_wallet = jetton_wallet;
&lt;/pre&gt;
  &lt;ul id=&quot;ke0M&quot;&gt;
    &lt;li id=&quot;5l7W&quot;&gt;высчитывается адрес Jetton Wallet контракта&lt;/li&gt;
    &lt;li id=&quot;BQh2&quot;&gt;сохраняется в переменной &lt;code&gt;jetton_wallet&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;aRKU&quot;&gt;Теперь контракт знает, &lt;strong&gt;куда ему отправлять команду на начисление джеттонов&lt;/strong&gt;.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;pUQD&quot;&gt;5. Метод receive(&amp;quot;withdraw&amp;quot;) — вывод TON владельцем&lt;/h1&gt;
  &lt;p id=&quot;NZgj&quot;&gt;Этот метод вызывается, если отправить в контракт текстовое сообщение &lt;code&gt;&amp;quot;withdraw&amp;quot;&lt;/code&gt;.&lt;/p&gt;
  &lt;pre id=&quot;Ax7e&quot;&gt;receive(&amp;quot;withdraw&amp;quot;) {
    let need_to_withdraw = myBalance() - context().value - self.MinTonForStorage;
&lt;/pre&gt;
  &lt;ul id=&quot;tO3x&quot;&gt;
    &lt;li id=&quot;BzTy&quot;&gt;&lt;code&gt;myBalance()&lt;/code&gt; — сколько TON на контракте&lt;/li&gt;
    &lt;li id=&quot;y4ij&quot;&gt;&lt;code&gt;context().value&lt;/code&gt; — сколько TON пришло с этим сообщением&lt;/li&gt;
    &lt;li id=&quot;FIGD&quot;&gt;вычитаем минимальный остаток&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;95mp&quot;&gt;Получаем: &lt;strong&gt;сколько TON можно вывести, не затронув 0.01 TON для хранения&lt;/strong&gt;.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;cqcw&quot;&gt;Проверки&lt;/h3&gt;
  &lt;pre id=&quot;iLZa&quot;&gt;self.requireOwner();
require(myBalance() &amp;gt;= need_to_withdraw, &amp;quot;balance muss be bigger than withdraw amount&amp;quot;);
&lt;/pre&gt;
  &lt;ul id=&quot;nIth&quot;&gt;
    &lt;li id=&quot;RIEj&quot;&gt;выводить может только владелец&lt;/li&gt;
    &lt;li id=&quot;Rfjq&quot;&gt;проверяем, что баланс вообще позволяет вывести&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;KW1G&quot;&gt;Отправка TON владельцу&lt;/h3&gt;
  &lt;pre id=&quot;FnYC&quot;&gt;send(SendParameters{
    to: sender(),
    value: need_to_withdraw,
    mode: SendIgnoreErrors + SendRemainingValue,
    bounce: true
});
&lt;/pre&gt;
  &lt;ul id=&quot;LvNi&quot;&gt;
    &lt;li id=&quot;opd4&quot;&gt;средства отправляются тому, кто вызвал &lt;code&gt;&amp;quot;withdraw&amp;quot;&lt;/code&gt; (владельцу)&lt;/li&gt;
    &lt;li id=&quot;fYZC&quot;&gt;&lt;code&gt;SendRemainingValue&lt;/code&gt; отдаёт всё указанное количество&lt;/li&gt;
    &lt;li id=&quot;Uf9B&quot;&gt;&lt;code&gt;SendIgnoreErrors&lt;/code&gt; игнорирует ошибки доставки&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;RfQ2&quot;&gt;6. receive() — обработка обычного платежа TON (покупка джеттонов)&lt;/h1&gt;
  &lt;p id=&quot;O959&quot;&gt;Этот метод вызывается, когда кто-то просто отправляет TON на контракт &lt;strong&gt;без текста&lt;/strong&gt;.&lt;/p&gt;
  &lt;pre id=&quot;clJb&quot;&gt;let need_to_send: Int = context().value * self.TokenCourse;
&lt;/pre&gt;
  &lt;p id=&quot;LfEC&quot;&gt;Считается, сколько джеттонов нужно отправить покупателю:&lt;/p&gt;
  &lt;p id=&quot;brGu&quot;&gt;&lt;strong&gt;TON × курс = количество джеттонов&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;WxCb&quot;&gt;Например:&lt;br /&gt; Отправили 5 TON → курс 2 → получишь 10 Rubeton.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;wXJB&quot;&gt;🧩 Формируем тело сообщения для Jetton Wallet&lt;/h2&gt;
  &lt;pre id=&quot;URR2&quot;&gt;let send_body: Cell = beginCell()
    .storeUint(0xf8a7ea5, 32)     // jetton transfer opcode
    .storeUint(0, 64)             // query_id
    .storeCoins(need_to_send)     // amount
    .storeAddress(sender())       // recipient
    .storeAddress(myAddress())    // response destination
    .storeUint(0, 1)
    .storeCoins(1)                // forward TON amount
    .storeUint(0, 1)
    .endCell();
&lt;/pre&gt;
  &lt;p id=&quot;ASEN&quot;&gt;Это стандартное тело сообщения &lt;strong&gt;“transfer”&lt;/strong&gt; для джеттонов.&lt;/p&gt;
  &lt;p id=&quot;LCLT&quot;&gt;Смысл:&lt;/p&gt;
  &lt;ul id=&quot;7cqy&quot;&gt;
    &lt;li id=&quot;JFZh&quot;&gt;opcode: &lt;code&gt;0xf8a7ea5&lt;/code&gt; — команда «отправить джеттоны»&lt;/li&gt;
    &lt;li id=&quot;P7iX&quot;&gt;отправляем &lt;code&gt;need_to_send&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;TDQS&quot;&gt;отправляем их отправителю TON&lt;/li&gt;
    &lt;li id=&quot;XIRO&quot;&gt;пересылаем 1 нанотон вперёд чтобы Jetton Wallet смог выслать внутреннее сообщение&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;1qDu&quot;&gt;Отправляем сообщение в Jetton Wallet&lt;/h2&gt;
  &lt;pre id=&quot;1JAh&quot;&gt;send(SendParameters{
    to: self.jetton_wallet,
    value: 0,
    mode: SendIgnoreErrors + SendRemainingValue,
    bounce: true,
    body: send_body
});
&lt;/pre&gt;
  &lt;p id=&quot;Bx6r&quot;&gt;Контракт отправляет команду Jetton Wallet:&lt;/p&gt;
  &lt;p id=&quot;Clcm&quot;&gt;&lt;strong&gt;«Переведи N джеттонов пользователю»&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;h2 id=&quot;Bgd0&quot;&gt;💻 &lt;strong&gt;Полный код с комментариями&lt;/strong&gt;&lt;/h2&gt;
  &lt;pre id=&quot;MyVn&quot;&gt;import &amp;quot;@stdlib/deploy&amp;quot;;
import &amp;quot;@stdlib/ownable&amp;quot;;

// Контракт-продавец джеттонов Rubeton
contract RubetonSeller with Deployable, Ownable {

    owner: Address;          // владелец контракта
    jetton_wallet: Address;  // адрес кошелька контракта для отправки джеттонов

    // Курс продажи: 1 TON = 2 RUBETON
    const TokenCourse: Int = 2;

    // Минимальный TON, который должен оставаться на контракте
    const MinTonForStorage: Int = ton(&amp;quot;0.01&amp;quot;);

    // Инициализация контракта
    init(jetton_code: Cell, jetton_master: Address) {

        // Адрес владельца жёстко прописывается
        self.owner = address(&amp;quot;UQCDnkR...JKtOI&amp;quot;);

        // Формируем данные Jetton Wallet для вычисления адреса
        let jetton_data = beginCell()
            .storeCoins(0)               // баланс кошелька = 0
            .storeAddress(myAddress())   // владелец — сам контракт
            .storeAddress(jetton_master) // мастер-адрес Jetton
            .storeRef(jetton_code)       // код кошелька
            .endCell();

        // Вычисляем адрес Jetton Wallet
        let jetton_wallet = contractAddressExt(0, jetton_code, jetton_data);

        // Сохраняем адрес Jetton Wallet
        self.jetton_wallet = jetton_wallet;
    }

    // ВЫВОД ТОN владельцем
    receive(&amp;quot;withdraw&amp;quot;) {

        // Сколько TON можно вывести, оставив минимум для работы
        let need_to_withdraw =
            myBalance() - context().value - self.MinTonForStorage;

        self.requireOwner(); // выводить может только владелец

        require(
            myBalance() &amp;gt;= need_to_withdraw,
            &amp;quot;not enough balance&amp;quot;
        );

        // Отправляем TON владельцу
        send(SendParameters{
            to: sender(),
            value: need_to_withdraw,
            mode: SendIgnoreErrors + SendRemainingValue,
            bounce: true
        });
    }

    // ПОКУПКА ДЖЕТТОНОВ: обычный перевод TON без текста
    receive() {

        // Сколько джеттонов нужно отправить покупателю
        let need_to_send = context().value * self.TokenCourse;

        // Формируем тело сообщения Jetton Transfer
        let send_body = beginCell()
            .storeUint(0xf8a7ea5, 32)   // opcode: transfer
            .storeUint(0, 64)           // query_id
            .storeCoins(need_to_send)   // amount — сколько джеттонов отправить
            .storeAddress(sender())     // адрес покупателя
            .storeAddress(myAddress())  // адрес контракта
            .storeUint(0, 1)
            .storeCoins(1)              // forward fee
            .storeUint(0, 1)
            .endCell();

        // Команда Jetton Wallet: отправить пользователю джеттоны
        send(SendParameters{
            to: self.jetton_wallet,
            value: 0,
            mode: SendIgnoreErrors + SendRemainingValue,
            bounce: true,
            body: send_body
        });
    }
}
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;AsrI&quot;&gt;🎯 &lt;strong&gt;Итоговое описание&lt;/strong&gt;&lt;/h1&gt;
  &lt;p id=&quot;dmlW&quot;&gt;Контракт RubetonSeller реализует простую и надёжную систему продажи джеттонов:&lt;/p&gt;
  &lt;ul id=&quot;RtAZ&quot;&gt;
    &lt;li id=&quot;MIna&quot;&gt;Пользователь отправляет TON → контракт автоматически пересчитывает количество джеттонов.&lt;/li&gt;
    &lt;li id=&quot;XWd7&quot;&gt;Контракт формирует Jetton Transfer и передаёт его в Jetton Wallet.&lt;/li&gt;
    &lt;li id=&quot;IIbK&quot;&gt;Jetton Wallet отправляет пользователю нужное количество джеттонов.&lt;/li&gt;
    &lt;li id=&quot;fzaZ&quot;&gt;Владелец может вывести накопившиеся TON, но контракт оставляет минимальный резерв для хранения (0.01 TON).&lt;/li&gt;
    &lt;li id=&quot;mokZ&quot;&gt;Курс задаётся константой &lt;code&gt;TokenCourse&lt;/code&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;kPIn&quot;&gt;🎯 РЕЗЮМЕ ПРОСТЫМИ СЛОВАМИ&lt;/p&gt;
  &lt;ol id=&quot;vpIq&quot;&gt;
    &lt;li id=&quot;RONM&quot;&gt;Контракт принимает TON и продаёт за них джеттоны.&lt;/li&gt;
    &lt;li id=&quot;ChOi&quot;&gt;Курс фиксированный: &lt;strong&gt;1 TON = 2 джеттона&lt;/strong&gt;.&lt;/li&gt;
    &lt;li id=&quot;CmGK&quot;&gt;Покупатель просто отправляет TON на контракт → получает джеттоны.&lt;/li&gt;
    &lt;li id=&quot;RNk5&quot;&gt;Контракт вычисляет адрес своего Jetton Wallet при инициализации.&lt;/li&gt;
    &lt;li id=&quot;beRP&quot;&gt;Владелец может снять TON командой &lt;code&gt;&amp;quot;withdraw&amp;quot;&lt;/code&gt;, но всегда останется 0.01 TON для хранения.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://studio.rubeton.app/&quot; target=&quot;_blank&quot;&gt;https://studio.rubeton.app/&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;

</content></entry><entry><id>not_under_ton:je_xrlGG6zm</id><link rel="alternate" type="text/html" href="https://teletype.in/@not_under_ton/je_xrlGG6zm?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=not_under_ton"></link><title>Институциональные варианты использования TON: создание финансовой инфраструктуры следующего поколения</title><published>2025-11-25T16:38:11.716Z</published><updated>2025-11-25T16:43:36.205Z</updated><summary type="html">Институты уже не только изучают блокчейн в теории — они начали внедрять эту технологию в производство. От международных денежных переводов до токенизированных казначейских обязательств — реальные финансовые решения переходят на блокчейн, чтобы использовать уникальное сочетание масштабируемости, производительности и прозрачности.</summary><content type="html">
  &lt;h1 id=&quot;WOHi&quot;&gt;&lt;strong&gt;📘 &lt;/strong&gt;&lt;/h1&gt;
  &lt;h2 id=&quot;hUAn&quot;&gt;&lt;strong&gt;Введение&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;q53U&quot;&gt;Институты уже не только изучают блокчейн в теории — они начали внедрять эту технологию в производство. От международных денежных переводов до токенизированных казначейских обязательств — реальные финансовые решения переходят на блокчейн, чтобы использовать уникальное сочетание масштабируемости, производительности и прозрачности.&lt;/p&gt;
  &lt;p id=&quot;mfRC&quot;&gt;Блокчейн TON стал предпочтительным решением уровня 1 для предприятий и финтех-компаний, которым нужна масштабируемая, экономичная и удобная инфраструктура. Предлагая практически мгновенную финализацию транзакций, минимальные комиссии и встроенную интеграцию с более чем 1 млрд пользователей Telegram, TON обладает потенциалом объединить традиционные финансы и Web3 в невиданных масштабах.&lt;/p&gt;
  &lt;p id=&quot;xBZH&quot;&gt;Эта статья описывает, как институциональные игроки уже используют TON для платежей, выпуска стейблкоинов, токенизации активов и встроенных финансов.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;EuUT&quot;&gt;&lt;strong&gt;Эмиссия и платежи стейблкоинов: USDt на TON&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;VkFb&quot;&gt;Запуск USDt на TON в апреле 2024 года стал важной вехой. К декабрю 2024 года объем авторизованной эмиссии превысил &lt;strong&gt;1,43 млрд USD&lt;/strong&gt;, что вывело TON в топ-5 блокчейнов по активности USDt.&lt;/p&gt;
  &lt;h3 id=&quot;ZwMT&quot;&gt;&lt;strong&gt;Организации используют USDt на TON для:&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;c8zn&quot;&gt;
    &lt;li id=&quot;WAiF&quot;&gt;&lt;strong&gt;Трансграничных переводов&lt;/strong&gt; — отправка долларов за секунды по минимальной цене.&lt;/li&gt;
    &lt;li id=&quot;qB7X&quot;&gt;&lt;strong&gt;Торговых и казначейских операций&lt;/strong&gt; — мгновенные финальные расчёты по всему миру.&lt;/li&gt;
    &lt;li id=&quot;p40I&quot;&gt;&lt;strong&gt;Интеграции в розничных сервисах&lt;/strong&gt; — через Telegram-кошельки (Wallet in Telegram, Tonkeeper, MyTonWallet).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;T167&quot;&gt;USDt на TON — это полностью цифровая долларовая платёжная система, доступная сотням миллионов пользователей Telegram. Она снижает задержки, контрагентские риски и операционные затраты.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;TChj&quot;&gt;&lt;strong&gt;Встроенные финансы и токенизация внутри Telegram&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;mxoi&quot;&gt;TON делает возможными финансовые продукты там, где уже находятся пользователи: прямо внутри Telegram.&lt;/p&gt;
  &lt;p id=&quot;yYfz&quot;&gt;Компании могут выпускать, распространять и управлять цифровыми активами напрямую в мессенджере — без регистрации на сторонних сайтах и установки новых приложений.&lt;/p&gt;
  &lt;p id=&quot;QrTF&quot;&gt;Ключевые инструменты:&lt;/p&gt;
  &lt;ul id=&quot;0xfx&quot;&gt;
    &lt;li id=&quot;f7mn&quot;&gt;&lt;strong&gt;TON Wallet&lt;/strong&gt; — отправка средств по username.&lt;/li&gt;
    &lt;li id=&quot;PDWX&quot;&gt;&lt;strong&gt;Storm Trade&lt;/strong&gt; — торговля криптой и традиционными активами.&lt;/li&gt;
    &lt;li id=&quot;rLkv&quot;&gt;&lt;strong&gt;Notcoin&lt;/strong&gt; — пример SocialFi на миллионы пользователей.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;5vCw&quot;&gt;&lt;strong&gt;Открываемые возможности:&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;eOTr&quot;&gt;
    &lt;li id=&quot;3o9I&quot;&gt;токенизированные системы лояльности;&lt;/li&gt;
    &lt;li id=&quot;Javs&quot;&gt;встроенные подписки и платежи;&lt;/li&gt;
    &lt;li id=&quot;zwLT&quot;&gt;микроэкономики и монетизация создателей.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;GRrd&quot;&gt;Для брендов Web2 это шанс привести аудиторию в Web3 без сложностей крипто-онбординга.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;C1Mn&quot;&gt;&lt;strong&gt;DeFi и институциональные казначейские решения&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;hiRP&quot;&gt;DeFi-экосистема TON быстро взрослеет: от розничных экспериментов — к управлению ликвидностью институционального уровня.&lt;/p&gt;
  &lt;p id=&quot;Fyzz&quot;&gt;Платформы &lt;strong&gt;STON.fi&lt;/strong&gt; и &lt;strong&gt;DeDust&lt;/strong&gt; предоставляют:&lt;/p&gt;
  &lt;ul id=&quot;1E8K&quot;&gt;
    &lt;li id=&quot;1slv&quot;&gt;обмены,&lt;/li&gt;
    &lt;li id=&quot;ri9j&quot;&gt;пулы ликвидности,&lt;/li&gt;
    &lt;li id=&quot;mnxp&quot;&gt;доходность по стейблкоинам,&lt;/li&gt;
    &lt;li id=&quot;w7Ae&quot;&gt;прозрачные on-chain расчёты.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;SzMw&quot;&gt;&lt;strong&gt;Предприятия могут использовать TON DeFi для:&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;BtCa&quot;&gt;
    &lt;li id=&quot;JSFP&quot;&gt;размещения резервов в пулах ликвидности;&lt;/li&gt;
    &lt;li id=&quot;zGHB&quot;&gt;получения доходности на простаивающий капитал;&lt;/li&gt;
    &lt;li id=&quot;Qi9C&quot;&gt;поддержки ранней ликвидности проектов TON.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;oY1z&quot;&gt;Интерфейсы Wallet in Telegram и Tonkeeper упрощают доступ, а базовые протоколы обеспечивают функциональность казначейского уровня.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;EzSM&quot;&gt;&lt;strong&gt;Доходные стейблкоины: USDe и tsUSDe от Ethena&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;DNI8&quot;&gt;Интеграция &lt;strong&gt;Ethena USDe/tsUSDe&lt;/strong&gt; в апреле 2025 года добавила в TON мощный институциональный инструмент.&lt;/p&gt;
  &lt;p id=&quot;0vaR&quot;&gt;Это синтетические долларовые активы, генерирующие доходность без рыночной волатильности — благодаря дельта-нейтральной стратегии Ethena.&lt;/p&gt;
  &lt;p id=&quot;oyhD&quot;&gt;&lt;strong&gt;tsUSDe&lt;/strong&gt; работает как токенизированный фонд денежного рынка:&lt;/p&gt;
  &lt;ul id=&quot;Q4zH&quot;&gt;
    &lt;li id=&quot;QW5S&quot;&gt;стабильная цена,&lt;/li&gt;
    &lt;li id=&quot;6GhP&quot;&gt;постоянный on-chain доход.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;Eogc&quot;&gt;&lt;strong&gt;Идеально подходит для:&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;8Bbf&quot;&gt;
    &lt;li id=&quot;zQUG&quot;&gt;управления казначейством;&lt;/li&gt;
    &lt;li id=&quot;0HPO&quot;&gt;платежей с доходностью;&lt;/li&gt;
    &lt;li id=&quot;Jyem&quot;&gt;низкорисковых DeFi-портфелей.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;1uFL&quot;&gt;Появление Ethena усиливает позиционирование TON как полноценной финансовой экосистемы.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;bMWh&quot;&gt;&lt;strong&gt;Институциональная готовность: соответствие, опека и масштаб&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;wtYA&quot;&gt;TON обеспечивает ключевые элементы, необходимые институционалам:&lt;/p&gt;
  &lt;ul id=&quot;J8Ut&quot;&gt;
    &lt;li id=&quot;0pcW&quot;&gt;прозрачные и проверяемые реестры;&lt;/li&gt;
    &lt;li id=&quot;VR8D&quot;&gt;интеграции с регулируемыми кастодианами;&lt;/li&gt;
    &lt;li id=&quot;89DL&quot;&gt;встроенные механизмы KYC и контроля доступа;&lt;/li&gt;
    &lt;li id=&quot;ZqYx&quot;&gt;совместимость с Ethereum-активами.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;MReT&quot;&gt;В сочетании с финализацией &amp;lt;1 секунды и минимальными комиссиями TON становится оптимальным выбором для регулируемых финтех-компаний, платёжных сервисов и управляющих активами.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;OGqr&quot;&gt;&lt;strong&gt;Заключение&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;n9Ly&quot;&gt;Институциональная фаза внедрения блокчейна уже началась — и TON находится в её центре.&lt;br /&gt;От стейблкоинов и токенизированных активов до встроенных финансов и доходных продуктов — предприятия уже используют TON для создания финансовых решений нового поколения.&lt;/p&gt;
  &lt;p id=&quot;pInD&quot;&gt;TON сочетает производительность уровня институционалов и доступность для массового рынка — более миллиарда пользователей в одном сообщении.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;S7O4&quot;&gt;&lt;strong&gt;📘 Institutional Adoption of TON: Stablecoins, Tokenization &amp;amp; Embedded Finance&lt;/strong&gt;&lt;/h1&gt;
  &lt;p id=&quot;dRWo&quot;&gt;(Английская часть — точный, красиво оформленный эквивалент русской)&lt;/p&gt;
  &lt;h2 id=&quot;rQD2&quot;&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;c7pm&quot;&gt;Institutions are no longer exploring blockchain only in theory—they have begun deploying it in production. From global remittances to tokenized treasuries, real-world financial use cases are moving on-chain to leverage blockchain scalability, performance, and transparency.&lt;/p&gt;
  &lt;p id=&quot;CaLc&quot;&gt;TON Blockchain has emerged as a preferred Layer 1 for enterprises and fintechs seeking scalable, cost-efficient, and user-friendly infrastructure. With near-instant finality, negligible fees, and native access to 1bn+ Telegram users, TON has the potential to bridge traditional finance and Web3 at unprecedented scale.&lt;/p&gt;
  &lt;p id=&quot;kKp7&quot;&gt;This article highlights how institutional players are already using TON across payments, stablecoin issuance, asset tokenization, and embedded finance.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;Lpe7&quot;&gt;&lt;strong&gt;Stablecoin Issuance and Payments: USDt on TON&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;gR8h&quot;&gt;The launch of USDt on TON in April 2024 marked a major milestone. By December 2024, authorised issuance surpassed &lt;strong&gt;$1.43 billion&lt;/strong&gt;, placing TON among the top five chains for USDt activity.&lt;/p&gt;
  &lt;h3 id=&quot;bi0p&quot;&gt;&lt;strong&gt;Institutions now use USDt on TON for:&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;VQBa&quot;&gt;
    &lt;li id=&quot;wytY&quot;&gt;&lt;strong&gt;Cross-border remittances&lt;/strong&gt; — dollar transfers in seconds at minimal cost.&lt;/li&gt;
    &lt;li id=&quot;54oi&quot;&gt;&lt;strong&gt;Merchant &amp;amp; treasury operations&lt;/strong&gt; — instant, final global settlement.&lt;/li&gt;
    &lt;li id=&quot;glSF&quot;&gt;&lt;strong&gt;Retail integration&lt;/strong&gt; — through Telegram-native wallets (Wallet in Telegram, Tonkeeper, MyTonWallet).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;C9ay&quot;&gt;USDt on TON acts as a fully digital dollar rail for enterprises, reducing latency, counterparty risk, and operational overhead.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;QToF&quot;&gt;&lt;strong&gt;Embedded Finance and Tokenization Inside Telegram&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;lTq0&quot;&gt;TON enables financial products to exist directly inside Telegram—where users already are.&lt;/p&gt;
  &lt;p id=&quot;mbDw&quot;&gt;Businesses can issue, distribute, and manage digital assets natively within the messenger, eliminating external onboarding friction.&lt;/p&gt;
  &lt;p id=&quot;gfC5&quot;&gt;Key components include:&lt;/p&gt;
  &lt;ul id=&quot;1zWO&quot;&gt;
    &lt;li id=&quot;4ZtO&quot;&gt;&lt;strong&gt;TON Wallet&lt;/strong&gt; — transfers using only a Telegram username.&lt;/li&gt;
    &lt;li id=&quot;bFvv&quot;&gt;&lt;strong&gt;Storm Trade&lt;/strong&gt; — trading crypto and traditional assets.&lt;/li&gt;
    &lt;li id=&quot;yfMO&quot;&gt;&lt;strong&gt;Notcoin&lt;/strong&gt; — a SocialFi phenomenon with gaming, rewards, and community.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;8KcF&quot;&gt;&lt;strong&gt;This model enables:&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;PVzx&quot;&gt;
    &lt;li id=&quot;e66L&quot;&gt;tokenized loyalty and tipping;&lt;/li&gt;
    &lt;li id=&quot;m1Fh&quot;&gt;in-app subscriptions and commerce;&lt;/li&gt;
    &lt;li id=&quot;w2Xs&quot;&gt;token-based micro-economies and creator monetization.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;FDZh&quot;&gt;For Web2 brands, it offers a smooth on-ramp into Web3 via a familiar interface.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;R6hw&quot;&gt;&lt;strong&gt;DeFi and Institutional Treasury Solutions&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;aRau&quot;&gt;TON’s DeFi landscape is rapidly maturing. Platforms like &lt;strong&gt;STON.fi&lt;/strong&gt; and &lt;strong&gt;DeDust&lt;/strong&gt; now deliver:&lt;/p&gt;
  &lt;ul id=&quot;bdGl&quot;&gt;
    &lt;li id=&quot;XiBZ&quot;&gt;swaps,&lt;/li&gt;
    &lt;li id=&quot;N4TT&quot;&gt;liquidity pools,&lt;/li&gt;
    &lt;li id=&quot;2IBE&quot;&gt;stablecoin yield products,&lt;/li&gt;
    &lt;li id=&quot;s7MV&quot;&gt;transparent on-chain settlement.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;LOAZ&quot;&gt;&lt;strong&gt;Enterprises can use TON DeFi to:&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;dJ0u&quot;&gt;
    &lt;li id=&quot;hSYd&quot;&gt;deploy corporate reserves;&lt;/li&gt;
    &lt;li id=&quot;a5WZ&quot;&gt;earn short-term on-chain yield;&lt;/li&gt;
    &lt;li id=&quot;WaU0&quot;&gt;support early-stage TON-native liquidity.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;wrGm&quot;&gt;User-friendly wallets simplify access while protocols provide treasury-grade capabilities.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;82R0&quot;&gt;&lt;strong&gt;Yield-Bearing Stablecoins: Ethena&amp;#x27;s USDe and tsUSDe&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;ZbOa&quot;&gt;The April 2025 integration of &lt;strong&gt;Ethena USDe and tsUSDe&lt;/strong&gt; brought yield-bearing synthetic dollars to TON.&lt;/p&gt;
  &lt;p id=&quot;ABXs&quot;&gt;Ethena achieves stable yield through a delta-neutral hedging strategy that offsets crypto price movements.&lt;/p&gt;
  &lt;p id=&quot;3ZJR&quot;&gt;&lt;strong&gt;tsUSDe&lt;/strong&gt; behaves like a tokenized money market fund:&lt;/p&gt;
  &lt;ul id=&quot;ggPJ&quot;&gt;
    &lt;li id=&quot;DTsX&quot;&gt;stable value,&lt;/li&gt;
    &lt;li id=&quot;YnCQ&quot;&gt;steady on-chain yield.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;y1Ln&quot;&gt;&lt;strong&gt;Use cases include:&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;6x3R&quot;&gt;
    &lt;li id=&quot;ALkg&quot;&gt;on-chain treasury management;&lt;/li&gt;
    &lt;li id=&quot;Y6bV&quot;&gt;yield-bearing payment rails;&lt;/li&gt;
    &lt;li id=&quot;bUc5&quot;&gt;low-risk institutional DeFi exposure.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;H6WB&quot;&gt;Ethena’s arrival highlights TON’s evolution into a full-stack financial ecosystem.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;VTvd&quot;&gt;&lt;strong&gt;Institutional Readiness: Compliance, Custody, Scale&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;8SYz&quot;&gt;TON provides critical infrastructure components required for institutional adoption:&lt;/p&gt;
  &lt;ul id=&quot;Mj21&quot;&gt;
    &lt;li id=&quot;8HKY&quot;&gt;transparent, auditable ledgers;&lt;/li&gt;
    &lt;li id=&quot;UGAh&quot;&gt;integrations with regulated custodians;&lt;/li&gt;
    &lt;li id=&quot;R93p&quot;&gt;native KYC and access control options;&lt;/li&gt;
    &lt;li id=&quot;7eTS&quot;&gt;cross-chain compatibility with Ethereum-based systems.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;TYVL&quot;&gt;Combined with sub-second finality and ultra-low fees, these features make TON ideal for regulated fintechs, payment platforms, and asset managers entering Web3.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;mLJm&quot;&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;0mTl&quot;&gt;The institutional phase of blockchain adoption has arrived—and TON stands at its center.&lt;/p&gt;
  &lt;p id=&quot;3YF5&quot;&gt;From stablecoins and tokenized assets to embedded finance and yield-bearing instruments, enterprises are already using TON to build next-generation financial applications.&lt;/p&gt;
  &lt;p id=&quot;BqAt&quot;&gt;For builders seeking real users—not just wallets—TON offers a rare mix of institutional performance and mass-market reach. With over a billion users only one message away, the next wave of institutional innovation is already forming on TON.&lt;/p&gt;
  &lt;p id=&quot;s7eG&quot;&gt;&lt;a href=&quot;https://studio.rubeton.app/&quot; target=&quot;_blank&quot;&gt;https://studio.rubeton.app/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>not_under_ton:6-RhqiSmErT</id><link rel="alternate" type="text/html" href="https://teletype.in/@not_under_ton/6-RhqiSmErT?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=not_under_ton"></link><title>How to Test a Jetton After Launch on TON Mainnet</title><published>2025-11-14T11:08:25.157Z</published><updated>2025-11-14T11:11:51.153Z</updated><summary type="html">When you launch a Jetton on TON mainnet, the contract is no longer just code in a repo — it’s a live asset that real people can trade, store, and lose money with. Jettons are the fungible token standard on TON (similar to ERC-20 on Ethereum), defined by the TEP-74 standard and implemented through a master contract plus per-user wallet contracts.</summary><content type="html">
  &lt;p id=&quot;ZQhw&quot;&gt;When you launch a Jetton on TON mainnet, the contract is no longer just code in a repo — it’s a live asset that real people can trade, store, and lose money with. Jettons are the fungible token standard on TON (similar to ERC-20 on Ethereum), defined by the TEP-74 standard and implemented through a master contract plus per-user wallet contracts.&lt;/p&gt;
  &lt;p id=&quot;rETU&quot;&gt;Even if you did your homework on testnet, &lt;strong&gt;post-launch testing on mainnet&lt;/strong&gt; is critical. In this article we’ll walk through how to test a newly launched Jetton in production: what to check, how to structure the work with your testers, and how to turn testing into a growth loop rather than pure cost.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;PtzU&quot;&gt;1. What are we actually testing on mainnet?&lt;/h3&gt;
  &lt;p id=&quot;irYs&quot;&gt;On mainnet, your goal is not just “does the contract work” but:&lt;/p&gt;
  &lt;ul id=&quot;AGXP&quot;&gt;
    &lt;li id=&quot;Uod6&quot;&gt;&lt;strong&gt;Correctness&lt;/strong&gt; – transfers, balances, supply, allowances (if any) behave exactly as designed.&lt;/li&gt;
    &lt;li id=&quot;iLDz&quot;&gt;&lt;strong&gt;Integrations&lt;/strong&gt; – wallets, explorers, and DEXes all display and handle your Jetton correctly.&lt;/li&gt;
    &lt;li id=&quot;ZgoC&quot;&gt;&lt;strong&gt;Economics&lt;/strong&gt; – fees are sane, liquidity behaves as expected, users don’t get rekt by UX traps.&lt;/li&gt;
    &lt;li id=&quot;nNgJ&quot;&gt;&lt;strong&gt;Safety&lt;/strong&gt; – no obvious permission issues, minting rules, or admin powers that can be abused.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;GwwW&quot;&gt;Because TON is a high-throughput L1 with low fees and deep Telegram integration, users tend to move fast and touch your token from many interfaces: mobile wallets, Telegram mini-apps, DEXes and bots.&lt;/p&gt;
  &lt;p id=&quot;nYQL&quot;&gt;That’s why your mainnet test plan must go beyond “unit tests + one swap on a DEX”.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;bTC4&quot;&gt;2. Prepare your testing environment&lt;/h3&gt;
  &lt;p id=&quot;Srqv&quot;&gt;Before you and your QA team hit mainnet:&lt;/p&gt;
  &lt;ol id=&quot;cp2B&quot;&gt;
    &lt;li id=&quot;95e3&quot;&gt;&lt;strong&gt;Use small, sacrificial balances&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;fZJ1&quot;&gt;
      &lt;li id=&quot;ZCxs&quot;&gt;Fund a few wallets with small amounts of TON and your Jetton.&lt;/li&gt;
      &lt;li id=&quot;n8B9&quot;&gt;Assume every TON you send into testing is potentially gone forever.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;K6Fi&quot;&gt;&lt;strong&gt;Pick a set of wallets and explorers&lt;/strong&gt;&lt;br /&gt;At minimum, test with:&lt;/li&gt;
    &lt;ul id=&quot;h0yd&quot;&gt;
      &lt;li id=&quot;t5KM&quot;&gt;2–3 popular wallets (e.g., Tonkeeper, Telegram’s TON wallet / TON Space, other ecosystem wallets).&lt;/li&gt;
      &lt;li id=&quot;0V1u&quot;&gt;1–2 block explorers that support Jettons.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;1pGr&quot;&gt;&lt;strong&gt;Prepare tracking &amp;amp; communication&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;mz9S&quot;&gt;
      &lt;li id=&quot;vrb9&quot;&gt;GitHub Issues, Notion, or a Telegram group with pinned formats.&lt;/li&gt;
      &lt;li id=&quot;OYFz&quot;&gt;A simple bug/feedback template (who, what, how to reproduce, tx link, screenshot).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;uHW5&quot;&gt;3. Core test area #1: Transfers &amp;amp; balances&lt;/h3&gt;
  &lt;p id=&quot;DGwP&quot;&gt;This is the “heartbeat” of your Jetton. If transfers or balances are off, nothing else matters.&lt;/p&gt;
  &lt;p id=&quot;68Yo&quot;&gt;&lt;strong&gt;Scenarios to test:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;qSkZ&quot;&gt;
    &lt;li id=&quot;zuDX&quot;&gt;&lt;strong&gt;Simple transfer&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;XDXf&quot;&gt;
      &lt;li id=&quot;WTEG&quot;&gt;Send a small amount of Jetton from Wallet A to Wallet B.&lt;/li&gt;
      &lt;li id=&quot;XsTQ&quot;&gt;Verify:&lt;/li&gt;
      &lt;ul id=&quot;2zyK&quot;&gt;
        &lt;li id=&quot;bPlL&quot;&gt;balances in both wallets,&lt;/li&gt;
        &lt;li id=&quot;mpD5&quot;&gt;balances in the explorer (by checking user jetton-wallet contract),&lt;/li&gt;
        &lt;li id=&quot;lfIc&quot;&gt;any “excess TON” behavior is as expected (no weird extra refunds).&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;G4z3&quot;&gt;&lt;strong&gt;First-time receiver&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;81Ml&quot;&gt;
      &lt;li id=&quot;LkMS&quot;&gt;Send Jetton to an address that hasn’t interacted with the Jetton before.&lt;/li&gt;
      &lt;li id=&quot;WR3E&quot;&gt;Check that the jetton-wallet contract is deployed correctly and the balance shows up.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;TH19&quot;&gt;&lt;strong&gt;Too little / too much&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;0LvU&quot;&gt;
      &lt;li id=&quot;2K53&quot;&gt;Try sending &lt;strong&gt;more Jetton than you own&lt;/strong&gt; → ensure transaction is rejected or fails clearly.&lt;/li&gt;
      &lt;li id=&quot;GO50&quot;&gt;Try sending &lt;strong&gt;tiny fractions&lt;/strong&gt; according to your decimals (e.g., 0.000001) and see how wallets display it.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;uymD&quot;&gt;&lt;strong&gt;Multiple sequential transfers&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;HY2I&quot;&gt;
      &lt;li id=&quot;F1iz&quot;&gt;Do several transfers in a row to see if balances and explorers keep up and no state desync appears.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;QA50&quot;&gt;4. Core test area #2: Wallet &amp;amp; explorer display&lt;/h3&gt;
  &lt;p id=&quot;PvxF&quot;&gt;TON’s Jetton standard defines how to retrieve metadata like name, symbol, decimals, and total supply from the master contract.&lt;/p&gt;
  &lt;p id=&quot;InuW&quot;&gt;You want to confirm that ecosystem tools interpret this correctly.&lt;/p&gt;
  &lt;p id=&quot;wQLP&quot;&gt;Check in each wallet + explorer:&lt;/p&gt;
  &lt;ol id=&quot;YSse&quot;&gt;
    &lt;li id=&quot;ZgZV&quot;&gt;&lt;strong&gt;Name and symbol&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;1Kaw&quot;&gt;
      &lt;li id=&quot;VnWp&quot;&gt;No broken characters, no random truncation, no collision with other tokens.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;nH6d&quot;&gt;&lt;strong&gt;Decimals &amp;amp; formatting&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;E1Ko&quot;&gt;
      &lt;li id=&quot;gG1A&quot;&gt;Amounts look natural to humans.&lt;/li&gt;
      &lt;li id=&quot;vYwO&quot;&gt;1 Jetton is displayed as “1”, not “0.000000000001” or “1000000000000”.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;2lh1&quot;&gt;&lt;strong&gt;Icon &amp;amp; metadata&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;IA5M&quot;&gt;
      &lt;li id=&quot;SqpX&quot;&gt;If your Jetton includes an icon / metadata URI that wallets use, confirm it loads and caches correctly.&lt;/li&gt;
      &lt;li id=&quot;iTHP&quot;&gt;Check light/dark themes if relevant.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;gmJG&quot;&gt;&lt;strong&gt;Network separation&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;ysR9&quot;&gt;
      &lt;li id=&quot;lnmN&quot;&gt;Wallet clearly labels the token as &lt;strong&gt;mainnet&lt;/strong&gt;, not testnet or some custom network.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;BbBJ&quot;&gt;If any wallet shows your Jetton incorrectly, capture:&lt;/p&gt;
  &lt;ul id=&quot;QN5d&quot;&gt;
    &lt;li id=&quot;OMtt&quot;&gt;wallet version,&lt;/li&gt;
    &lt;li id=&quot;Uifv&quot;&gt;screenshots,&lt;/li&gt;
    &lt;li id=&quot;4vme&quot;&gt;address of the master contract,&lt;/li&gt;
    &lt;li id=&quot;tcWM&quot;&gt;and open communication with the wallet team if needed.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;p23D&quot;&gt;5. Core test area #3: DEX interaction &amp;amp; liquidity&lt;/h3&gt;
  &lt;p id=&quot;wgf7&quot;&gt;Most Jettons live or die on DEX liquidity. On TON, DEXes like STON.fi and others use AMM pools and natively support Jettons.&lt;/p&gt;
  &lt;p id=&quot;dcfX&quot;&gt;If you created a pool for your Jetton:&lt;/p&gt;
  &lt;h4 id=&quot;hDGn&quot;&gt;5.1 Swaps&lt;/h4&gt;
  &lt;p id=&quot;Yf3J&quot;&gt;Test with very small amounts first:&lt;/p&gt;
  &lt;ul id=&quot;nwND&quot;&gt;
    &lt;li id=&quot;ggUT&quot;&gt;Swap &lt;strong&gt;TON → Jetton&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;o8Tn&quot;&gt;
      &lt;li id=&quot;dyb1&quot;&gt;Compare expected amount in UI vs actual received.&lt;/li&gt;
      &lt;li id=&quot;IrFz&quot;&gt;Check slippage, price impact, and fees.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;44Ua&quot;&gt;Swap &lt;strong&gt;Jetton → TON&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;2mP8&quot;&gt;
      &lt;li id=&quot;J520&quot;&gt;Again compare UI vs on-chain result.&lt;/li&gt;
      &lt;li id=&quot;1SfJ&quot;&gt;Ensure the transaction doesn’t unexpectedly fail due to low liquidity or tight slippage.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Mcn2&quot;&gt;Repeat for different trade sizes to see how the curve reacts and how the UI explains it.&lt;/p&gt;
  &lt;h4 id=&quot;gk0e&quot;&gt;5.2 Liquidity provision (LP)&lt;/h4&gt;
  &lt;ul id=&quot;z5SS&quot;&gt;
    &lt;li id=&quot;VUOh&quot;&gt;&lt;strong&gt;Add liquidity&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;kdQ8&quot;&gt;
      &lt;li id=&quot;kdNO&quot;&gt;Provide minimum viable liquidity to the pool (Jetton + TON or Jetton + stablecoin).&lt;/li&gt;
      &lt;li id=&quot;Ehr9&quot;&gt;Verify LP tokens are minted correctly and balances are displayed in the DEX and in the wallet.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;Gbpf&quot;&gt;&lt;strong&gt;Remove partial liquidity&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;QdSw&quot;&gt;
      &lt;li id=&quot;dthA&quot;&gt;Remove e.g. 25–50% of the position.&lt;/li&gt;
      &lt;li id=&quot;Y8Pm&quot;&gt;Check if the returned amounts match expectations within a small tolerance.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;wwZf&quot;&gt;&lt;strong&gt;Remove all liquidity&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;UqYv&quot;&gt;
      &lt;li id=&quot;Pmga&quot;&gt;Confirm that withdrawing everything returns LP into your underlying assets, fees included.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;vuyU&quot;&gt;If any DEX integration looks broken (wrong decimals, missing token icon, or pool not discoverable), that’s both a UX problem and a trust signal issue.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;Kn3a&quot;&gt;6. Core test area #4: Fees and gas behavior&lt;/h3&gt;
  &lt;p id=&quot;ozAT&quot;&gt;Toncoin is used for transaction fees and for deploying contracts, including Jetton wallet contracts per user.&lt;/p&gt;
  &lt;p id=&quot;1dER&quot;&gt;You want your Jetton to feel “cheap but predictable”.&lt;/p&gt;
  &lt;p id=&quot;J2uq&quot;&gt;Test:&lt;/p&gt;
  &lt;ul id=&quot;kfQZ&quot;&gt;
    &lt;li id=&quot;mIiS&quot;&gt;&lt;strong&gt;Baseline fee per action&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;wlsY&quot;&gt;
      &lt;li id=&quot;0VAz&quot;&gt;Transfer Jetton between two active wallets.&lt;/li&gt;
      &lt;li id=&quot;usWa&quot;&gt;Note how much TON is spent for a typical transaction.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;VXul&quot;&gt;&lt;strong&gt;First interaction fee&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;g9VS&quot;&gt;
      &lt;li id=&quot;69sb&quot;&gt;Send Jetton to an address that hasn’t used this Jetton before.&lt;/li&gt;
      &lt;li id=&quot;GaN8&quot;&gt;See how much additional TON is consumed for creating that wallet-contract.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;UgXV&quot;&gt;&lt;strong&gt;Low-TON edge cases&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;XaJB&quot;&gt;
      &lt;li id=&quot;bwm6&quot;&gt;Try making a transfer when your address has &lt;em&gt;barely enough&lt;/em&gt; TON for the fee.&lt;/li&gt;
      &lt;li id=&quot;Vnuj&quot;&gt;Try when it has &lt;strong&gt;not enough&lt;/strong&gt; TON.&lt;/li&gt;
      &lt;li id=&quot;YyRL&quot;&gt;Observe error messages in UI and behavior on-chain.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;AIxn&quot;&gt;&lt;strong&gt;Excess TON refunds&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;OGBu&quot;&gt;
      &lt;li id=&quot;LVbS&quot;&gt;In some flows, “excess” TON is sent back to the sender or a specified address after fees.&lt;/li&gt;
      &lt;li id=&quot;t4kc&quot;&gt;Check that refund logic matches your expectations and doesn’t confuse users.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;X07X&quot;&gt;7. Core test area #5: Edge cases, UX, and safety&lt;/h3&gt;
  &lt;p id=&quot;Pg6S&quot;&gt;Here you’re testing the whole &lt;strong&gt;user experience&lt;/strong&gt;, not just the smart contracts.&lt;/p&gt;
  &lt;ol id=&quot;98W4&quot;&gt;
    &lt;li id=&quot;sV4e&quot;&gt;&lt;strong&gt;Error messages&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;DCSe&quot;&gt;
      &lt;li id=&quot;wvn3&quot;&gt;Not enough TON for gas.&lt;/li&gt;
      &lt;li id=&quot;XxvD&quot;&gt;Not enough Jetton balance.&lt;/li&gt;
      &lt;li id=&quot;4xYC&quot;&gt;Wrong address format.&lt;br /&gt;Are the errors understandable to a non-developer?&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;asO5&quot;&gt;&lt;strong&gt;Token confusion&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;qsMN&quot;&gt;
      &lt;li id=&quot;PZqQ&quot;&gt;Are there other Jettons with a similar name/symbol that can confuse users?&lt;/li&gt;
      &lt;li id=&quot;J3jk&quot;&gt;Does your branding make your Jetton easy to identify?&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;9PMK&quot;&gt;&lt;strong&gt;Admin powers &amp;amp; permissions&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;WrSj&quot;&gt;
      &lt;li id=&quot;j2jq&quot;&gt;Who can mint or burn? Is that visible somewhere for users?&lt;/li&gt;
      &lt;li id=&quot;JL7I&quot;&gt;Are there functions that can freeze balances or seize funds?&lt;/li&gt;
      &lt;li id=&quot;PbE6&quot;&gt;Is there a plan for renouncing or handing over those powers, if needed?&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;F63Y&quot;&gt;&lt;strong&gt;Upgrade / migration plan&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;AfDY&quot;&gt;
      &lt;li id=&quot;Iod9&quot;&gt;If a critical bug is found, how will you migrate users to a fixed Jetton?&lt;/li&gt;
      &lt;li id=&quot;6qQX&quot;&gt;Are you transparent about that in docs or announcements?&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;7k25&quot;&gt;8. Organizing a tester squad&lt;/h3&gt;
  &lt;p id=&quot;B5Z3&quot;&gt;If you have a community or internal QA team, structure their work:&lt;/p&gt;
  &lt;ul id=&quot;ZQ09&quot;&gt;
    &lt;li id=&quot;WVFa&quot;&gt;Create a &lt;strong&gt;“Testing campaign” issue&lt;/strong&gt; with:&lt;/li&gt;
    &lt;ul id=&quot;afO1&quot;&gt;
      &lt;li id=&quot;s99Z&quot;&gt;clear checklist (transfers, wallets, DEX, fees, UX),&lt;/li&gt;
      &lt;li id=&quot;gnoj&quot;&gt;instructions on how to report,&lt;/li&gt;
      &lt;li id=&quot;sJfT&quot;&gt;links to the Jetton contract and DEX pools.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;l9MC&quot;&gt;Use a &lt;strong&gt;bug report template&lt;/strong&gt;:&lt;/li&gt;
    &lt;ul id=&quot;QXoB&quot;&gt;
      &lt;li id=&quot;8Xv9&quot;&gt;environment (wallet, platform, network),&lt;/li&gt;
      &lt;li id=&quot;EXXG&quot;&gt;steps to reproduce,&lt;/li&gt;
      &lt;li id=&quot;szUy&quot;&gt;expected vs actual behavior,&lt;/li&gt;
      &lt;li id=&quot;S8xz&quot;&gt;tx link + screenshots.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;KdAO&quot;&gt;This keeps feedback structured and makes it easier to spot patterns.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;2I2Q&quot;&gt;9. Incentivizing testing (without turning it into a farm fest)&lt;/h3&gt;
  &lt;p id=&quot;BGiI&quot;&gt;Testing on mainnet is risky and costs real fees, so it’s reasonable to &lt;strong&gt;reward testers&lt;/strong&gt; from a dedicated allocation of your Jetton:&lt;/p&gt;
  &lt;ul id=&quot;48p7&quot;&gt;
    &lt;li id=&quot;Y9oB&quot;&gt;a small pool for &lt;strong&gt;test tasks&lt;/strong&gt; (checklists, multi-wallet scenarios);&lt;/li&gt;
    &lt;li id=&quot;ITJ8&quot;&gt;a separate pool for &lt;strong&gt;bug bounties&lt;/strong&gt;, especially for critical or security-related issues.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ymHW&quot;&gt;Some guidelines:&lt;/p&gt;
  &lt;ul id=&quot;u5Jk&quot;&gt;
    &lt;li id=&quot;NUm1&quot;&gt;Reward &lt;strong&gt;quality, not just clicks&lt;/strong&gt; – require real tx links and proof.&lt;/li&gt;
    &lt;li id=&quot;8Cor&quot;&gt;Keep the rules public and simple.&lt;/li&gt;
    &lt;li id=&quot;RJZh&quot;&gt;Never promise price or “guaranteed profit”: this is not financial advice and markets are wild.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;hkpB&quot;&gt;Your testing program should feel like a &lt;strong&gt;collaboration&lt;/strong&gt;, not a pump-and-dump scheme.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;xRmV&quot;&gt;10. Conclusion&lt;/h3&gt;
  &lt;p id=&quot;lZRK&quot;&gt;A Jetton that’s already live on TON mainnet is a production-level financial asset. The TEP-74 standard gives you a solid technical base, but &lt;strong&gt;only real-world testing&lt;/strong&gt; across wallets, explorers, DEXes, and user flows will show whether your token is truly ready for users.&lt;/p&gt;
  &lt;p id=&quot;ybEN&quot;&gt;Be systematic:&lt;/p&gt;
  &lt;ul id=&quot;KI82&quot;&gt;
    &lt;li id=&quot;r4SN&quot;&gt;test transfers, balances, fees, and DEX behavior;&lt;/li&gt;
    &lt;li id=&quot;6fPL&quot;&gt;verify integrations;&lt;/li&gt;
    &lt;li id=&quot;QJh3&quot;&gt;treat UX and safety as first-class citizens;&lt;/li&gt;
    &lt;li id=&quot;jqkM&quot;&gt;organize your testers and reward them fairly.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Lzxu&quot;&gt;Do that, and your Jetton stops being “just another token” and becomes a reliable building block in the TON ecosystem.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;5eUx&quot;&gt;🇷🇺&lt;/h2&gt;
  &lt;p id=&quot;jSjH&quot;&gt;&lt;strong&gt;Заголовок:&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Как тестировать Jetton после запуска в основной сети TON (mainnet)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;JfB3&quot;&gt;Когда вы запускаете Jetton в основной сети TON, это уже не просто код в репозитории — это живой актив, с которым реальные люди хранят и двигают деньги. Jetton — это стандарт взаимозаменяемых токенов в TON (аналог ERC-20 в Ethereum), описанный в стандарте TEP-74 и реализованный через пару контрактов: master-контракт и отдельные wallet-контракты для пользователей.&lt;/p&gt;
  &lt;p id=&quot;2PEl&quot;&gt;Даже если вы хорошо потестили всё в testnet, &lt;strong&gt;пост-релизное тестирование в mainnet&lt;/strong&gt; — обязательный этап. В этой статье разберём, как тестировать только что запущенный Jetton в бою: что проверять, как работать с тестерами и как сделать так, чтобы тесты были не просто расходом, а вкладом в рост проекта.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;Hk55&quot;&gt;1. Что именно мы проверяем в mainnet?&lt;/h3&gt;
  &lt;p id=&quot;zdHk&quot;&gt;В основной сети цель уже не просто «контракт не падает», а:&lt;/p&gt;
  &lt;ul id=&quot;M5MR&quot;&gt;
    &lt;li id=&quot;1IUc&quot;&gt;&lt;strong&gt;Корректность&lt;/strong&gt; — переводы, балансы, эмиссия/сжигание, разрешения (если есть) работают по задумке.&lt;/li&gt;
    &lt;li id=&quot;KUo4&quot;&gt;&lt;strong&gt;Интеграции&lt;/strong&gt; — кошельки, блок-обозреватели и DEX-ы правильно отображают и обрабатывают ваш Jetton.&lt;/li&gt;
    &lt;li id=&quot;TMVK&quot;&gt;&lt;strong&gt;Экономика&lt;/strong&gt; — комиссии адекватные, ликвидность ведёт себя ожидаемо, UX не подставляет юзеров.&lt;/li&gt;
    &lt;li id=&quot;xJsn&quot;&gt;&lt;strong&gt;Безопасность&lt;/strong&gt; — нет очевидных проблем с правами, минтом, админскими доступами.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;AeeW&quot;&gt;TON — это высоконагруженный L1 с низкими комиссиями и глубокой интеграцией в Telegram, поэтому пользователи взаимодействуют с вашим токеном из разных интерфейсов: мобильные кошельки, мини-приложения, DEX-ы, боты.&lt;/p&gt;
  &lt;p id=&quot;lIyK&quot;&gt;Поэтому план тестирования в mainnet должен быть шире, чем «юнит-тесты + один свап на DEX».&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;Yvoo&quot;&gt;2. Подготовка среды для тестирования&lt;/h3&gt;
  &lt;p id=&quot;ro6K&quot;&gt;Перед тем как вы и команда QA пойдёте в mainnet:&lt;/p&gt;
  &lt;ol id=&quot;vQNy&quot;&gt;
    &lt;li id=&quot;s8lw&quot;&gt;&lt;strong&gt;Небольшие боевые балансы&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;lzzN&quot;&gt;
      &lt;li id=&quot;wME3&quot;&gt;Заведите несколько кошельков с небольшими суммами TON и вашего Jetton.&lt;/li&gt;
      &lt;li id=&quot;hejA&quot;&gt;Считайте эти TON «сожжёнными на тесты» — так психологически проще.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;YhfW&quot;&gt;&lt;strong&gt;Набор кошельков и обозревателей&lt;/strong&gt;&lt;br /&gt;Минимум стоит протестировать:&lt;/li&gt;
    &lt;ul id=&quot;ER0P&quot;&gt;
      &lt;li id=&quot;7yVI&quot;&gt;2–3 популярных кошелька (Tonkeeper, встроенный TON-кошелёк/TON Space в Telegram, другие кошельки экосистемы).&lt;/li&gt;
      &lt;li id=&quot;yztZ&quot;&gt;1–2 блок-обозревателя, которые поддерживают Jetton.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;DghC&quot;&gt;&lt;strong&gt;Трекинг и коммуникация&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;GT3N&quot;&gt;
      &lt;li id=&quot;kcop&quot;&gt;GitHub Issues, Notion или чат в Telegram с закреплёнными форматами.&lt;/li&gt;
      &lt;li id=&quot;fZMx&quot;&gt;Шаблон отчёта/багрепорта (кто, что делал, как воспроизвести, ссылка на транзакцию, скрины).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;cyfn&quot;&gt;3. Ключевое направление #1: переводы и балансы&lt;/h3&gt;
  &lt;p id=&quot;jHSh&quot;&gt;Это «сердцебиение» вашего Jetton. Если тут что-то сломано, всё остальное уже не важно.&lt;/p&gt;
  &lt;p id=&quot;IyqK&quot;&gt;&lt;strong&gt;Сценарии для проверки:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;tCif&quot;&gt;
    &lt;li id=&quot;C2ew&quot;&gt;&lt;strong&gt;Обычный перевод&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;Xj2J&quot;&gt;
      &lt;li id=&quot;Jx0L&quot;&gt;Отправить небольшое количество Jetton с кошелька A на кошелёк B.&lt;/li&gt;
      &lt;li id=&quot;t1Jn&quot;&gt;Проверить:&lt;/li&gt;
      &lt;ul id=&quot;k0RB&quot;&gt;
        &lt;li id=&quot;oObX&quot;&gt;балансы в обоих кошельках,&lt;/li&gt;
        &lt;li id=&quot;Js1D&quot;&gt;балансы в блок-обозревателе (адреса jetton-wallet контрактов),&lt;/li&gt;
        &lt;li id=&quot;qDxy&quot;&gt;поведение с возвратом «excess TON» (чтобы не было неожиданных возвратов/лишних транзакций).&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;iJk4&quot;&gt;&lt;strong&gt;Первый получатель&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;lnj6&quot;&gt;
      &lt;li id=&quot;NmGX&quot;&gt;Отправить Jetton на адрес, который раньше с этим Jetton не работал.&lt;/li&gt;
      &lt;li id=&quot;BhmI&quot;&gt;Убедиться, что jetton-wallet контракт развернулся, а баланс появился.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;IiMk&quot;&gt;&lt;strong&gt;Слишком мало / слишком много&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;85rq&quot;&gt;
      &lt;li id=&quot;ZnQC&quot;&gt;Попробовать отправить &lt;strong&gt;больше токенов, чем есть на балансе&lt;/strong&gt; → транзакция должна предсказуемо падать.&lt;/li&gt;
      &lt;li id=&quot;lz6F&quot;&gt;Попробовать отправить &lt;strong&gt;очень маленькую долю&lt;/strong&gt; токена (по вашим decimals) и посмотреть, как это отображается в кошельках.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;OFfh&quot;&gt;&lt;strong&gt;Несколько переводов подряд&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;najF&quot;&gt;
      &lt;li id=&quot;M33v&quot;&gt;Сделать серию переводов и проверить, что состояния и отображение нигде не «заедают».&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;OSvD&quot;&gt;4. Ключевое направление #2: отображение в кошельках и обозревателях&lt;/h3&gt;
  &lt;p id=&quot;5T5D&quot;&gt;Стандарт Jetton описывает, как из master-контракта получать метаданные токена: имя, символ, decimals, total supply и т.д.&lt;/p&gt;
  &lt;p id=&quot;4tL2&quot;&gt;Нужно убедиться, что экосистема это читает корректно.&lt;/p&gt;
  &lt;p id=&quot;M7q4&quot;&gt;В каждом кошельке и обозревателе проверьте:&lt;/p&gt;
  &lt;ol id=&quot;fflh&quot;&gt;
    &lt;li id=&quot;efHH&quot;&gt;&lt;strong&gt;Имя и символ&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;1L6d&quot;&gt;
      &lt;li id=&quot;9gYO&quot;&gt;Нет кривой кодировки, странной обрезки, схожести с чужими токенами.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;Bitt&quot;&gt;&lt;strong&gt;Decimals и форматирование&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;4Lrj&quot;&gt;
      &lt;li id=&quot;NcY9&quot;&gt;Числа выглядят по-человечески.&lt;/li&gt;
      &lt;li id=&quot;anBE&quot;&gt;1 токен отображается как «1», а не «0.000000000001» или «1000000000000».&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;W60y&quot;&gt;&lt;strong&gt;Иконка и метаданные&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;dTxD&quot;&gt;
      &lt;li id=&quot;uRZc&quot;&gt;Если вы используете иконку/URI, который подхватывают кошельки — убедитесь, что всё грузится и кэшируется.&lt;/li&gt;
      &lt;li id=&quot;2vW3&quot;&gt;При возможности — проверьте и светлую, и тёмную тему.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;EKT2&quot;&gt;&lt;strong&gt;Сеть&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;v88H&quot;&gt;
      &lt;li id=&quot;MDHZ&quot;&gt;Кошелёк явно показывает, что это &lt;strong&gt;mainnet&lt;/strong&gt;, а не testnet или «кастомная сеть».&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;0SlU&quot;&gt;Если какой-то кошелёк отображает ваш Jetton криво — фиксируйте:&lt;/p&gt;
  &lt;ul id=&quot;Q8kq&quot;&gt;
    &lt;li id=&quot;yozH&quot;&gt;версию приложения,&lt;/li&gt;
    &lt;li id=&quot;oJ3E&quot;&gt;скриншоты,&lt;/li&gt;
    &lt;li id=&quot;fMoG&quot;&gt;адрес master-контракта,&lt;/li&gt;
    &lt;li id=&quot;8oCE&quot;&gt;и связывайтесь с командой этого кошелька.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;WwvF&quot;&gt;5. Ключевое направление #3: DEX и ликвидность&lt;/h3&gt;
  &lt;p id=&quot;mIUc&quot;&gt;Для большинства Jetton всё крутится вокруг ликвидности на DEX. В TON есть DEX-ы (например, STON.fi и др.), которые используют AMM-пулы и поддерживают Jetton по стандарту.&lt;/p&gt;
  &lt;p id=&quot;ymuk&quot;&gt;Если вы уже создали пул:&lt;/p&gt;
  &lt;h4 id=&quot;CUle&quot;&gt;5.1 Свапы&lt;/h4&gt;
  &lt;p id=&quot;pw7H&quot;&gt;Начните с очень маленьких сумм:&lt;/p&gt;
  &lt;ul id=&quot;v7eN&quot;&gt;
    &lt;li id=&quot;gGCa&quot;&gt;&lt;strong&gt;TON → Jetton&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;LzfS&quot;&gt;
      &lt;li id=&quot;8fNX&quot;&gt;Сравните ожидаемое количество в UI и фактическое полученное.&lt;/li&gt;
      &lt;li id=&quot;gXJj&quot;&gt;Обратите внимание на slippage, price impact и комиссии.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;YQjy&quot;&gt;&lt;strong&gt;Jetton → TON&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;j9cG&quot;&gt;
      &lt;li id=&quot;f18O&quot;&gt;Та же проверка: UI vs результат по факту.&lt;/li&gt;
      &lt;li id=&quot;F54A&quot;&gt;Убедитесь, что транзакция не падает из-за низкой ликвидности или слишком жёсткого slippage.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;CVdT&quot;&gt;Повторите с несколькими размерами ордеров, чтобы увидеть поведение кривой и то, как DEX объясняет это пользователю.&lt;/p&gt;
  &lt;h4 id=&quot;HIEJ&quot;&gt;5.2 Ликвидность (LP)&lt;/h4&gt;
  &lt;ul id=&quot;8Q4W&quot;&gt;
    &lt;li id=&quot;ozIf&quot;&gt;&lt;strong&gt;Добавление ликвидности&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;ogpt&quot;&gt;
      &lt;li id=&quot;hbcg&quot;&gt;Внести минимальный объём (Jetton + TON или Jetton + стейбл).&lt;/li&gt;
      &lt;li id=&quot;R8Eh&quot;&gt;Проверить выпуск LP-токенов и их отображение в DEX и в кошельке.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;Vk2q&quot;&gt;&lt;strong&gt;Частичный вывод&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;vVtK&quot;&gt;
      &lt;li id=&quot;g4O1&quot;&gt;Забрать, например, 25–50% позиции.&lt;/li&gt;
      &lt;li id=&quot;EG3r&quot;&gt;Проверить, что полученные суммы ожидаемы (с учётом комиссий и движения цены).&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;Pa3n&quot;&gt;&lt;strong&gt;Полный вывод&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;Ji6i&quot;&gt;
      &lt;li id=&quot;BUDM&quot;&gt;Вывести 100% ликвидности и убедиться, что все средства вернулись корректно.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;vOsJ&quot;&gt;Если DEX показывает странные decimals, не подхватывает иконку или пул вообще не виден — это и UX-проблема, и удар по доверию к токену.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;yS5Y&quot;&gt;6. Ключевое направление #4: комиссии и gas&lt;/h3&gt;
  &lt;p id=&quot;NmxB&quot;&gt;Toncoin используется для оплаты комиссий и развёртывания контрактов, включая jetton-wallet контракты пользователей.&lt;/p&gt;
  &lt;p id=&quot;jg8K&quot;&gt;Задача — чтобы с вашим Jetton было &lt;strong&gt;дёшево и предсказуемо&lt;/strong&gt; работать.&lt;/p&gt;
  &lt;p id=&quot;0CSO&quot;&gt;Проверьте:&lt;/p&gt;
  &lt;ul id=&quot;bReC&quot;&gt;
    &lt;li id=&quot;usd3&quot;&gt;&lt;strong&gt;Базовая комиссия за действие&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;9or3&quot;&gt;
      &lt;li id=&quot;opjD&quot;&gt;Перевод Jetton между уже активными кошельками.&lt;/li&gt;
      &lt;li id=&quot;M8jx&quot;&gt;Зафиксируйте типичный расход TON.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;rF7E&quot;&gt;&lt;strong&gt;Первая активация&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;GiYx&quot;&gt;
      &lt;li id=&quot;dcEf&quot;&gt;Отправка Jetton на адрес, который раньше его не получал.&lt;/li&gt;
      &lt;li id=&quot;nsm0&quot;&gt;Посмотрите, насколько дороже обходится создание jetton-wallet контракта.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;pURJ&quot;&gt;&lt;strong&gt;Крайние случаи с низким балансом TON&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;stKc&quot;&gt;
      &lt;li id=&quot;Jx4s&quot;&gt;Попробовать провести операцию при &lt;strong&gt;почти нулевом&lt;/strong&gt; балансе TON.&lt;/li&gt;
      &lt;li id=&quot;zBiJ&quot;&gt;Попробовать сделать действие при &lt;strong&gt;явно недостаточном&lt;/strong&gt; балансе.&lt;/li&gt;
      &lt;li id=&quot;F8jV&quot;&gt;Посмотреть, какие сообщения выдаёт интерфейс и что происходит на чейне.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;h76Q&quot;&gt;&lt;strong&gt;Возвраты “лишнего” TON&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;iiMD&quot;&gt;
      &lt;li id=&quot;0mcs&quot;&gt;В некоторых сценариях «excess TON» возвращается отправителю или на указанный адрес.&lt;/li&gt;
      &lt;li id=&quot;Uugx&quot;&gt;Убедитесь, что логика возврата соответствует вашей модели и не путает пользователя.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;kh1J&quot;&gt;7. Ключевое направление #5: крайние кейсы, UX и безопасность&lt;/h3&gt;
  &lt;p id=&quot;ea4h&quot;&gt;Здесь вы проверяете уже не только смарт-контракт, а &lt;strong&gt;общее ощущение продукта&lt;/strong&gt;.&lt;/p&gt;
  &lt;ol id=&quot;cJNa&quot;&gt;
    &lt;li id=&quot;7wLj&quot;&gt;&lt;strong&gt;Сообщения об ошибках&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;SvD7&quot;&gt;
      &lt;li id=&quot;qRNo&quot;&gt;Недостаточно TON на комиссии.&lt;/li&gt;
      &lt;li id=&quot;Q5pE&quot;&gt;Недостаточно Jetton для перевода.&lt;/li&gt;
      &lt;li id=&quot;chvG&quot;&gt;Неверный адрес.&lt;br /&gt;Понятны ли тексты обычному юзеру, который не программист?&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;hiKE&quot;&gt;&lt;strong&gt;Путаница с токенами&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;NhS3&quot;&gt;
      &lt;li id=&quot;p9pU&quot;&gt;Есть ли другие Jetton со схожим названием/символом?&lt;/li&gt;
      &lt;li id=&quot;Foe7&quot;&gt;Насколько легко визуально отличить ваш токен?&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;e6m6&quot;&gt;&lt;strong&gt;Админские права и разрешения&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;mX4R&quot;&gt;
      &lt;li id=&quot;3f4x&quot;&gt;Кто может минтить/жечь токен? Понятно ли это хотя бы из документации?&lt;/li&gt;
      &lt;li id=&quot;HAL2&quot;&gt;Есть ли функции, позволяющие замораживать балансы или забирать средства?&lt;/li&gt;
      &lt;li id=&quot;mB6r&quot;&gt;Есть ли план по отказу от лишних полномочий (или их передаче DAO/мультисигу)?&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;vqic&quot;&gt;&lt;strong&gt;План миграции&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;gQzh&quot;&gt;
      &lt;li id=&quot;jf9P&quot;&gt;Если найдёте критичный баг, как будете мигрировать пользователей на новый Jetton?&lt;/li&gt;
      &lt;li id=&quot;Gkpr&quot;&gt;Есть ли базовое описание этого плана в документации/анонсе?&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;pHEq&quot;&gt;8. Как организовать команду тестеров&lt;/h3&gt;
  &lt;p id=&quot;YnZ4&quot;&gt;Если у вас есть комьюнити или внутренняя QA-команда, структурируйте их работу:&lt;/p&gt;
  &lt;ul id=&quot;o2Bj&quot;&gt;
    &lt;li id=&quot;3vcw&quot;&gt;Создайте &lt;strong&gt;issue “Testing campaign”&lt;/strong&gt; c:&lt;/li&gt;
    &lt;ul id=&quot;4O9e&quot;&gt;
      &lt;li id=&quot;skQd&quot;&gt;чеклистом (переводы, кошельки, DEX, комиссии, UX),&lt;/li&gt;
      &lt;li id=&quot;4fbm&quot;&gt;правилами, как оставлять отчёт,&lt;/li&gt;
      &lt;li id=&quot;utwa&quot;&gt;ссылками на master-контракт Jetton и пулы на DEX.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;G4Cs&quot;&gt;Используйте &lt;strong&gt;шаблон багрепорта&lt;/strong&gt;:&lt;/li&gt;
    &lt;ul id=&quot;1kF2&quot;&gt;
      &lt;li id=&quot;N5hK&quot;&gt;окружение (кошелёк, платформа, сеть),&lt;/li&gt;
      &lt;li id=&quot;3X0u&quot;&gt;шаги для воспроизведения,&lt;/li&gt;
      &lt;li id=&quot;LJ7h&quot;&gt;ожидаемый vs фактический результат,&lt;/li&gt;
      &lt;li id=&quot;QOA2&quot;&gt;ссылка на транзакцию + скриншоты.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;wtxV&quot;&gt;Так фидбек будет структурированным, а вам проще будет находить паттерны и приоритизировать правки.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;eWrY&quot;&gt;9. Вознаграждение за тесты (и как не превратить всё в фарм)&lt;/h3&gt;
  &lt;p id=&quot;9yLt&quot;&gt;Тестирование в mainnet стоит реальных денег, поэтому логично &lt;strong&gt;вознаграждать тестеров&lt;/strong&gt; из заранее выделенного пула Jetton:&lt;/p&gt;
  &lt;ul id=&quot;vA4F&quot;&gt;
    &lt;li id=&quot;cam2&quot;&gt;отдельный пул под &lt;strong&gt;чек-листы и задачи&lt;/strong&gt; (серия тестов, мульти-кошельковые сценарии);&lt;/li&gt;
    &lt;li id=&quot;Iyxz&quot;&gt;отдельный пул под &lt;strong&gt;bug bounty&lt;/strong&gt;, особенно за критические и security-баги.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;sJUL&quot;&gt;Несколько простых правил:&lt;/p&gt;
  &lt;ul id=&quot;Yeoi&quot;&gt;
    &lt;li id=&quot;grlK&quot;&gt;Вознаграждайте &lt;strong&gt;качество, а не количество кликов&lt;/strong&gt; — просите реальные ссылки на транзакции и нормальные описания.&lt;/li&gt;
    &lt;li id=&quot;3Jd4&quot;&gt;Держите правила публичными и максимально простыми.&lt;/li&gt;
    &lt;li id=&quot;JlEw&quot;&gt;Не обещайте «гарантированный заработок/доход» — это не инвестсовет, рынок живёт своей жизнью.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;x7XI&quot;&gt;Хорошая программа тестирования должна ощущаться как &lt;strong&gt;совместная работа&lt;/strong&gt;, а не как очередной «фарм ради токенов».&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;Jip4&quot;&gt;10. Итог&lt;/h3&gt;
  &lt;p id=&quot;zIyr&quot;&gt;Jetton, запущенный в основной сети TON, — это уже не тестовый токен, а полноценный финансовый инструмент. Стандарт TEP-74 даёт вам технический фундамент, но &lt;strong&gt;только живое тестирование&lt;/strong&gt; во всех реальных сценариях (кошельки, обозреватели, DEX-ы, пользовательские флоу) покажет, насколько ваш токен готов к массовому использованию.&lt;/p&gt;
  &lt;p id=&quot;DZfp&quot;&gt;Будьте системны:&lt;/p&gt;
  &lt;ul id=&quot;ET7K&quot;&gt;
    &lt;li id=&quot;hCRf&quot;&gt;проверяйте переводы, балансы, комиссии и поведение на DEX;&lt;/li&gt;
    &lt;li id=&quot;aUGs&quot;&gt;уделите внимание интеграциям;&lt;/li&gt;
    &lt;li id=&quot;esfB&quot;&gt;относитесь к UX и безопасности как к ключевым требованиям;&lt;/li&gt;
    &lt;li id=&quot;QswK&quot;&gt;грамотно организуйте и мотивируйте тестеров.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;JSgC&quot;&gt;Так ваш Jetton перестанет быть «ещё одним токеном в списке» и станет надёжным кирпичиком экосистемы TON.&lt;/p&gt;
  &lt;p id=&quot;WYkj&quot;&gt;studio.rubeton.app&lt;/p&gt;

</content></entry><entry><id>not_under_ton:z7YXCXQjzbJ</id><link rel="alternate" type="text/html" href="https://teletype.in/@not_under_ton/z7YXCXQjzbJ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=not_under_ton"></link><title>TON Marketing: From Zero to a Marketing Machine</title><published>2025-11-11T21:00:26.800Z</published><updated>2025-11-14T10:03:56.397Z</updated><summary type="html">Объединённая версия серии из 4 статей TON CIS Hub — в одном удобном гайде. Здесь — полный путь продукта в экосистеме TON/Telegram: от первых 100 пользователей до устойчивой маркетинговой машины.</summary><content type="html">
  &lt;h1 id=&quot;Dx66&quot;&gt;TON Marketing: From Zero to a Marketing Machine&lt;/h1&gt;
  &lt;p id=&quot;tmwe&quot;&gt;A unified version of the 4-part TON CIS Hub series — plus a practical guide to marketing a Mini App in TON &amp;amp; Telegram.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;YX09&quot;&gt;Phase 1. The First 100 Users with Zero Budget&lt;/h2&gt;
  &lt;p id=&quot;sztw&quot;&gt;&lt;strong&gt;Goal:&lt;/strong&gt; validate your value proposition and find your core audience.&lt;/p&gt;
  &lt;p id=&quot;Bbpo&quot;&gt;&lt;strong&gt;Actions:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;pg30&quot;&gt;
    &lt;li id=&quot;kwR9&quot;&gt;Run 10–20 user interviews.&lt;/li&gt;
    &lt;li id=&quot;OcKn&quot;&gt;Craft a clear 1–2 sentence value proposition.&lt;/li&gt;
    &lt;li id=&quot;Z1d6&quot;&gt;Get your first 100 users via personal networks and Telegram/X communities.&lt;/li&gt;
    &lt;li id=&quot;Fd8I&quot;&gt;Publish an honest “here’s what we’re building &amp;amp; why” launch story.&lt;/li&gt;
    &lt;li id=&quot;OQSF&quot;&gt;Tap into TON Nest/Fam and related communities for feedback and early evangelists.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;pWET&quot;&gt;&lt;strong&gt;Success signals:&lt;/strong&gt;&lt;br /&gt;100+ active users, repeat sessions, 2–3 genuine evangelists.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;8Pm1&quot;&gt;Phase 2. From 100 to 10,000 Users&lt;/h2&gt;
  &lt;p id=&quot;2TUI&quot;&gt;&lt;strong&gt;Goal:&lt;/strong&gt; cover key discovery surfaces and kick off partnerships.&lt;/p&gt;
  &lt;p id=&quot;CqP1&quot;&gt;&lt;strong&gt;Key placements:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;pt93&quot;&gt;
    &lt;li id=&quot;qL8S&quot;&gt;&lt;strong&gt;Telegram App Center&lt;/strong&gt;.&lt;/li&gt;
    &lt;li id=&quot;5K2E&quot;&gt;&lt;strong&gt;Wallets:&lt;/strong&gt; Tonkeeper Pro, MyTonWallet, multi-chain wallets.&lt;/li&gt;
    &lt;li id=&quot;D5KR&quot;&gt;&lt;strong&gt;Listings/reviews:&lt;/strong&gt; Ton.app, Tonscan, DappRadar, GameFi hubs.&lt;/li&gt;
    &lt;li id=&quot;WNbY&quot;&gt;&lt;strong&gt;Quest platforms:&lt;/strong&gt; TBook, xQuest Launch, BroBot, Galxe, Questhub.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Djn9&quot;&gt;&lt;strong&gt;Partnerships:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;Yocb&quot;&gt;
    &lt;li id=&quot;Ws7l&quot;&gt;Cross-quests and joint promo campaigns.&lt;/li&gt;
    &lt;li id=&quot;JRhP&quot;&gt;AMA / X Spaces / joint streams.&lt;/li&gt;
    &lt;li id=&quot;HXCW&quot;&gt;Audience swaps and co-branded drops.&lt;br /&gt;Aim for partners with a similar scale and complementary value.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;7s6l&quot;&gt;&lt;strong&gt;Success signals:&lt;/strong&gt;&lt;br /&gt;Steady organic traffic from catalogs/App Center; at least one clearly performing partnership; quests that convert to active users; basic clarity on channel ROI.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;LSsb&quot;&gt;Phase 3. Viral Growth: KOLs, Paid, Engagement&lt;/h2&gt;
  &lt;p id=&quot;2C7y&quot;&gt;&lt;strong&gt;KOL marketing:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;CIAr&quot;&gt;
    &lt;li id=&quot;N2jS&quot;&gt;Start with micro-KOLs (1–10k audience).&lt;/li&gt;
    &lt;li id=&quot;SnkS&quot;&gt;Prefer performance-based deals (rev share, referrals).&lt;/li&gt;
    &lt;li id=&quot;AGCU&quot;&gt;Authentic content &amp;gt; heavily scripted ad reads.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;gRsY&quot;&gt;&lt;strong&gt;Paid traffic:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;ED2u&quot;&gt;
    &lt;li id=&quot;Jpo1&quot;&gt;&lt;strong&gt;Within Telegram:&lt;/strong&gt; direct channel buys, Telega.io, Plarin, Clicksdealer, Telegram Ads, AdsGram, OpenAD, Monetag.&lt;/li&gt;
    &lt;li id=&quot;4PIx&quot;&gt;&lt;strong&gt;Outside Telegram:&lt;/strong&gt; X, Meta, TikTok, YouTube, Google Ads.&lt;br /&gt;Scale only where your CAC / LTV / Payback math works.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;OI8e&quot;&gt;&lt;strong&gt;Virality &amp;amp; engagement:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;DbEo&quot;&gt;
    &lt;li id=&quot;FgSJ&quot;&gt;Design for sharing: rewards, leaderboards, competition loops.&lt;/li&gt;
    &lt;li id=&quot;1YrT&quot;&gt;Use Telegram Stories as a distribution and challenge layer.&lt;/li&gt;
    &lt;li id=&quot;TzrQ&quot;&gt;Add in-app challenges and social proof.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;6LKK&quot;&gt;&lt;strong&gt;Referrals:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;AaLL&quot;&gt;
    &lt;li id=&quot;HY7s&quot;&gt;Two-sided value (for both inviter and invitee).&lt;/li&gt;
    &lt;li id=&quot;kUOP&quot;&gt;Tiered rewards (e.g., 1 / 3 / 10 invites).&lt;/li&gt;
    &lt;li id=&quot;gYrA&quot;&gt;Time-limited bonuses and seasonal boosts.&lt;/li&gt;
    &lt;li id=&quot;JVvq&quot;&gt;With Stars, leverage Telegram Affiliate where relevant.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;hgqB&quot;&gt;Phase 4. The Marketing Machine &amp;amp; Optimization&lt;/h2&gt;
  &lt;p id=&quot;hvvO&quot;&gt;&lt;strong&gt;Official TON support:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;04mV&quot;&gt;
    &lt;li id=&quot;SBaK&quot;&gt;AMAs, reposts, mentions.&lt;/li&gt;
    &lt;li id=&quot;nkjm&quot;&gt;TON Blog and partner media.&lt;/li&gt;
    &lt;li id=&quot;naCl&quot;&gt;Best suited for mature products with strong news or traction.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;xN0G&quot;&gt;&lt;strong&gt;PR ladder:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol id=&quot;CYpO&quot;&gt;
    &lt;li id=&quot;iIO4&quot;&gt;TON-focused outlets (Trending Apps, The Daily TON, TON Newbie).&lt;/li&gt;
    &lt;li id=&quot;fmSu&quot;&gt;Broader crypto media (e.g., CoinDesk and similar).&lt;/li&gt;
    &lt;li id=&quot;mXUr&quot;&gt;Tech press — only when you truly have a newsworthy story.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;QM5I&quot;&gt;&lt;strong&gt;Advanced analytics:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;LViH&quot;&gt;
    &lt;li id=&quot;id7g&quot;&gt;&lt;strong&gt;Off-chain:&lt;/strong&gt; reach, engagement rate.&lt;/li&gt;
    &lt;li id=&quot;roDc&quot;&gt;&lt;strong&gt;Product:&lt;/strong&gt; MAU, retention, K-factor.&lt;/li&gt;
    &lt;li id=&quot;laxj&quot;&gt;&lt;strong&gt;On-chain:&lt;/strong&gt; active addresses, TVL, transactions.&lt;/li&gt;
    &lt;li id=&quot;uHSy&quot;&gt;&lt;strong&gt;Unit economics:&lt;/strong&gt; CAC, LTV, ROI.&lt;br /&gt;Tools: GA / Mixpanel / Amplitude / Plausible, Telegram Mini Apps analytics/SDK, Dune dashboards.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;N4ui&quot;&gt;&lt;strong&gt;Agencies &amp;amp; experts:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;8tat&quot;&gt;
    &lt;li id=&quot;7ONT&quot;&gt;Useful when you lack speed, expertise, or are entering new markets.&lt;/li&gt;
    &lt;li id=&quot;b2ct&quot;&gt;Where to look: TON Talents, TON Nest, personal/peer referrals.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;J6VJ&quot;&gt;&lt;strong&gt;Common pitfalls:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;VoSg&quot;&gt;
    &lt;li id=&quot;aUMJ&quot;&gt;Trying to do everything at once.&lt;/li&gt;
    &lt;li id=&quot;1JV6&quot;&gt;Chasing vanity metrics instead of activation and retention.&lt;/li&gt;
    &lt;li id=&quot;qEtJ&quot;&gt;Ignoring retention and cohorts.&lt;/li&gt;
    &lt;li id=&quot;ZUZM&quot;&gt;Blindly copying others’ mechanics without validation.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;tsNW&quot;&gt;Add-on Guide: How to Market a Mini App in TON &amp;amp; Telegram&lt;/h2&gt;
  &lt;p id=&quot;cg60&quot;&gt;A practical checklist to launch and grow your Mini App or bot.&lt;/p&gt;
  &lt;p id=&quot;2yw2&quot;&gt;Need a tech partner to build or port your Mini App? Check &lt;strong&gt;RubeTON Studio&lt;/strong&gt; → &lt;a href=&quot;https://studio.rubeton.app/&quot; target=&quot;_blank&quot;&gt;https://studio.rubeton.app&lt;/a&gt;&lt;/p&gt;
  &lt;ol id=&quot;8Q8d&quot;&gt;
    &lt;li id=&quot;bIt4&quot;&gt;&lt;strong&gt;Product prep:&lt;/strong&gt;&lt;br /&gt;Mini-App-first UX; fast onboarding (30–60 seconds to “aha moment”); monetization (Stars, subscriptions, IAP); integrations (TON Wallet, deeplink scenes, share presets); tracking (UTM / target params, funnels).&lt;/li&gt;
    &lt;li id=&quot;gmfU&quot;&gt;&lt;strong&gt;First hundred users:&lt;/strong&gt;&lt;br /&gt;Personal network; builder chats; TON Nest/Fam/Hubs; a “what we’re building &amp;amp; why” post; demo video.&lt;/li&gt;
    &lt;li id=&quot;r3wg&quot;&gt;&lt;strong&gt;Distribution 100 → 10k:&lt;/strong&gt;&lt;br /&gt;App Center (icons, screenshots, one-liner, 15–30s video); wallets (Tonkeeper Pro, MyTonWallet, multi-chain wallets); catalogs (Ton.app, Tonscan, DappRadar); quests (TBook, xQuest Launch, BroBot, Galxe, Questhub).&lt;/li&gt;
    &lt;li id=&quot;iXdW&quot;&gt;&lt;strong&gt;Launch market pack:&lt;/strong&gt;&lt;br /&gt;Press kit (logo, screenshots, short video, one-pager), “for partners” page, and a 2–4 week content plan.&lt;/li&gt;
    &lt;li id=&quot;Es6G&quot;&gt;&lt;strong&gt;KOL &amp;amp; paid:&lt;/strong&gt;&lt;br /&gt;Micro-KOLs on performance deals; Telegram buys (incl. Telegram Ads, AdsGram, OpenAD, Monetag); off-Telegram campaigns on X/Meta/TikTok/YouTube/Google Ads.&lt;/li&gt;
    &lt;li id=&quot;pDBj&quot;&gt;&lt;strong&gt;Telegram virality:&lt;/strong&gt;&lt;br /&gt;Stories challenges; explicit share CTAs; leaderboards; referrals with two-sided value and tiered rewards.&lt;/li&gt;
    &lt;li id=&quot;W3C9&quot;&gt;&lt;strong&gt;Economics &amp;amp; retention:&lt;/strong&gt;&lt;br /&gt;Track CAC / LTV / Payback; improve D1 / D7 / D30 via reminders, content events, and push notifications.&lt;/li&gt;
    &lt;li id=&quot;CmwJ&quot;&gt;&lt;strong&gt;Analytics &amp;amp; experiments:&lt;/strong&gt;&lt;br /&gt;Mixpanel / Amplitude / GA / Plausible; Telegram Mini Apps analytics/SDK; Dune; weekly channel and A/B test reports, monthly cohort reviews.&lt;/li&gt;
    &lt;li id=&quot;gmTU&quot;&gt;&lt;strong&gt;Localization &amp;amp; hubs:&lt;/strong&gt;&lt;br /&gt;Expand via TON Hubs, local communities, and local KOLs.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;0LIy&quot;&gt;Takeaway&lt;/h2&gt;
  &lt;p id=&quot;8BcV&quot;&gt;Validate with your first 100 users → scale via App Center, wallets, catalogs, and partnerships → add KOL, paid, and virality → build analytics, PR, and operational discipline.&lt;/p&gt;
  &lt;p id=&quot;DDj0&quot;&gt;&lt;strong&gt;RubeTON Studio for Mini Apps&lt;/strong&gt; → &lt;a href=&quot;https://studio.rubeton.app/&quot; target=&quot;_blank&quot;&gt;https://studio.rubeton.app&lt;/a&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;TGI3&quot;&gt;TON-маркетинг: от 0 до маркетинговой машины&lt;/h1&gt;
  &lt;p id=&quot;WW9s&quot;&gt;Единая версия 4-частной серии TON CIS Hub плюс практический гид по продвижению Mini App в TON и Telegram.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;4ZvC&quot;&gt;Фаза 1. Первые 100 пользователей без бюджета&lt;/h2&gt;
  &lt;p id=&quot;UtrG&quot;&gt;&lt;strong&gt;Цель:&lt;/strong&gt; подтвердить ценность продукта и найти ядро аудитории.&lt;/p&gt;
  &lt;p id=&quot;eLj2&quot;&gt;&lt;strong&gt;Что делать:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;dWhc&quot;&gt;
    &lt;li id=&quot;f4aD&quot;&gt;Провести 10–20 пользовательских интервью.&lt;/li&gt;
    &lt;li id=&quot;9gZ2&quot;&gt;Сформулировать чёткое ценностное предложение в 1–2 предложениях.&lt;/li&gt;
    &lt;li id=&quot;EMHM&quot;&gt;Привести первых 100 пользователей через личные связи и комьюнити в Telegram/X.&lt;/li&gt;
    &lt;li id=&quot;5RIF&quot;&gt;Опубликовать честную историю запуска — что строите и зачем.&lt;/li&gt;
    &lt;li id=&quot;b8E1&quot;&gt;Подключить TON Nest/Fam и другие TON-сообщества для фидбэка и первых евангелистов.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;7Vk4&quot;&gt;&lt;strong&gt;Сигналы успеха:&lt;/strong&gt;&lt;br /&gt;100+ активных пользователей, повторные сессии, 2–3 евангелиста продукта.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;GYqH&quot;&gt;Фаза 2. Со 100 до 10 000 пользователей&lt;/h2&gt;
  &lt;p id=&quot;eFLa&quot;&gt;&lt;strong&gt;Цель:&lt;/strong&gt; занять ключевые «точки обнаружения» и запустить партнёрства.&lt;/p&gt;
  &lt;p id=&quot;cT9U&quot;&gt;&lt;strong&gt;Где размещаться:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;d2HX&quot;&gt;
    &lt;li id=&quot;TlEQ&quot;&gt;&lt;strong&gt;Telegram App Center.&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;TlXz&quot;&gt;&lt;strong&gt;Кошельки:&lt;/strong&gt; Tonkeeper Pro, MyTonWallet, мультичейн-кошельки.&lt;/li&gt;
    &lt;li id=&quot;f2BL&quot;&gt;&lt;strong&gt;Каталоги и обзоры:&lt;/strong&gt; Ton.app, Tonscan, DappRadar, GameFi-площадки.&lt;/li&gt;
    &lt;li id=&quot;uRLX&quot;&gt;&lt;strong&gt;Квест-платформы:&lt;/strong&gt; TBook, xQuest Launch, BroBot, Galxe, Questhub.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;082H&quot;&gt;&lt;strong&gt;Партнёрства:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;6SUx&quot;&gt;
    &lt;li id=&quot;x287&quot;&gt;Кросс-квесты и совместные промо-кампании.&lt;/li&gt;
    &lt;li id=&quot;RrtN&quot;&gt;AMA / X Spaces / совместные эфиры.&lt;/li&gt;
    &lt;li id=&quot;xIyh&quot;&gt;Обмен аудиториями и ко-брендинговые активности.&lt;br /&gt;Выбирайте партнёров с близким масштабом и комплементарной ценностью.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Di3L&quot;&gt;&lt;strong&gt;Сигналы успеха:&lt;/strong&gt;&lt;br /&gt;Стабильный органический приток из каталогов/App Center; хотя бы одно по-настоящему результативное партнёрство; квесты приводят именно активных юзеров; появляется понимание окупаемости каналов.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;GRxj&quot;&gt;Фаза 3. Вирусный рост: KOL, реклама, вовлечение&lt;/h2&gt;
  &lt;p id=&quot;PMeP&quot;&gt;&lt;strong&gt;KOL-маркетинг:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;zzKp&quot;&gt;
    &lt;li id=&quot;sBFe&quot;&gt;Начинайте с микро-KOL (аудитория 1–10k).&lt;/li&gt;
    &lt;li id=&quot;Grt9&quot;&gt;Делайте фокус на оплате за результат (ревшары, реферальные модели).&lt;/li&gt;
    &lt;li id=&quot;dnav&quot;&gt;Аутентичность важнее жёстко прописанных рекламных интеграций.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ehhm&quot;&gt;&lt;strong&gt;Платная реклама:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;udVO&quot;&gt;
    &lt;li id=&quot;2tjM&quot;&gt;&lt;strong&gt;Внутри Telegram:&lt;/strong&gt; прямые сделки с каналами, Telega.io, Plarin, Clicksdealer, Telegram Ads, AdsGram, OpenAD, Monetag.&lt;/li&gt;
    &lt;li id=&quot;WJkj&quot;&gt;&lt;strong&gt;Вне Telegram:&lt;/strong&gt; X, Meta, TikTok, YouTube, Google Ads.&lt;br /&gt;Масштабируйтесь только там, где сходится экономика: CAC / LTV / срок окупаемости.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;dTSl&quot;&gt;&lt;strong&gt;Виральные механики и вовлечение:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;k5XX&quot;&gt;
    &lt;li id=&quot;10Hs&quot;&gt;Спроектированный шаринг: награды, рейтинги, соревновательные механики.&lt;/li&gt;
    &lt;li id=&quot;yJCI&quot;&gt;Используйте Telegram Stories как канал дистрибуции и челленджей.&lt;/li&gt;
    &lt;li id=&quot;5fg6&quot;&gt;Добавляйте внутриигровые/внутри-app-челленджи и социальное доказательство.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;1BjS&quot;&gt;&lt;strong&gt;Рефералы:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;mFcU&quot;&gt;
    &lt;li id=&quot;EQlS&quot;&gt;Двусторонняя выгода для приглашающего и приглашённого.&lt;/li&gt;
    &lt;li id=&quot;qdCP&quot;&gt;Ступенчатые награды (например, за 1 / 3 / 10 приглашённых).&lt;/li&gt;
    &lt;li id=&quot;DV2P&quot;&gt;Лимитированные бонусы и сезонные акции.&lt;/li&gt;
    &lt;li id=&quot;WTFl&quot;&gt;При работе со Stars используйте Telegram Affiliate, где это уместно.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;F1JA&quot;&gt;Фаза 4. Маркетинговая машина и оптимизация&lt;/h2&gt;
  &lt;p id=&quot;lv1S&quot;&gt;&lt;strong&gt;Официальная поддержка TON:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;q45G&quot;&gt;
    &lt;li id=&quot;RKK2&quot;&gt;AMA, репосты, упоминания.&lt;/li&gt;
    &lt;li id=&quot;df6R&quot;&gt;TON Blog и партнёрские медиа.&lt;/li&gt;
    &lt;li id=&quot;KAkw&quot;&gt;Подходит для более зрелых продуктов с сильным инфоповодом или трекшном.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;jlFf&quot;&gt;&lt;strong&gt;PR-лестница:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol id=&quot;eAdk&quot;&gt;
    &lt;li id=&quot;zp8P&quot;&gt;TON-медиа (Trending Apps, The Daily TON, TON Newbie).&lt;/li&gt;
    &lt;li id=&quot;2ulj&quot;&gt;Широкие крипто-СМИ (CoinDesk и др.).&lt;/li&gt;
    &lt;li id=&quot;ELNX&quot;&gt;Тех-СМИ — только при реально сильном инфоповоде.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;rsIQ&quot;&gt;&lt;strong&gt;Продвинутая аналитика:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;QUEP&quot;&gt;
    &lt;li id=&quot;jks6&quot;&gt;&lt;strong&gt;Off-chain:&lt;/strong&gt; охват, вовлечённость (ER).&lt;/li&gt;
    &lt;li id=&quot;OIdX&quot;&gt;&lt;strong&gt;Продукт:&lt;/strong&gt; MAU, retention, K-factor.&lt;/li&gt;
    &lt;li id=&quot;Oeig&quot;&gt;&lt;strong&gt;On-chain:&lt;/strong&gt; активные адреса, TVL, транзакции.&lt;/li&gt;
    &lt;li id=&quot;LsO2&quot;&gt;&lt;strong&gt;Юнит-экономика:&lt;/strong&gt; CAC, LTV, ROI.&lt;br /&gt;Инструменты: GA, Mixpanel, Amplitude, Plausible, аналитика Mini Apps/Telegram SDK, дашборды в Dune.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;DhBl&quot;&gt;&lt;strong&gt;Агентства и эксперты:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;d4np&quot;&gt;
    &lt;li id=&quot;S2yM&quot;&gt;Нужны, когда не хватает скорости/экспертизы или вы выходите в новые рынки.&lt;/li&gt;
    &lt;li id=&quot;vG5c&quot;&gt;Где искать: TON Talents, TON Nest, личные рекомендации и реферальные сети.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;0gnD&quot;&gt;&lt;strong&gt;Типичные ошибки:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;XCNl&quot;&gt;
    &lt;li id=&quot;BsZM&quot;&gt;Пытаться «делать всё сразу».&lt;/li&gt;
    &lt;li id=&quot;uDwD&quot;&gt;Гнаться за vanity-метриками вместо активации и удержания.&lt;/li&gt;
    &lt;li id=&quot;1RUa&quot;&gt;Игнорировать retention и когорты.&lt;/li&gt;
    &lt;li id=&quot;Zp5p&quot;&gt;Слепо копировать чужие механики без проверки на своей аудитории.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;q14j&quot;&gt;Гайд-дополнение: как продвигать Mini App в TON и Telegram&lt;/h2&gt;
  &lt;p id=&quot;3Due&quot;&gt;Практический чек-лист по запуску и росту Mini App или бота.&lt;/p&gt;
  &lt;p id=&quot;Vuwl&quot;&gt;Нужен партнёр по разработке или порту Mini App? Посмотрите &lt;strong&gt;RubeTON Studio&lt;/strong&gt; → &lt;a href=&quot;https://studio.rubeton.app/&quot; target=&quot;_blank&quot;&gt;https://studio.rubeton.app&lt;/a&gt;&lt;/p&gt;
  &lt;ol id=&quot;ctL8&quot;&gt;
    &lt;li id=&quot;4zjZ&quot;&gt;&lt;strong&gt;Подготовка продукта:&lt;/strong&gt;&lt;br /&gt;Mini App-first UX; быстрый онбординг (30–60 секунд до «момента ценности»); монетизация (Stars, подписки, IAP); интеграции (TON Wallet, deeplink-сцены, готовые пресеты шэринга); трекинг (UTM / target params, воронки).&lt;/li&gt;
    &lt;li id=&quot;lynP&quot;&gt;&lt;strong&gt;Первая сотня пользователей:&lt;/strong&gt;&lt;br /&gt;Личные сети; чаты билдеров; TON Nest/Fam/Hubs; эссе «что строим и зачем»; демо-видео.&lt;/li&gt;
    &lt;li id=&quot;YJtB&quot;&gt;&lt;strong&gt;Дистрибуция 100 → 10k:&lt;/strong&gt;&lt;br /&gt;App Center (иконки, скрины, 1-лайнер, видео 15–30 секунд); кошельки (Tonkeeper Pro, MyTonWallet, мультичейн-кошельки); каталоги (Ton.app, Tonscan, DappRadar); квесты (TBook, xQuest Launch, BroBot, Galxe, Questhub).&lt;/li&gt;
    &lt;li id=&quot;s2Xa&quot;&gt;&lt;strong&gt;Маркет-пакет старта:&lt;/strong&gt;&lt;br /&gt;Пресс-кит (лого, скрины, короткое видео, one-pager), страница «для партнёров», контент-календарь на 2–4 недели.&lt;/li&gt;
    &lt;li id=&quot;fHNI&quot;&gt;&lt;strong&gt;KOL и платное продвижение:&lt;/strong&gt;&lt;br /&gt;Микро-KOL с оплатой за результат; Telegram-размещения (включая Telegram Ads, AdsGram, OpenAD, Monetag); кампании в X/Meta/TikTok/YouTube/Google Ads.&lt;/li&gt;
    &lt;li id=&quot;GWcr&quot;&gt;&lt;strong&gt;Виральность в Telegram:&lt;/strong&gt;&lt;br /&gt;Stories-челленджи; явные CTA на шэринг; рейтинги и таблицы лидеров; реферальные программы с двусторонней выгодой и уровнями наград.&lt;/li&gt;
    &lt;li id=&quot;Dscy&quot;&gt;&lt;strong&gt;Экономика и удержание:&lt;/strong&gt;&lt;br /&gt;Считайте CAC / LTV / срок окупаемости; улучшайте D1 / D7 / D30 с помощью напоминаний, контент-ивентов и пушей.&lt;/li&gt;
    &lt;li id=&quot;EplI&quot;&gt;&lt;strong&gt;Аналитика и эксперименты:&lt;/strong&gt;&lt;br /&gt;Mixpanel / Amplitude / GA / Plausible; аналитика Mini Apps/Telegram SDK; Dune; еженедельные отчёты по каналам и A/B-тестам, ежемесячный разбор когорт.&lt;/li&gt;
    &lt;li id=&quot;cDFz&quot;&gt;&lt;strong&gt;Локализация и Hubs:&lt;/strong&gt;&lt;br /&gt;Выходите в новые регионы через TON Hubs, локальные комьюнити и локальных KOL.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;hsj4&quot;&gt;Итог&lt;/h2&gt;
  &lt;p id=&quot;snUv&quot;&gt;Подтвердите ценность на первых 100 пользователях → масштабируйтесь через App Center, кошельки, каталоги и партнёрства → добавляйте KOL, рекламу и виральные механики → стройте аналитику, PR и устойчивые процессы.&lt;/p&gt;
  &lt;p id=&quot;3mLk&quot;&gt;&lt;strong&gt;RubeTON Studio для Mini Apps&lt;/strong&gt; → &lt;a href=&quot;https://studio.rubeton.app&quot; target=&quot;_blank&quot;&gt;https://studio.rubeton.app&lt;/a&gt;&lt;/p&gt;

</content></entry></feed>