TON Blockchain untuk Developer: Stars, USDT, TonConnect, dan Pembayaran Telegram
Pendalaman teknis integrasi TON di Telegram Mini App dari pengalaman The Open Squad. Arsitektur, TonConnect, Jettons (USDT), Telegram Stars, kontrak escrow, keamanan.
TON Blockchain di 2026 bukan "kripto fanatik Telegram" — ia adalah lapisan infrastruktur untuk seluruh stack pembayaran messenger ini. Di The Open Squad kami mengintegrasikan TON ke setiap produk: payout USDT di The Open Earn, kontrak escrow di The Open Guarantor. Panduan ini adalah hasil pembelajaran kami sepanjang jalan.
Mengapa TON untuk produk Telegram
Alternatif:
- Stripe / PayPal — lambat, mahal (3–5%), tidak bekerja untuk pengguna di 50+ negara yang kami layani
- Dompet kripto multi-chain — UX mimpi buruk: pengguna harus tahu jaringan, alamat, gas
- Saldo internal tanpa penarikan — pengguna tidak mempercayainya
TON menyelesaikan tiga masalah sekaligus:
- Biaya rendah — pecahan sen per transaksi (vs $0.30+ di Stripe)
- Kecepatan — finalitas dalam 5 detik
- UX — TonConnect membuat pengguna menautkan dompet dalam dua tap, tanpa menyalin alamat
Arsitektur TON dalam dua menit
TON adalah blockchain PoS yang di-shard. Unit nativenya adalah TON. Di atasnya berjalan:
- Jettons — standar token (ekuivalen TON dari ERC-20). USDT di TON adalah Jetton yang diterbitkan oleh Tether
- NFTs — standar token unik
- Workchains / Shardchains — shard untuk skalabilitas
Bagi developer artinya:
- Satu SDK (
@ton/ton,@ton/core) menangani TON dan Jettons - Tidak perlu juggling multi-chain
- Sebuah transaksi adalah pesan dari satu kontrak ke kontrak lain (semuanya kontrak, termasuk dompet)
Menghubungkan dompet via TonConnect
TonConnect adalah protokol open-source yang menautkan dApp ke dompet pengguna. Setiap dompet TON besar mendukungnya: Tonkeeper, MyTonWallet, Tonhub.
Di Mini App tampak seperti ini:
import { TonConnectUI } from "@tonconnect/ui";
const tonConnectUI = new TonConnectUI({
manifestUrl: "https://yourapp.com/tonconnect-manifest.json",
});
// Buka modal pemilih dompet
await tonConnectUI.openModal();
// Setelah koneksi — info dompet tersedia:
const wallet = tonConnectUI.wallet;
console.log(wallet?.account.address);
Manifest (tonconnect-manifest.json) adalah JSON statis berisi metadata aplikasi Anda. Dompet membacanya untuk menampilkan ikon dan nama Anda di layar persetujuan.
Menerima pembayaran: TON dan USDT
Skenario 1: menerima TON. Buat alamat deposit per pengguna (lewat sub-akun HD-wallet). Dengarkan transaksi baru melalui 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)
Skenario 2: menerima USDT (Jetton). USDT adalah kontrak Jetton. Setiap penerima memiliki dompet Jetton sendiri (alamat terpisah dari dompet TON utamanya). Anda mendengarkan transaksi pada dompet Jetton, bukan utama.
Cara paling sederhana: pakai TON Index API yang di-host (Tonapi.io, TonCenter) dengan webhook untuk transfer masuk.
Telegram Stars: mata uang digital Telegram
Stars adalah mata uang virtual Telegram (1 Star ≈ $0.013). Digunakan untuk membeli barang digital: langganan, emoji kustom, tema, fitur premium bot.
Tidak seperti TON, Stars tidak bisa ditarik dengan bebas — Telegram mengonversi Stars menjadi TON hanya untuk kreator terverifikasi dan dengan penundaan.
Kapan menggunakan Stars alih-alih TON:
- Konten berbayar (artikel, kursus, fitur premium bot)
- Pembelian dalam aplikasi (stiker, tema)
- Tip dan donasi
- Kepatuhan App Store / Play Store (Apple dan Google mewajibkan Stars untuk pembelian digital in-app)
Kapan TON langsung lebih baik:
- Payout B2B
- Escrow P2P
- Jumlah lebih besar
- Saat pengguna butuh penarikan bebas
Smart contract: pelajaran escrow dari The Open Guarantor
The Open Guarantor adalah bot kami untuk transaksi P2P aman di TON. Logikanya sederhana:
- Pembeli mengirim TON ke kontrak escrow
- Kontrak menahan dana hingga konfirmasi
- Pembeli mengonfirmasi penerimaan → kontrak membayar penjual
- Pada sengketa, arbiter (kami) memutuskan
Kontrak ditulis dalam FunC (bahasa low-level TON) atau Tact (high-level). Kami menggunakan 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
}
Deploy dengan blueprint (TON DevKit). Test di testnet dulu, lalu mainnet.
Checklist keamanan pembayaran
Yang kami terapkan setelah insiden pertama:
- Validasi setiap jumlah masuk — jangan pernah percaya
valuedari transaksi tanpa pengecekan - Proteksi reorg — tunggu 6+ blok sebelum mengkredit (≈30 detik di TON)
- Pemisahan hot/cold wallet — simpan hanya ~24 jam payout di hot wallet, sisanya di cold
- Hardware wallet untuk cold — Ledger atau multisig
- Batas laju penarikan — batasi N penarikan per menit per akun
- Audit trail — setiap pergerakan dana dicatat di DB dengan replikasi ke S3 / replika Postgres
Biaya operasi
Untuk unit ekonomi:
- Transaksi TON — ~0.005 TON gas (≈$0.025 pada $5/TON)
- Transaksi Jetton (USDT) — ~0.05 TON (≈$0.25)
- Deploy smart contract — sekali ~0.1 TON
Jika Anda memproses 1.000 penarikan USDT per hari, itu ~$250/hari untuk gas. Untuk menguranginya:
- Batch penarikan (banyak penerima dalam satu transaksi)
- Pakai TON langsung alih-alih USDT untuk jumlah mikro
Selanjutnya
TON adalah blockchain paling praktis untuk produk Telegram-native di 2026. Jika produk Anda menyentuh uang, integrasi TON memakan waktu 2–3 minggu dan langsung memberi UX yang tak bisa disaingi gateway pembayaran klasik.
Jika ingin melihat ini berjalan di produksi — cek The Open Earn (payout USDT) atau The Open Guarantor (kontrak escrow).