[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-membangun-di-ton-2026-pembayaran-kripto-telegram-mini-apps-ton-pay-sdk":3},{"article":4,"author":55},{"id":5,"category_id":6,"title":7,"slug":8,"excerpt":9,"content_md":10,"content_html":11,"locale":12,"author_id":13,"published":14,"published_at":15,"meta_title":16,"meta_description":17,"focus_keyword":18,"og_image":19,"canonical_url":19,"robots_meta":20,"created_at":15,"updated_at":15,"tags":21,"category_name":29,"related_articles":35},"d0000000-0000-0000-0000-000000000594","a0000000-0000-0000-0000-000000000024","Membangun di TON pada 2026: Pembayaran Kripto di Telegram Mini Apps dengan TON Pay SDK","membangun-di-ton-2026-pembayaran-kripto-telegram-mini-apps-ton-pay-sdk","Ekosistem TON telah berkembang hingga 500M+ pengguna aktif bulanan Mini App, 3600+ aplikasi, dan 400M+ dompet. Panduan ini membahas integrasi TON Pay SDK untuk pembayaran kripto di Telegram Mini Apps, dari autentikasi dompet hingga transfer Jetton.","## Ekosistem TON pada 2026\n\nThe 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:\n\n- **500M+ pengguna aktif bulanan** di seluruh Telegram Mini Apps\n- **3.600+ Mini Apps aktif** yang terdaftar di katalog Telegram Mini App\n- **400M+ dompet TON** dibuat melalui Telegram Wallet, Tonkeeper, dan TON Space\n- **$4,2 miliar total nilai terkunci** di protokol DeFi TON\n- **12 juta transaksi on-chain harian** di mainnet TON\n\nAngka-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.\n\n### Mengapa TON untuk Pembayaran?\n\nBagi pengembang yang membangun aplikasi dengan fitur pembayaran, TON menawarkan tiga keunggulan struktural dibanding blockchain lain:\n\n1. **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.\n2. **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.\n3. **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.\n\n## TON Pay SDK: Gambaran Arsitektur\n\nTON Pay SDK adalah pustaka integrasi pembayaran resmi untuk Telegram Mini Apps. Dirilis pada Q4 2025, SDK ini menyediakan API terpadu untuk:\n\n- **TON Connect** — autentikasi dompet\n- **Pembayaran Toncoin** — transfer TON native\n- **Pembayaran Jetton** — standar token TRC-20: USDT, NOT, dan token kustom\n- **Tagihan langganan** — tagihan Jetton berulang melalui smart contract yang telah diotorisasi\n- **Tanda terima pembayaran** — bukti pembayaran on-chain dengan metadata\n\nSDK tersedia sebagai paket npm (`@tonconnect\u002Fpay-sdk`) dan mendukung penggunaan sisi klien (browser) maupun sisi server (Node.js).\n\n### Prasyarat\n\nSebelum mengintegrasikan TON Pay SDK, pastikan Anda memiliki:\n\n1. Bot Telegram terdaftar dengan kapabilitas Mini App (`@BotFather` → `\u002Fnewapp`)\n2. Alamat dompet TON untuk menerima pembayaran (dompet merchant)\n3. Node.js 20+ dan TypeScript 5.x untuk lingkungan pengembangan\n4. Pemahaman dasar tentang Telegram Mini App API (`window.Telegram.WebApp`)\n\n## Langkah 1: Autentikasi Dompet TON Connect\n\nTON 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.\n\n### Menyiapkan TON Connect\n\n```typescript\nimport { TonConnect } from \"@tonconnect\u002Fsdk\";\nimport { TonPaySDK } from \"@tonconnect\u002Fpay-sdk\";\n\n\u002F\u002F Inisialisasi TON Connect dengan manifest Anda\nconst tonConnect = new TonConnect({\n  manifestUrl: \"https:\u002F\u002Fyourapp.com\u002Ftonconnect-manifest.json\",\n});\n\n\u002F\u002F Manifest menjelaskan Mini App Anda ke dompet\n\u002F\u002F Host JSON ini di domain Anda:\n\u002F\u002F {\n\u002F\u002F   \"url\": \"https:\u002F\u002Fyourapp.com\",\n\u002F\u002F   \"name\": \"Your Mini App\",\n\u002F\u002F   \"iconUrl\": \"https:\u002F\u002Fyourapp.com\u002Ficon.png\"\n\u002F\u002F }\n\n\u002F\u002F Periksa apakah pengguna memiliki dompet yang terhubung sebelumnya\nconst existingWallet = tonConnect.wallet;\nif (existingWallet) {\n  console.log(\"Terhubung:\", existingWallet.account.address);\n}\n```\n\n### Alur Koneksi Dompet\n\nAlur koneksi dompet berbeda tergantung pada penyedia dompet pengguna:\n\n```typescript\nimport { toUserFriendlyAddress } from \"@tonconnect\u002Fsdk\";\n\nasync function connectWallet(): Promise\u003Cstring> {\n  const walletList = await tonConnect.getWallets();\n\n  \u002F\u002F Untuk Telegram Mini Apps, prioritaskan TON Space (bawaan)\n  const tonSpace = walletList.find(\n    (w) => w.appName === \"tonspace\"\n  );\n\n  if (tonSpace) {\n    await tonConnect.connect({\n      jsBridgeKey: tonSpace.jsBridgeKey,\n    });\n  } else {\n    const universalLink = tonConnect.connect({\n      universalLink: walletList[0].universalLink,\n      bridgeUrl: walletList[0].bridgeUrl,\n    });\n    window.open(universalLink, \"_blank\");\n  }\n\n  return new Promise((resolve) => {\n    tonConnect.onStatusChange((wallet) => {\n      if (wallet) {\n        const address = toUserFriendlyAddress(\n          wallet.account.address\n        );\n        resolve(address);\n      }\n    });\n  });\n}\n```\n\n### Persistensi Sesi\n\nSesi TON Connect bertahan di antara restart Mini App. SDK menyimpan data sesi di `localStorage`. Pada peluncuran berikutnya, periksa koneksi yang ada sebelum meminta pengguna:\n\n```typescript\nasync function initAuth(): Promise\u003Cstring | null> {\n  await tonConnect.restoreConnection();\n  if (tonConnect.connected && tonConnect.wallet) {\n    return toUserFriendlyAddress(\n      tonConnect.wallet.account.address\n    );\n  }\n  return null;\n}\n```\n\n## Langkah 2: Menerima Pembayaran Toncoin\n\nSetelah dompet terhubung, Anda dapat meminta transfer TON native menggunakan TON Pay SDK.\n\n### Permintaan Pembayaran Sederhana\n\n```typescript\nimport { TonPaySDK, PaymentRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nconst tonPay = new TonPaySDK({\n  tonConnect,\n  merchantWallet: \"EQD...alamat-merchant-anda\",\n  webhookUrl: \"https:\u002F\u002Fyourapi.com\u002Fwebhooks\u002Fton-pay\",\n});\n\nasync function requestPayment(\n  amount: number,\n  orderId: string\n): Promise\u003Cstring> {\n  const payment: PaymentRequest = {\n    amount: amount.toString(),\n    payload: orderId,\n    description: `Pesanan #${orderId}`,\n  };\n\n  const result = await tonPay.requestPayment(payment);\n\n  if (result.status === \"confirmed\") {\n    return result.txHash;\n  } else if (result.status === \"rejected\") {\n    throw new Error(\"Pembayaran ditolak oleh pengguna\");\n  } else {\n    throw new Error(`Pembayaran gagal: ${result.error}`);\n  }\n}\n```\n\n### Verifikasi Pembayaran Sisi Server\n\nJangan pernah mempercayai konfirmasi pembayaran sisi klien saja. Verifikasi setiap pembayaran di backend Anda:\n\n```typescript\nimport { TonClient } from \"@ton\u002Fton\";\nimport { Address, fromNano } from \"@ton\u002Fcore\";\n\nconst tonClient = new TonClient({\n  endpoint: \"https:\u002F\u002Ftoncenter.com\u002Fapi\u002Fv2\u002FjsonRPC\",\n  apiKey: process.env.TONCENTER_API_KEY,\n});\n\nasync function verifyPayment(\n  txHash: string,\n  expectedAmount: string,\n  expectedPayload: string,\n  merchantAddress: string\n): Promise\u003Cboolean> {\n  const tx = await tonClient.getTransaction(\n    Address.parse(merchantAddress),\n    txHash\n  );\n\n  if (!tx) return false;\n\n  const receivedAmount = fromNano(tx.inMessage?.value ?? 0n);\n  if (parseFloat(receivedAmount) \u003C parseFloat(expectedAmount)) {\n    return false;\n  }\n\n  const payload = tx.inMessage?.body?.toString() ?? \"\";\n  if (payload !== expectedPayload) {\n    return false;\n  }\n\n  return true;\n}\n```\n\n## Langkah 3: Pembayaran Jetton (Token)\n\nJetton 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.\n\n### Meminta Pembayaran Jetton\n\n```typescript\nimport { JettonPaymentRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nasync function requestUSDTPayment(\n  amount: number,\n  orderId: string\n): Promise\u003Cstring> {\n  const USDT_MASTER = \"EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs\";\n\n  const payment: JettonPaymentRequest = {\n    jettonMaster: USDT_MASTER,\n    amount: (amount * 1e6).toString(),\n    payload: orderId,\n    description: `$${amount} USDT — Pesanan #${orderId}`,\n    forwardTonAmount: \"50000000\",\n  };\n\n  const result = await tonPay.requestJettonPayment(payment);\n\n  if (result.status === \"confirmed\") {\n    return result.txHash;\n  }\n  throw new Error(`Pembayaran Jetton gagal: ${result.error}`);\n}\n```\n\n## Langkah 4: Tagihan Langganan\n\nTON 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.\n\n```typescript\nimport { SubscriptionRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nasync function createSubscription(\n  userId: string\n): Promise\u003Cstring> {\n  const subscription: SubscriptionRequest = {\n    jettonMaster: USDT_MASTER,\n    amount: \"4990000\",\n    period: 30 * 24 * 60 * 60,\n    maxCharges: 12,\n    payload: `sub-${userId}`,\n    description: \"Premium — $4,99\u002Fbulan\",\n  };\n\n  const result = await tonPay.createSubscription(subscription);\n\n  if (result.status === \"active\") {\n    return result.subscriptionAddress;\n  }\n  throw new Error(\"Pembuatan langganan gagal\");\n}\n```\n\n## Strategi Monetisasi untuk Telegram Mini Apps\n\nPembayaran hanyalah satu bagian dari teka-teki monetisasi. Berikut cara Mini Apps yang sukses menggabungkan beberapa aliran pendapatan:\n\n### 1. Platform Iklan Telegram\n\nPlatform iklan native Telegram memungkinkan Mini Apps menampilkan iklan dan menghasilkan pendapatan dalam TON. Integrasi memerlukan pendaftaran sebagai publisher melalui `@AdsBot`.\n\nPendapatan per tayangan bervariasi menurut geografi, tetapi Mini Apps teratas melaporkan **$5-15 eCPM** untuk iklan video berhadiah di negara Tier 1.\n\n### 2. Pembelian Dalam Aplikasi via Telegram Stars\n\nTelegram 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.\n\n### 3. Monetisasi Kripto-Native\n\nGabungkan pembayaran TON Pay SDK dengan mekanika DeFi:\n\n- **Akses token-gated** — memerlukan kepemilikan Jetton atau SBT (Soulbound Token) tertentu untuk mengakses fitur premium\n- **Marketplace NFT** — jual koleksi digital (TON NFT menggunakan standar TEP-62)\n- **Hadiah staking** — biarkan pengguna melakukan staking TON atau Jetton di smart contract Mini App Anda untuk yield\n- **Komisi referral** — bayar bonus referral dalam Jetton melalui smart contract\n\n### Perbandingan Model Monetisasi\n\n| Model | Metode Pembayaran | Bagian Pengembang | Hambatan Pengguna | Terbaik Untuk |\n|-------|-------------------|-------------------|-------------------|---------------|\n| Iklan Telegram | Tayangan iklan | 50-70% pendapatan iklan | Rendah (pasif) | Aplikasi gratis dengan DAU tinggi |\n| Telegram Stars | Fiat → Stars | 70% | Sedang (pembelian dalam aplikasi) | Barang digital, game kasual |\n| TON Pay (Toncoin) | Dompet kripto | 100% (minus gas) | Lebih tinggi (perlu dompet) | Pengguna kripto-native |\n| TON Pay (USDT) | Dompet kripto | 100% (minus gas) | Lebih tinggi (perlu dompet) | Transaksi nilai stabil |\n| Langganan | Dompet kripto | 100% (minus gas) | Sedang (persetujuan sekali) | SaaS, konten premium |\n\n## Daftar Periksa Deployment Produksi\n\nSebelum meluncurkan Mini App dengan fitur pembayaran:\n\n1. **Keamanan dompet merchant** — gunakan dompet multisig (misalnya TON Safe) untuk menerima pembayaran. Jangan pernah menggunakan dompet hot single-key untuk dana merchant.\n2. **Verifikasi pembayaran** — selalu verifikasi pembayaran di sisi server. Periksa jumlah, payload, dan alamat pengirim.\n3. **Penanganan error** — tangani timeout jaringan, transaksi ditolak, dan saldo tidak cukup dengan baik. Tampilkan pesan error yang jelas.\n4. **Kebijakan pengembalian** — implementasikan mekanisme pengembalian. Transaksi TON tidak dapat dibatalkan, sehingga pengembalian memerlukan transaksi keluar terpisah.\n5. **Rate limiting** — lindungi endpoint webhook pembayaran dari penyalahgunaan. Validasi tanda tangan webhook.\n6. **Logging** — catat semua event pembayaran dengan hash transaksi untuk penyelesaian sengketa.\n7. **Pengujian** — gunakan testnet TON untuk pengembangan. TON Pay SDK mendukung mode testnet melalui flag konfigurasi.\n\n## Pertanyaan yang Sering Diajukan\n\n### Berapa banyak pengguna yang dapat dijangkau TON Mini Apps?\n\nTelegram 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.\n\n### Berapa biaya transaksi untuk pembayaran TON?\n\nTransfer 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.\n\n### Bisakah saya menerima pembayaran fiat di Telegram Mini App?\n\nYa, 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.\n\n### Apakah KYC diperlukan untuk menerima pembayaran TON?\n\nUntuk 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.\n\n### Apa perbedaan antara TON dan Ethereum untuk pembayaran?\n\nTON 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.\n\n### Bagaimana menangani sengketa dan chargeback?\n\nPembayaran 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.","\u003Ch2 id=\"ekosistem-ton-pada-2026\">Ekosistem TON pada 2026\u003C\u002Fh2>\n\u003Cp>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:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>500M+ pengguna aktif bulanan\u003C\u002Fstrong> di seluruh Telegram Mini Apps\u003C\u002Fli>\n\u003Cli>\u003Cstrong>3.600+ Mini Apps aktif\u003C\u002Fstrong> yang terdaftar di katalog Telegram Mini App\u003C\u002Fli>\n\u003Cli>\u003Cstrong>400M+ dompet TON\u003C\u002Fstrong> dibuat melalui Telegram Wallet, Tonkeeper, dan TON Space\u003C\u002Fli>\n\u003Cli>\u003Cstrong>$4,2 miliar total nilai terkunci\u003C\u002Fstrong> di protokol DeFi TON\u003C\u002Fli>\n\u003Cli>\u003Cstrong>12 juta transaksi on-chain harian\u003C\u002Fstrong> di mainnet TON\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>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: \u003Cstrong>integrasi Telegram\u003C\u002Fstrong>. Dengan 950M+ pengguna aktif Telegram bulanan di seluruh dunia, bahkan tingkat konversi kecil ke penggunaan Mini App dan dompet menghasilkan angka yang sangat besar.\u003C\u002Fp>\n\u003Ch3>Mengapa TON untuk Pembayaran?\u003C\u002Fh3>\n\u003Cp>Bagi pengembang yang membangun aplikasi dengan fitur pembayaran, TON menawarkan tiga keunggulan struktural dibanding blockchain lain:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Distribusi\u003C\u002Fstrong> — 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Biaya hampir nol\u003C\u002Fstrong> — Biaya transaksi TON rata-rata $0,005-0,01, menjadikan micropayment dan pembelian dalam aplikasi layak secara ekonomi tanpa batching atau kompleksitas L2.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Finalitas sub-detik\u003C\u002Fstrong> — Arsitektur sharded TON mencapai waktu blok ~5 detik dengan finalitas praktis dalam 1-2 blok. Pengguna melihat pembayaran terkonfirmasi dalam 10 detik.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"ton-pay-sdk-gambaran-arsitektur\">TON Pay SDK: Gambaran Arsitektur\u003C\u002Fh2>\n\u003Cp>TON Pay SDK adalah pustaka integrasi pembayaran resmi untuk Telegram Mini Apps. Dirilis pada Q4 2025, SDK ini menyediakan API terpadu untuk:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>TON Connect\u003C\u002Fstrong> — autentikasi dompet\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Pembayaran Toncoin\u003C\u002Fstrong> — transfer TON native\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Pembayaran Jetton\u003C\u002Fstrong> — standar token TRC-20: USDT, NOT, dan token kustom\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Tagihan langganan\u003C\u002Fstrong> — tagihan Jetton berulang melalui smart contract yang telah diotorisasi\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Tanda terima pembayaran\u003C\u002Fstrong> — bukti pembayaran on-chain dengan metadata\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>SDK tersedia sebagai paket npm (\u003Ccode>@tonconnect\u002Fpay-sdk\u003C\u002Fcode>) dan mendukung penggunaan sisi klien (browser) maupun sisi server (Node.js).\u003C\u002Fp>\n\u003Ch3>Prasyarat\u003C\u002Fh3>\n\u003Cp>Sebelum mengintegrasikan TON Pay SDK, pastikan Anda memiliki:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Bot Telegram terdaftar dengan kapabilitas Mini App (\u003Ccode>@BotFather\u003C\u002Fcode> → \u003Ccode>\u002Fnewapp\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Alamat dompet TON untuk menerima pembayaran (dompet merchant)\u003C\u002Fli>\n\u003Cli>Node.js 20+ dan TypeScript 5.x untuk lingkungan pengembangan\u003C\u002Fli>\n\u003Cli>Pemahaman dasar tentang Telegram Mini App API (\u003Ccode>window.Telegram.WebApp\u003C\u002Fcode>)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"langkah-1-autentikasi-dompet-ton-connect\">Langkah 1: Autentikasi Dompet TON Connect\u003C\u002Fh2>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch3>Menyiapkan TON Connect\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { TonConnect } from \"@tonconnect\u002Fsdk\";\nimport { TonPaySDK } from \"@tonconnect\u002Fpay-sdk\";\n\n\u002F\u002F Inisialisasi TON Connect dengan manifest Anda\nconst tonConnect = new TonConnect({\n  manifestUrl: \"https:\u002F\u002Fyourapp.com\u002Ftonconnect-manifest.json\",\n});\n\n\u002F\u002F Manifest menjelaskan Mini App Anda ke dompet\n\u002F\u002F Host JSON ini di domain Anda:\n\u002F\u002F {\n\u002F\u002F   \"url\": \"https:\u002F\u002Fyourapp.com\",\n\u002F\u002F   \"name\": \"Your Mini App\",\n\u002F\u002F   \"iconUrl\": \"https:\u002F\u002Fyourapp.com\u002Ficon.png\"\n\u002F\u002F }\n\n\u002F\u002F Periksa apakah pengguna memiliki dompet yang terhubung sebelumnya\nconst existingWallet = tonConnect.wallet;\nif (existingWallet) {\n  console.log(\"Terhubung:\", existingWallet.account.address);\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Alur Koneksi Dompet\u003C\u002Fh3>\n\u003Cp>Alur koneksi dompet berbeda tergantung pada penyedia dompet pengguna:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { toUserFriendlyAddress } from \"@tonconnect\u002Fsdk\";\n\nasync function connectWallet(): Promise&lt;string&gt; {\n  const walletList = await tonConnect.getWallets();\n\n  \u002F\u002F Untuk Telegram Mini Apps, prioritaskan TON Space (bawaan)\n  const tonSpace = walletList.find(\n    (w) =&gt; w.appName === \"tonspace\"\n  );\n\n  if (tonSpace) {\n    await tonConnect.connect({\n      jsBridgeKey: tonSpace.jsBridgeKey,\n    });\n  } else {\n    const universalLink = tonConnect.connect({\n      universalLink: walletList[0].universalLink,\n      bridgeUrl: walletList[0].bridgeUrl,\n    });\n    window.open(universalLink, \"_blank\");\n  }\n\n  return new Promise((resolve) =&gt; {\n    tonConnect.onStatusChange((wallet) =&gt; {\n      if (wallet) {\n        const address = toUserFriendlyAddress(\n          wallet.account.address\n        );\n        resolve(address);\n      }\n    });\n  });\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Persistensi Sesi\u003C\u002Fh3>\n\u003Cp>Sesi TON Connect bertahan di antara restart Mini App. SDK menyimpan data sesi di \u003Ccode>localStorage\u003C\u002Fcode>. Pada peluncuran berikutnya, periksa koneksi yang ada sebelum meminta pengguna:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-typescript\">async function initAuth(): Promise&lt;string | null&gt; {\n  await tonConnect.restoreConnection();\n  if (tonConnect.connected &amp;&amp; tonConnect.wallet) {\n    return toUserFriendlyAddress(\n      tonConnect.wallet.account.address\n    );\n  }\n  return null;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"langkah-2-menerima-pembayaran-toncoin\">Langkah 2: Menerima Pembayaran Toncoin\u003C\u002Fh2>\n\u003Cp>Setelah dompet terhubung, Anda dapat meminta transfer TON native menggunakan TON Pay SDK.\u003C\u002Fp>\n\u003Ch3>Permintaan Pembayaran Sederhana\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { TonPaySDK, PaymentRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nconst tonPay = new TonPaySDK({\n  tonConnect,\n  merchantWallet: \"EQD...alamat-merchant-anda\",\n  webhookUrl: \"https:\u002F\u002Fyourapi.com\u002Fwebhooks\u002Fton-pay\",\n});\n\nasync function requestPayment(\n  amount: number,\n  orderId: string\n): Promise&lt;string&gt; {\n  const payment: PaymentRequest = {\n    amount: amount.toString(),\n    payload: orderId,\n    description: `Pesanan #${orderId}`,\n  };\n\n  const result = await tonPay.requestPayment(payment);\n\n  if (result.status === \"confirmed\") {\n    return result.txHash;\n  } else if (result.status === \"rejected\") {\n    throw new Error(\"Pembayaran ditolak oleh pengguna\");\n  } else {\n    throw new Error(`Pembayaran gagal: ${result.error}`);\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Verifikasi Pembayaran Sisi Server\u003C\u002Fh3>\n\u003Cp>Jangan pernah mempercayai konfirmasi pembayaran sisi klien saja. Verifikasi setiap pembayaran di backend Anda:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { TonClient } from \"@ton\u002Fton\";\nimport { Address, fromNano } from \"@ton\u002Fcore\";\n\nconst tonClient = new TonClient({\n  endpoint: \"https:\u002F\u002Ftoncenter.com\u002Fapi\u002Fv2\u002FjsonRPC\",\n  apiKey: process.env.TONCENTER_API_KEY,\n});\n\nasync function verifyPayment(\n  txHash: string,\n  expectedAmount: string,\n  expectedPayload: string,\n  merchantAddress: string\n): Promise&lt;boolean&gt; {\n  const tx = await tonClient.getTransaction(\n    Address.parse(merchantAddress),\n    txHash\n  );\n\n  if (!tx) return false;\n\n  const receivedAmount = fromNano(tx.inMessage?.value ?? 0n);\n  if (parseFloat(receivedAmount) &lt; parseFloat(expectedAmount)) {\n    return false;\n  }\n\n  const payload = tx.inMessage?.body?.toString() ?? \"\";\n  if (payload !== expectedPayload) {\n    return false;\n  }\n\n  return true;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"langkah-3-pembayaran-jetton-token\">Langkah 3: Pembayaran Jetton (Token)\u003C\u002Fh2>\n\u003Cp>Jetton adalah padanan TON dari token ERC-20. Jetton yang paling umum untuk pembayaran adalah \u003Cstrong>USDT di TON\u003C\u002Fstrong> (Tether), yang memiliki lebih dari $1,2 miliar dalam sirkulasi di jaringan TON per Maret 2026.\u003C\u002Fp>\n\u003Ch3>Meminta Pembayaran Jetton\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { JettonPaymentRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nasync function requestUSDTPayment(\n  amount: number,\n  orderId: string\n): Promise&lt;string&gt; {\n  const USDT_MASTER = \"EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs\";\n\n  const payment: JettonPaymentRequest = {\n    jettonMaster: USDT_MASTER,\n    amount: (amount * 1e6).toString(),\n    payload: orderId,\n    description: `$${amount} USDT — Pesanan #${orderId}`,\n    forwardTonAmount: \"50000000\",\n  };\n\n  const result = await tonPay.requestJettonPayment(payment);\n\n  if (result.status === \"confirmed\") {\n    return result.txHash;\n  }\n  throw new Error(`Pembayaran Jetton gagal: ${result.error}`);\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"langkah-4-tagihan-langganan\">Langkah 4: Tagihan Langganan\u003C\u002Fh2>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { SubscriptionRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nasync function createSubscription(\n  userId: string\n): Promise&lt;string&gt; {\n  const subscription: SubscriptionRequest = {\n    jettonMaster: USDT_MASTER,\n    amount: \"4990000\",\n    period: 30 * 24 * 60 * 60,\n    maxCharges: 12,\n    payload: `sub-${userId}`,\n    description: \"Premium — $4,99\u002Fbulan\",\n  };\n\n  const result = await tonPay.createSubscription(subscription);\n\n  if (result.status === \"active\") {\n    return result.subscriptionAddress;\n  }\n  throw new Error(\"Pembuatan langganan gagal\");\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"strategi-monetisasi-untuk-telegram-mini-apps\">Strategi Monetisasi untuk Telegram Mini Apps\u003C\u002Fh2>\n\u003Cp>Pembayaran hanyalah satu bagian dari teka-teki monetisasi. Berikut cara Mini Apps yang sukses menggabungkan beberapa aliran pendapatan:\u003C\u002Fp>\n\u003Ch3>1. Platform Iklan Telegram\u003C\u002Fh3>\n\u003Cp>Platform iklan native Telegram memungkinkan Mini Apps menampilkan iklan dan menghasilkan pendapatan dalam TON. Integrasi memerlukan pendaftaran sebagai publisher melalui \u003Ccode>@AdsBot\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Pendapatan per tayangan bervariasi menurut geografi, tetapi Mini Apps teratas melaporkan \u003Cstrong>$5-15 eCPM\u003C\u002Fstrong> untuk iklan video berhadiah di negara Tier 1.\u003C\u002Fp>\n\u003Ch3>2. Pembelian Dalam Aplikasi via Telegram Stars\u003C\u002Fh3>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch3>3. Monetisasi Kripto-Native\u003C\u002Fh3>\n\u003Cp>Gabungkan pembayaran TON Pay SDK dengan mekanika DeFi:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Akses token-gated\u003C\u002Fstrong> — memerlukan kepemilikan Jetton atau SBT (Soulbound Token) tertentu untuk mengakses fitur premium\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Marketplace NFT\u003C\u002Fstrong> — jual koleksi digital (TON NFT menggunakan standar TEP-62)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Hadiah staking\u003C\u002Fstrong> — biarkan pengguna melakukan staking TON atau Jetton di smart contract Mini App Anda untuk yield\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Komisi referral\u003C\u002Fstrong> — bayar bonus referral dalam Jetton melalui smart contract\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Perbandingan Model Monetisasi\u003C\u002Fh3>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Model\u003C\u002Fth>\u003Cth>Metode Pembayaran\u003C\u002Fth>\u003Cth>Bagian Pengembang\u003C\u002Fth>\u003Cth>Hambatan Pengguna\u003C\u002Fth>\u003Cth>Terbaik Untuk\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>Iklan Telegram\u003C\u002Ftd>\u003Ctd>Tayangan iklan\u003C\u002Ftd>\u003Ctd>50-70% pendapatan iklan\u003C\u002Ftd>\u003Ctd>Rendah (pasif)\u003C\u002Ftd>\u003Ctd>Aplikasi gratis dengan DAU tinggi\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Telegram Stars\u003C\u002Ftd>\u003Ctd>Fiat → Stars\u003C\u002Ftd>\u003Ctd>70%\u003C\u002Ftd>\u003Ctd>Sedang (pembelian dalam aplikasi)\u003C\u002Ftd>\u003Ctd>Barang digital, game kasual\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>TON Pay (Toncoin)\u003C\u002Ftd>\u003Ctd>Dompet kripto\u003C\u002Ftd>\u003Ctd>100% (minus gas)\u003C\u002Ftd>\u003Ctd>Lebih tinggi (perlu dompet)\u003C\u002Ftd>\u003Ctd>Pengguna kripto-native\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>TON Pay (USDT)\u003C\u002Ftd>\u003Ctd>Dompet kripto\u003C\u002Ftd>\u003Ctd>100% (minus gas)\u003C\u002Ftd>\u003Ctd>Lebih tinggi (perlu dompet)\u003C\u002Ftd>\u003Ctd>Transaksi nilai stabil\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Langganan\u003C\u002Ftd>\u003Ctd>Dompet kripto\u003C\u002Ftd>\u003Ctd>100% (minus gas)\u003C\u002Ftd>\u003Ctd>Sedang (persetujuan sekali)\u003C\u002Ftd>\u003Ctd>SaaS, konten premium\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch2 id=\"daftar-periksa-deployment-produksi\">Daftar Periksa Deployment Produksi\u003C\u002Fh2>\n\u003Cp>Sebelum meluncurkan Mini App dengan fitur pembayaran:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Keamanan dompet merchant\u003C\u002Fstrong> — gunakan dompet multisig (misalnya TON Safe) untuk menerima pembayaran. Jangan pernah menggunakan dompet hot single-key untuk dana merchant.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verifikasi pembayaran\u003C\u002Fstrong> — selalu verifikasi pembayaran di sisi server. Periksa jumlah, payload, dan alamat pengirim.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Penanganan error\u003C\u002Fstrong> — tangani timeout jaringan, transaksi ditolak, dan saldo tidak cukup dengan baik. Tampilkan pesan error yang jelas.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Kebijakan pengembalian\u003C\u002Fstrong> — implementasikan mekanisme pengembalian. Transaksi TON tidak dapat dibatalkan, sehingga pengembalian memerlukan transaksi keluar terpisah.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Rate limiting\u003C\u002Fstrong> — lindungi endpoint webhook pembayaran dari penyalahgunaan. Validasi tanda tangan webhook.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Logging\u003C\u002Fstrong> — catat semua event pembayaran dengan hash transaksi untuk penyelesaian sengketa.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Pengujian\u003C\u002Fstrong> — gunakan testnet TON untuk pengembangan. TON Pay SDK mendukung mode testnet melalui flag konfigurasi.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"pertanyaan-yang-sering-diajukan\">Pertanyaan yang Sering Diajukan\u003C\u002Fh2>\n\u003Ch3 id=\"berapa-banyak-pengguna-yang-dapat-dijangkau-ton-mini-apps\">Berapa banyak pengguna yang dapat dijangkau TON Mini Apps?\u003C\u002Fh3>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch3 id=\"berapa-biaya-transaksi-untuk-pembayaran-ton\">Berapa biaya transaksi untuk pembayaran TON?\u003C\u002Fh3>\n\u003Cp>Transfer TON native memerlukan biaya sekitar 0,005-0,01 TON (\u003Cspan class=\"math math-inline\">0,01-0,02 pada harga saat ini). Transfer Jetton sedikit lebih mahal karena eksekusi smart contract tambahan, biasanya 0,03-0,05 TON (\u003C\u002Fspan>0,06-0,10). Biaya ini dibayar oleh pengirim, bukan merchant.\u003C\u002Fp>\n\u003Ch3 id=\"bisakah-saya-menerima-pembayaran-fiat-di-telegram-mini-app\">Bisakah saya menerima pembayaran fiat di Telegram Mini App?\u003C\u002Fh3>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch3 id=\"apakah-kyc-diperlukan-untuk-menerima-pembayaran-ton\">Apakah KYC diperlukan untuk menerima pembayaran TON?\u003C\u002Fh3>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch3 id=\"apa-perbedaan-antara-ton-dan-ethereum-untuk-pembayaran\">Apa perbedaan antara TON dan Ethereum untuk pembayaran?\u003C\u002Fh3>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch3 id=\"bagaimana-menangani-sengketa-dan-chargeback\">Bagaimana menangani sengketa dan chargeback?\u003C\u002Fh3>\n\u003Cp>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.\u003C\u002Fp>\n","id","b0000000-0000-0000-0000-000000000001",true,"2026-03-28T10:44:44.340210Z","Membangun di TON pada 2026: Pembayaran Kripto di Telegram Mini Apps","Integrasikan TON Pay SDK ke Telegram Mini Apps. Panduan langkah demi langkah: autentikasi TON Connect, pembayaran Toncoin dan Jetton, langganan, dan strategi monetisasi.","TON Pay SDK Telegram Mini Apps",null,"index, follow",[22,27,31],{"id":23,"name":24,"slug":25,"created_at":26},"c0000000-0000-0000-0000-000000000015","TON","ton","2026-03-28T10:44:21.513630Z",{"id":28,"name":29,"slug":30,"created_at":26},"c0000000-0000-0000-0000-000000000010","Telegram","telegram",{"id":32,"name":33,"slug":34,"created_at":26},"c0000000-0000-0000-0000-000000000009","Web3","web3",[36,43,49],{"id":37,"title":38,"slug":39,"excerpt":40,"locale":12,"category_name":41,"published_at":42},"d0000000-0000-0000-0000-000000000596","Lapisan Interoperabilitas Ethereum: Bagaimana 55+ L2 Menjadi Satu Chain","lapisan-interoperabilitas-ethereum-bagaimana-55-l2-menjadi-satu-chain","Ethereum memiliki 55+ rollup Layer 2, memecah likuiditas dan pengalaman pengguna. Lapisan Interoperabilitas Ethereum — menggabungkan pesan lintas-rollup, shared sequencer, dan based rollup — bertujuan menyatukan mereka menjadi satu jaringan yang dapat dikomposisi.","Blockchain","2026-03-28T10:44:44.364342Z",{"id":44,"title":45,"slug":46,"excerpt":47,"locale":12,"category_name":41,"published_at":48},"d0000000-0000-0000-0000-000000000595","ZK Proofs Melampaui Rollups: Inferensi AI Terverifikasi di Ethereum","zk-proofs-melampaui-rollups-inferensi-ai-terverifikasi-ethereum","Zero-knowledge proofs bukan lagi sekadar alat penskalaan. Pada 2026, zkML memungkinkan inferensi AI terverifikasi on-chain, ZK coprocessor memindahkan komputasi berat off-chain dengan verifikasi on-chain, dan sistem pembuktian baru seperti SP1 dan Jolt menjadikannya praktis.","2026-03-28T10:44:44.358370Z",{"id":50,"title":51,"slug":52,"excerpt":53,"locale":12,"category_name":41,"published_at":54},"d0000000-0000-0000-0000-000000000572","EIP-7702 dalam Praktik: Membangun Alur Akun Pintar Setelah Pectra","eip-7702-dalam-praktik-membangun-alur-akun-pintar-setelah-pectra","EIP-7702 memungkinkan EOA Ethereum mana pun untuk sementara bertindak sebagai kontrak pintar dalam satu transaksi. Berikut cara mengimplementasikan transaksi batch, sponsorship gas, dan social recovery menggunakan primitif account abstraction baru.","2026-03-28T10:44:42.816894Z",{"id":13,"name":56,"slug":57,"bio":58,"photo_url":19,"linkedin":19,"role":59,"created_at":60,"updated_at":60},"Open Soft Team","open-soft-team","The engineering team at Open Soft, building premium software solutions from Bali, Indonesia.","Engineering Team","2026-03-28T08:31:22.226811Z"]