Membangun di TON pada 2026: Pembayaran Kripto di Telegram Mini Apps dengan TON Pay SDK
Engineering Team
Ekosistem TON pada 2026
The Open Network (TON) telah berevolusi dari proyek blockchain dengan akar Telegram menjadi salah satu ekosistem cryptocurrency yang paling aktif digunakan di dunia. Per Maret 2026, angka-angkanya menceritakan kisah yang menarik:
- 500M+ pengguna aktif bulanan di seluruh Telegram Mini Apps
- 3.600+ Mini Apps aktif yang terdaftar di katalog Telegram Mini App
- 400M+ dompet TON dibuat melalui Telegram Wallet, Tonkeeper, dan TON Space
- $4,2 miliar total nilai terkunci di protokol DeFi TON
- 12 juta transaksi on-chain harian di mainnet TON
Angka-angka ini menjadikan TON sebagai blockchain yang paling banyak didistribusikan berdasarkan jumlah pengguna aktif, melampaui Ethereum (termasuk L2) dan Solana. Pertumbuhan ini didorong oleh satu faktor: integrasi Telegram. Dengan 950M+ pengguna aktif Telegram bulanan di seluruh dunia, bahkan tingkat konversi kecil ke penggunaan Mini App dan dompet menghasilkan angka yang sangat besar.
Mengapa TON untuk Pembayaran?
Bagi pengembang yang membangun aplikasi dengan fitur pembayaran, TON menawarkan tiga keunggulan struktural dibanding blockchain lain:
- Distribusi — Mini App Anda dapat ditemukan di dalam Telegram, platform perpesanan yang sudah digunakan pengguna Anda setiap hari. Tidak perlu pengajuan ke app store, tidak ada hambatan unduhan, tidak perlu instalasi dompet.
- Biaya hampir nol — Biaya transaksi TON rata-rata $0,005-0,01, menjadikan micropayment dan pembelian dalam aplikasi layak secara ekonomi tanpa batching atau kompleksitas L2.
- Finalitas sub-detik — Arsitektur sharded TON mencapai waktu blok ~5 detik dengan finalitas praktis dalam 1-2 blok. Pengguna melihat pembayaran terkonfirmasi dalam 10 detik.
TON Pay SDK: Gambaran Arsitektur
TON Pay SDK adalah pustaka integrasi pembayaran resmi untuk Telegram Mini Apps. Dirilis pada Q4 2025, SDK ini menyediakan API terpadu untuk:
- TON Connect — autentikasi dompet
- Pembayaran Toncoin — transfer TON native
- Pembayaran Jetton — standar token TRC-20: USDT, NOT, dan token kustom
- Tagihan langganan — tagihan Jetton berulang melalui smart contract yang telah diotorisasi
- Tanda terima pembayaran — bukti pembayaran on-chain dengan metadata
SDK tersedia sebagai paket npm (@tonconnect/pay-sdk) dan mendukung penggunaan sisi klien (browser) maupun sisi server (Node.js).
Prasyarat
Sebelum mengintegrasikan TON Pay SDK, pastikan Anda memiliki:
- Bot Telegram terdaftar dengan kapabilitas Mini App (
@BotFather→/newapp) - Alamat dompet TON untuk menerima pembayaran (dompet merchant)
- Node.js 20+ dan TypeScript 5.x untuk lingkungan pengembangan
- Pemahaman dasar tentang Telegram Mini App API (
window.Telegram.WebApp)
Langkah 1: Autentikasi Dompet TON Connect
TON Connect adalah protokol standar untuk menghubungkan dompet TON ke dApp dan Mini Apps. Ini berfungsi sebagai lapisan autentikasi — sebelum menerima pembayaran, Anda perlu mengetahui dari dompet mana pengguna ingin membayar.
Menyiapkan TON Connect
import { TonConnect } from "@tonconnect/sdk";
import { TonPaySDK } from "@tonconnect/pay-sdk";
// Inisialisasi TON Connect dengan manifest Anda
const tonConnect = new TonConnect({
manifestUrl: "https://yourapp.com/tonconnect-manifest.json",
});
// Manifest menjelaskan Mini App Anda ke dompet
// Host JSON ini di domain Anda:
// {
// "url": "https://yourapp.com",
// "name": "Your Mini App",
// "iconUrl": "https://yourapp.com/icon.png"
// }
// Periksa apakah pengguna memiliki dompet yang terhubung sebelumnya
const existingWallet = tonConnect.wallet;
if (existingWallet) {
console.log("Terhubung:", existingWallet.account.address);
}
Alur Koneksi Dompet
Alur koneksi dompet berbeda tergantung pada penyedia dompet pengguna:
import { toUserFriendlyAddress } from "@tonconnect/sdk";
async function connectWallet(): Promise<string> {
const walletList = await tonConnect.getWallets();
// Untuk Telegram Mini Apps, prioritaskan TON Space (bawaan)
const tonSpace = walletList.find(
(w) => w.appName === "tonspace"
);
if (tonSpace) {
await tonConnect.connect({
jsBridgeKey: tonSpace.jsBridgeKey,
});
} else {
const universalLink = tonConnect.connect({
universalLink: walletList[0].universalLink,
bridgeUrl: walletList[0].bridgeUrl,
});
window.open(universalLink, "_blank");
}
return new Promise((resolve) => {
tonConnect.onStatusChange((wallet) => {
if (wallet) {
const address = toUserFriendlyAddress(
wallet.account.address
);
resolve(address);
}
});
});
}
Persistensi Sesi
Sesi TON Connect bertahan di antara restart Mini App. SDK menyimpan data sesi di localStorage. Pada peluncuran berikutnya, periksa koneksi yang ada sebelum meminta pengguna:
async function initAuth(): Promise<string | null> {
await tonConnect.restoreConnection();
if (tonConnect.connected && tonConnect.wallet) {
return toUserFriendlyAddress(
tonConnect.wallet.account.address
);
}
return null;
}
Langkah 2: Menerima Pembayaran Toncoin
Setelah dompet terhubung, Anda dapat meminta transfer TON native menggunakan TON Pay SDK.
Permintaan Pembayaran Sederhana
import { TonPaySDK, PaymentRequest } from "@tonconnect/pay-sdk";
const tonPay = new TonPaySDK({
tonConnect,
merchantWallet: "EQD...alamat-merchant-anda",
webhookUrl: "https://yourapi.com/webhooks/ton-pay",
});
async function requestPayment(
amount: number,
orderId: string
): Promise<string> {
const payment: PaymentRequest = {
amount: amount.toString(),
payload: orderId,
description: `Pesanan #${orderId}`,
};
const result = await tonPay.requestPayment(payment);
if (result.status === "confirmed") {
return result.txHash;
} else if (result.status === "rejected") {
throw new Error("Pembayaran ditolak oleh pengguna");
} else {
throw new Error(`Pembayaran gagal: ${result.error}`);
}
}
Verifikasi Pembayaran Sisi Server
Jangan pernah mempercayai konfirmasi pembayaran sisi klien saja. Verifikasi setiap pembayaran di backend Anda:
import { TonClient } from "@ton/ton";
import { Address, fromNano } from "@ton/core";
const tonClient = new TonClient({
endpoint: "https://toncenter.com/api/v2/jsonRPC",
apiKey: process.env.TONCENTER_API_KEY,
});
async function verifyPayment(
txHash: string,
expectedAmount: string,
expectedPayload: string,
merchantAddress: string
): Promise<boolean> {
const tx = await tonClient.getTransaction(
Address.parse(merchantAddress),
txHash
);
if (!tx) return false;
const receivedAmount = fromNano(tx.inMessage?.value ?? 0n);
if (parseFloat(receivedAmount) < parseFloat(expectedAmount)) {
return false;
}
const payload = tx.inMessage?.body?.toString() ?? "";
if (payload !== expectedPayload) {
return false;
}
return true;
}
Langkah 3: Pembayaran Jetton (Token)
Jetton adalah padanan TON dari token ERC-20. Jetton yang paling umum untuk pembayaran adalah USDT di TON (Tether), yang memiliki lebih dari $1,2 miliar dalam sirkulasi di jaringan TON per Maret 2026.
Meminta Pembayaran Jetton
import { JettonPaymentRequest } from "@tonconnect/pay-sdk";
async function requestUSDTPayment(
amount: number,
orderId: string
): Promise<string> {
const USDT_MASTER = "EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs";
const payment: JettonPaymentRequest = {
jettonMaster: USDT_MASTER,
amount: (amount * 1e6).toString(),
payload: orderId,
description: `$${amount} USDT — Pesanan #${orderId}`,
forwardTonAmount: "50000000",
};
const result = await tonPay.requestJettonPayment(payment);
if (result.status === "confirmed") {
return result.txHash;
}
throw new Error(`Pembayaran Jetton gagal: ${result.error}`);
}
Langkah 4: Tagihan Langganan
TON Pay SDK mendukung pembayaran berulang melalui kontrak langganan yang telah diotorisasi. Pengguna menyetujui jumlah tagihan maksimum dan frekuensi, dan backend Anda dapat memicu tagihan tanpa interaksi pengguna tambahan.
import { SubscriptionRequest } from "@tonconnect/pay-sdk";
async function createSubscription(
userId: string
): Promise<string> {
const subscription: SubscriptionRequest = {
jettonMaster: USDT_MASTER,
amount: "4990000",
period: 30 * 24 * 60 * 60,
maxCharges: 12,
payload: `sub-${userId}`,
description: "Premium — $4,99/bulan",
};
const result = await tonPay.createSubscription(subscription);
if (result.status === "active") {
return result.subscriptionAddress;
}
throw new Error("Pembuatan langganan gagal");
}
Strategi Monetisasi untuk Telegram Mini Apps
Pembayaran hanyalah satu bagian dari teka-teki monetisasi. Berikut cara Mini Apps yang sukses menggabungkan beberapa aliran pendapatan:
1. Platform Iklan Telegram
Platform iklan native Telegram memungkinkan Mini Apps menampilkan iklan dan menghasilkan pendapatan dalam TON. Integrasi memerlukan pendaftaran sebagai publisher melalui @AdsBot.
Pendapatan per tayangan bervariasi menurut geografi, tetapi Mini Apps teratas melaporkan $5-15 eCPM untuk iklan video berhadiah di negara Tier 1.
2. Pembelian Dalam Aplikasi via Telegram Stars
Telegram Stars adalah mata uang virtual bawaan Telegram, tersedia sejak 2024. Pengguna membeli Stars dengan fiat (Apple Pay, Google Pay, kartu kredit) dan menggunakannya di Mini Apps. Pengembang menerima 70% dari pendapatan Stars.
3. Monetisasi Kripto-Native
Gabungkan pembayaran TON Pay SDK dengan mekanika DeFi:
- Akses token-gated — memerlukan kepemilikan Jetton atau SBT (Soulbound Token) tertentu untuk mengakses fitur premium
- Marketplace NFT — jual koleksi digital (TON NFT menggunakan standar TEP-62)
- Hadiah staking — biarkan pengguna melakukan staking TON atau Jetton di smart contract Mini App Anda untuk yield
- Komisi referral — bayar bonus referral dalam Jetton melalui smart contract
Perbandingan Model Monetisasi
| Model | Metode Pembayaran | Bagian Pengembang | Hambatan Pengguna | Terbaik Untuk |
|---|---|---|---|---|
| Iklan Telegram | Tayangan iklan | 50-70% pendapatan iklan | Rendah (pasif) | Aplikasi gratis dengan DAU tinggi |
| Telegram Stars | Fiat → Stars | 70% | Sedang (pembelian dalam aplikasi) | Barang digital, game kasual |
| TON Pay (Toncoin) | Dompet kripto | 100% (minus gas) | Lebih tinggi (perlu dompet) | Pengguna kripto-native |
| TON Pay (USDT) | Dompet kripto | 100% (minus gas) | Lebih tinggi (perlu dompet) | Transaksi nilai stabil |
| Langganan | Dompet kripto | 100% (minus gas) | Sedang (persetujuan sekali) | SaaS, konten premium |
Daftar Periksa Deployment Produksi
Sebelum meluncurkan Mini App dengan fitur pembayaran:
- Keamanan dompet merchant — gunakan dompet multisig (misalnya TON Safe) untuk menerima pembayaran. Jangan pernah menggunakan dompet hot single-key untuk dana merchant.
- Verifikasi pembayaran — selalu verifikasi pembayaran di sisi server. Periksa jumlah, payload, dan alamat pengirim.
- Penanganan error — tangani timeout jaringan, transaksi ditolak, dan saldo tidak cukup dengan baik. Tampilkan pesan error yang jelas.
- Kebijakan pengembalian — implementasikan mekanisme pengembalian. Transaksi TON tidak dapat dibatalkan, sehingga pengembalian memerlukan transaksi keluar terpisah.
- Rate limiting — lindungi endpoint webhook pembayaran dari penyalahgunaan. Validasi tanda tangan webhook.
- Logging — catat semua event pembayaran dengan hash transaksi untuk penyelesaian sengketa.
- Pengujian — gunakan testnet TON untuk pengembangan. TON Pay SDK mendukung mode testnet melalui flag konfigurasi.
Pertanyaan yang Sering Diajukan
Berapa banyak pengguna yang dapat dijangkau TON Mini Apps?
Telegram memiliki 950M+ pengguna aktif bulanan. Mini Apps dapat diakses oleh semua orang tanpa menginstal apa pun. Mini Apps teratas (Notcoin, Hamster Kombat) telah menjangkau 30-40 juta pengguna. Pasar yang dapat dijangkau secara realistis untuk Mini App yang terdistribusi dengan baik adalah 1-10 juta pengguna.
Berapa biaya transaksi untuk pembayaran TON?
Transfer TON native memerlukan biaya sekitar 0,005-0,01 TON (0,01-0,02 pada harga saat ini). Transfer Jetton sedikit lebih mahal karena eksekusi smart contract tambahan, biasanya 0,03-0,05 TON (0,06-0,10). Biaya ini dibayar oleh pengirim, bukan merchant.
Bisakah saya menerima pembayaran fiat di Telegram Mini App?
Ya, melalui Telegram Stars (bawaan) atau penyedia pembayaran pihak ketiga. Telegram Stars menggunakan infrastruktur pembayaran native Telegram dengan dukungan Apple Pay, Google Pay, dan kartu kredit. Untuk pemrosesan fiat langsung, Anda dapat mengintegrasikan Stripe atau penyedia lain, tetapi ketentuan Telegram mengharuskan penggunaan Bot Payments API mereka.
Apakah KYC diperlukan untuk menerima pembayaran TON?
Untuk merchant: tergantung pada yurisdiksi dan volume transaksi Anda. Sebagian besar negara memerlukan lisensi transmitter uang atau prosesor pembayaran di atas ambang tertentu. Untuk pengguna: pembuatan dompet TON tidak memerlukan KYC, tetapi bursa terpusat tempat pengguna membeli TON menerapkan KYC.
Apa perbedaan antara TON dan Ethereum untuk pembayaran?
TON menawarkan biaya lebih rendah ($0,01 vs $0,50-5,00 pada Ethereum L1), finalitas lebih cepat (10 detik vs 12-15 menit untuk finalitas kuat pada Ethereum), dan distribusi bawaan Telegram. Ethereum memiliki ekosistem DeFi yang lebih besar, lebih banyak adopsi institusional, dan jaminan desentralisasi yang lebih kuat. Untuk aplikasi pembayaran yang menghadap konsumen, integrasi TON dengan Telegram adalah keunggulan yang menentukan.
Bagaimana menangani sengketa dan chargeback?
Pembayaran blockchain tidak dapat dibatalkan — tidak ada chargeback. Anda harus mengimplementasikan sistem pengembalian dan penyelesaian sengketa sendiri. Praktik terbaik: tahan dana di smart contract escrow untuk periode sengketa (24-72 jam) sebelum melepaskan ke dompet merchant.