← 博客
TON7 分钟阅读作者:

面向开发者的 TON Blockchain:Stars、USDT、TonConnect 与 Telegram 支付

来自 The Open Squad 的实战经验,深入剖析 Telegram Mini App 中的 TON 集成。架构、TonConnect、Jettons (USDT)、Telegram Stars、托管合约、安全。

2026 年的 TON Blockchain 不再是"Telegram 粉丝的加密货币"——它已成为这款即时通讯软件整个支付栈的基础设施层。在 The Open Squad,我们把 TON 集成进了每一个产品:The Open Earn 中的 USDT 出款,The Open Guarantor 中的托管智能合约。这份指南就是我们一路走来的所学所悟。

为什么 Telegram 产品要选 TON

替代方案:

  • Stripe / PayPal — 慢、贵(3–5%),无法服务我们覆盖的 50+ 个国家的用户
  • 多链加密钱包 — UX 噩梦:用户必须知道网络、地址、gas
  • 不可提现的内部余额 — 用户不信任

TON 同时解决三个问题:

  1. 低手续费 — 每笔交易仅几分之一美分(对比 Stripe 的 $0.30+)
  2. 速度 — 5 秒终局
  3. UX — TonConnect 让用户两次点击就能连接钱包,无需复制地址

两分钟看懂 TON 架构

TON 是一条分片的 PoS 区块链。原生单位为 TON。其上运行:

  • Jettons — 代币标准(TON 中的 ERC-20 等价物)。TON 上的 USDT 是由 Tether 发行的 Jetton
  • NFTs — 唯一代币标准
  • Workchains / Shardchains — 用于扩容的分片

对开发者来说这意味着:

  • 一个 SDK(@ton/ton@ton/core)同时处理 TON 和 Jettons
  • 不必在多链间来回切换
  • 一笔交易就是一个合约向另一个合约发送的消息(包括钱包在内,一切都是合约)

通过 TonConnect 连接钱包

TonConnect 是一个开源协议,可将 dApp 与用户钱包相连。所有主流 TON 钱包都支持它:Tonkeeper、MyTonWallet、Tonhub。

在 Mini App 中如下所示:

import { TonConnectUI } from "@tonconnect/ui";

const tonConnectUI = new TonConnectUI({
  manifestUrl: "https://yourapp.com/tonconnect-manifest.json",
});

// 打开钱包选择弹窗
await tonConnectUI.openModal();

// 连接成功后 — 可以拿到钱包信息:
const wallet = tonConnectUI.wallet;
console.log(wallet?.account.address);

清单(tonconnect-manifest.json)是包含你应用元数据的静态 JSON。钱包读取它后,会在授权页显示你的图标和名称。

接收支付:TON 与 USDT

场景 1:接收 TON。 为每个用户生成一个充值地址(通过 HD-wallet 子账户)。通过 TON API 监听新交易:

from pytoniq import LiteClient

async def listen_deposits(address: str):
    async with LiteClient.from_mainnet_config() as client:
        txs = await client.get_transactions(address, count=10)
        for tx in txs:
            if tx.in_msg.value > 0:
                process_deposit(user_id, tx.in_msg.value)

场景 2:接收 USDT(Jetton)。 USDT 是一个 Jetton 合约。每个收款人都有自己的 Jetton 钱包(与主 TON 钱包不同的地址)。你监听的是 Jetton 钱包上的交易,而非主钱包。

最简单的路径:使用托管的 TON Index API(Tonapi.io、TonCenter),通过 webhook 接收入账转账。

Telegram Stars:Telegram 的数字货币

Stars 是 Telegram 的虚拟货币(1 Star ≈ $0.013)。用于购买数字商品:订阅、自定义表情、主题、机器人付费功能。

与 TON 不同,Stars 无法自由提现 — Telegram 仅对认证创作者并带延迟地把 Stars 兑换成 TON。

何时用 Stars 而非 TON:

  • 付费内容(文章、课程、机器人付费功能)
  • 应用内购买(贴纸、主题)
  • 打赏与捐赠
  • App Store / Play Store 合规(Apple 和 Google 要求应用内数字购买使用 Stars)

何时直接用 TON 更好:

  • B2B 出款
  • P2P 托管
  • 较大金额
  • 用户需要自由提现时

智能合约:来自 The Open Guarantor 的托管经验

The Open Guarantor 是我们在 TON 上做安全 P2P 交易的机器人。逻辑很简单:

  1. 买家把 TON 发送到托管合约
  2. 合约持有资金直至确认
  3. 买家确认收货 → 合约付款给卖家
  4. 出现争议时由仲裁者(我们)裁决

合约用 FunC(TON 的低层语言)或 Tact(高层)编写。我们使用 Tact:

contract Escrow {
    buyer: Address;
    seller: Address;
    arbiter: Address;
    amount: Int;
    state: Int; // 0 = pending, 1 = released, 2 = refunded

    receive("release") {
        require(sender() == self.buyer, "only buyer");
        require(self.state == 0, "already settled");
        send(SendParameters{
            to: self.seller,
            value: self.amount,
            mode: SendPayGasSeparately
        });
        self.state = 1;
    }
    // ... refund, dispute logic
}

blueprint(TON DevKit)部署。先在 testnet 测试,然后再上 mainnet。

支付安全清单

第一次事故之后我们落地的措施:

  1. 校验每一笔入账金额 — 切勿在不核对的情况下相信交易里的 value
  2. 重组保护 — 入账前等待 6+ 个区块(TON 上 ≈30 秒)
  3. 冷热钱包分离 — 热钱包只放约 24 小时的出款额,其余放冷钱包
  4. 冷钱包用硬件钱包 — Ledger 或多签
  5. 提现速率限制 — 限定每个账户每分钟 N 次提现
  6. 审计日志 — 每笔资金移动写入 DB,并复制到 S3 / Postgres 副本

运营成本

供单元经济测算:

  • TON 交易 — ~0.005 TON gas(按 $5/TON 约 $0.025)
  • Jetton(USDT)交易 — ~0.05 TON(约 $0.25)
  • 智能合约部署 — 一次性 ~0.1 TON

如果你每天处理 1,000 笔 USDT 提现,光 gas 就要 ~$250/天。降本方法:

  • 批量出款(单笔交易包含多个收款方)
  • 微小金额直接用 TON 而非 USDT

接下来

TON 是 2026 年面向 Telegram-native 产品最务实的区块链。如果你的产品涉及金钱,TON 集成只需 2–3 周,即可立刻获得传统支付网关无法企及的 UX。

想看它在生产环境中的样子 — 可以体验 The Open Earn(USDT 出款)或 The Open Guarantor(托管合约)。