Geliştiriciler için TON Blockchain: Stars, USDT, TonConnect ve Telegram Ödemeleri
The Open Squad deneyiminden Telegram Mini App'lerde TON entegrasyonunun teknik derinlemesine incelemesi. Mimari, TonConnect, Jettons (USDT), Telegram Stars, escrow kontratları, güvenlik.
2026'da TON Blockchain "Telegram fanlarının kriptosu" değil — messenger'ın tüm ödeme yığınının altyapı katmanı. The Open Squad'da TON'u her ürünümüze entegre ettik: The Open Earn'de USDT ödemeleri, The Open Guarantor'da escrow akıllı kontratları. Bu rehber yol boyunca öğrendiklerimiz.
Telegram ürünleri için neden TON
Alternatifler:
- Stripe / PayPal — yavaş, pahalı (3–5%), hizmet verdiğimiz 50+ ülkedeki kullanıcılar için çalışmıyor
- Çok zincirli kripto cüzdanlar — UX kabusu: kullanıcıların ağları, adresleri, gas'ı bilmesi gerekiyor
- Çekimsiz iç bakiye — kullanıcılar buna güvenmiyor
TON üç sorunu aynı anda çözer:
- Düşük komisyonlar — işlem başına sentin küçük kesirleri (Stripe'taki $0.30+'a karşı)
- Hız — 5 saniyede finalite
- UX — TonConnect kullanıcıların adres kopyalamadan iki dokunuşla cüzdan bağlamasını sağlar
İki dakikada TON mimarisi
TON shard'lı bir PoS blockchain'idir. Yerel birim TON'dur. Üzerinde çalışanlar:
- Jettons — token standardı (TON'un ERC-20 muadili). TON üzerindeki USDT, Tether tarafından çıkarılan bir Jetton'dur
- NFTs — benzersiz token standardı
- Workchains / Shardchains — ölçeklendirme için shard'lar
Geliştiriciler için bu şu anlama gelir:
- Tek SDK (
@ton/ton,@ton/core) hem TON'u hem Jettons'u idare eder - Çoklu zincir karambolü yok
- Bir işlem, bir kontrattan diğerine giden mesajdır (cüzdanlar dahil her şey kontrattır)
TonConnect ile cüzdan bağlama
TonConnect, bir dApp'i kullanıcının cüzdanına bağlayan açık kaynak bir protokoldür. Tüm büyük TON cüzdanları destekler: Tonkeeper, MyTonWallet, Tonhub.
Bir Mini App'te şöyle görünür:
import { TonConnectUI } from "@tonconnect/ui";
const tonConnectUI = new TonConnectUI({
manifestUrl: "https://yourapp.com/tonconnect-manifest.json",
});
// Cüzdan seçici modalı aç
await tonConnectUI.openModal();
// Bağlantıdan sonra — cüzdan bilgisi mevcut:
const wallet = tonConnectUI.wallet;
console.log(wallet?.account.address);
Manifest (tonconnect-manifest.json) uygulamanızın metaverilerini içeren statik bir JSON'dur. Cüzdanlar ikonunuzu ve adınızı onay ekranında göstermek için bunu okur.
Ödeme alma: TON ve USDT
Senaryo 1: TON al. Her kullanıcı için (HD-wallet alt-hesabı üzerinden) bir depozit adresi oluştur. Bir TON API üzerinden yeni işlemleri dinle:
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)
Senaryo 2: USDT (Jetton) al. USDT bir Jetton kontratıdır. Her alıcının kendi Jetton cüzdanı vardır (ana TON cüzdanından ayrı bir adres). Ana cüzdanı değil, Jetton cüzdanındaki işlemleri dinlersin.
En basit yol: gelen transferlerde webhook'larla bir hosted TON Index API (Tonapi.io, TonCenter) kullan.
Telegram Stars: Telegram'ın dijital para birimi
Stars, Telegram'ın sanal para birimidir (1 Star ≈ $0.013). Dijital ürünleri satın almak için kullanılır: abonelikler, özel emojiler, temalar, bot premium özellikleri.
TON'un aksine Stars serbestçe çekilemez — Telegram, Stars'ı yalnızca doğrulanmış içerik üreticileri için ve gecikmeyle TON'a çevirir.
TON yerine Stars ne zaman kullanılır:
- Ücretli içerik (makaleler, kurslar, bot premium özellikleri)
- Uygulama içi satın almalar (sticker, tema)
- Bahşiş ve bağışlar
- App Store / Play Store uyumu (Apple ve Google uygulama içi dijital alımlar için Stars'ı şart koşar)
TON doğrudan ne zaman daha iyi:
- B2B ödemeleri
- P2P escrow
- Daha büyük tutarlar
- Kullanıcıların özgür çekime ihtiyacı varsa
Akıllı kontratlar: The Open Guarantor'dan escrow dersleri
The Open Guarantor, TON üzerinde güvenli P2P anlaşmalar için botumuz. Mantığı basit:
- Alıcı escrow kontratına TON gönderir
- Kontrat onaya kadar fonu tutar
- Alıcı teslim alındığını doğrular → kontrat satıcıya öder
- Anlaşmazlıkta hakem (biz) karar verir
Kontratlar FunC (TON'un düşük seviyeli dili) ya da Tact (yüksek seviyeli) ile yazılır. Biz Tact kullanıyoruz:
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) ile deploy et. Önce testnet'te test et, sonra mainnet.
Ödeme güvenliği kontrol listesi
İlk olaydan sonra uyguladıklarımız:
- Her gelen tutarı doğrula — kontrol etmeden bir işlemin
valuedeğerine asla güvenme - Reorg koruması — kredilemeden önce 6+ blok bekle (TON'da ≈30 saniye)
- Hot/cold cüzdan ayrımı — hot cüzdanda yalnızca ~24 saatlik ödeme tut, gerisini cold'da
- Cold için hardware cüzdan — Ledger ya da multisig
- Çekim hız sınırları — hesap başına dakikada N çekimle sınırla
- Audit trail — her fon hareketi DB'ye loglanır, S3 / Postgres replikasına replikasyon yapılır
Operasyon maliyetleri
Birim ekonomisi için:
- TON işlemi — ~0.005 TON gas (≈$0.025, $5/TON kuru ile)
- Jetton (USDT) işlemi — ~0.05 TON (≈$0.25)
- Akıllı kontrat deploy — bir kerelik ~0.1 TON
Günde 1.000 USDT çekimi işliyorsanız bu ~$250/gün gas demek. Azaltmak için:
- Toplu çekim (tek işlemde birçok alıcı)
- Mikro miktarlar için USDT yerine doğrudan TON kullan
Sırada ne var
TON, 2026'da Telegram-native ürünler için en pratik blockchain'dir. Ürününüz para ile temas ediyorsa, bir TON entegrasyonu 2–3 hafta alır ve klasik ödeme ağ geçitlerinin sunamayacağı bir UX'i anında sağlar.
Bunu üretimde görmek istiyorsanız — The Open Earn'a (USDT ödemeleri) ya da The Open Guarantor'a (escrow kontratları) bakın.