Güvenlik

Telegram Botuna Token Swap Ekleme: Pratik ve Net Rehber

Telegram botlarının bu kadar büyümesinin bir sebebi var: İnsanlar uygulamadan çıkmadan işini halletmek istiyor. Kripto tarafında da tablo çok farklı değil. Açık konuşayım — geçen ay İstanbul’da bir startup ekibiyle yaptığım sohbette tam da bunu konuştuk; kullanıcılar cüzdan, borsa, tarayıcı arasında zıplamak istemiyor, sohbet penceresinin içinde al-sat yapmak istiyor. İşin tadı biraz da burada çıkıyor zaten.

Bu yazıda, Telegram botuna token swap özelliğini nasıl ekleyebileceğini kendi deneyimlediğim akışa yakın bir dille anlatacağım (inanın bana). Fikir basit ama etkili: tek bir (belki yanılıyorum ama) komutla fiyat al, kullanıcıya göster, sonra zincir üstü işlemi gönder. Hani şu “çok uğraştırır herhalde” dediğin şey var ya (yanlış duymadınız). aslında o kadar da değil. Doğru parçaları yan yana koyunca gayet temiz ilerliyor, şaşırdım açıkçası.

İşte tam da bu noktada devreye giriyor. Sam Altman’a Saldırı: AI Gerginliği Nereye Gidiyor? yazımızda bu konuya da değinmiştik.

Ben bu tip entegrasyonları ilk kez 2023’te küçük bir deneme projesinde kurarken epey terlemiştim. Mesela cüzdan imzalama, çevre değişkenleri ve kullanıcıya dönen işlem bilgisi kısmı ilk bakışta biraz karışık görünüyor — ama birkaç tür sonra mesele netleşiyor. Bot sadece arayüzdür. Asıl iş, swap kotunu almak ve işlemi güvenli şekilde zincire yollamakta.

Neden Telegram içinde swap?

Vallahi, Bakın şimdi, Telegram’ın gücü sadece mesajlaşma değil. Bir milyardan fazla aylık aktif kullanıcıdan söz ediyoruz ve bu devasa kitle içinde botlar bayağı doğal karşılanıyor (inanın bana). Kripto kullanıcıları için de durum aynı: hız önemli, bağlam değiştirmemek daha da önemli. Uygulamadan çıkmadan işlem yapabilmek pratikte ciddi fayda sağlıyor.

Kısa bir not düşeyim buraya.

Geçen hafta Kadıköy’de kahve içerken bir arkadaşım bana “Cüzdana gir, DEX aç, ağ seç, slippage ayarla” zincirinden bunaldığını anlattı. Haklıydı. Telegram botu tam bu sürtünmeyi azaltıyor, hani gereksiz adımları kesiyor demek istiyorum. Kullanıcı sadece /swap yazıyor; geri kalanını sistem hallediyor.

Tabi işin parlak tarafı kadar gölgeli tarafı da var. Botun içine trade özelliği koymak kulağa kolay geliyor ama güvenlik kısmı hafife alınırsa işler çabuk dağılıyor. Hot wallet kullanımı, private key saklama biçimi, on-chain hata yönetimi… İlginç, değil mi? Bunlar göz ardı edilirse güzel bir fikir çabucak çöpe gidebilir.

💡 Bilgi: Telegram botu burada yalnızca komut alan ve cevap veren katman gibi çalışıyor; token swap ise çoğunlukla ayrı bir API ve blokzincir işlemi üzerinden ilerliyor.

Kuruluma geçmeden önce ne lazım?

İşin aslı şu ki çok büyük bir teknoloji yığını gerekmiyor. Node.js 18+, Telegram hesabı, ethers.js v6, grammY ve test amaçlı kullanılacak küçük bakiyeli bir cüzdan yeterli. Burada özellikle test cüzdanına vurgu yapıyorum — çünkü gerçek para ile deneme yapmak insanın moralini bozabiliyor… çok hızlı biçimde.

Kendi testlerimde en rahat akışın TypeScript ile geldiğini gördüm. 2024 başında Ankara’daki bir projede benzer bir bot kurarken JavaScript yerine TypeScript seçtiğimiz için hata yakalama süresi bayağı düşmüştü. Hele bir de de mesaj akışı uzadığında tip güvenliği adeta emniyet kemeri gibi çalışıyor — bunu o projede somut hissettim.

Bileşen Ne işe yarıyor? Neden önemli?
grammY Telegram bot framework’ü TypeScript uyumu ve temiz middleware yapısı veriyor
ethers.js v6 Zincir üstü işlem imzalama Cüzdanla güvenli etkileşim sağlıyor
.env Sırlar için ortam dosyası Anahtarları koda gömmeyi engelliyor
Swap API Kotasyon ve calldata üretimi Kullanıcıyı doğrudan işlem adımına taşıyor

Neden grammY?

Kısa cevap: TypeScript seven biriysen elin oraya gidiyor zaten. Uzun cevap ise biraz daha teknik — grammY’nin tip sistemi daha düzenli hissettiriyor, middleware mantığı anlaşılır duruyor ve farklı çalışma ortamlarında rahatça koşabiliyor. Telegraf kötü mü? Değil tabii ki. Ama benim gördüğüm kadarıyla grammY daha “derli toplu masa” hissi veriyor; nasıl desem, bir şeylerin yerli yerinde olduğu his işte (yanlış duymadınız)

Neden özel anahtar konusu hassas?

Bunu özellikle söylemem lazım. Çünkü insanlar bazen “nasıl olsa test” diyerek private key’i ortalıkta bırakabiliyor. Oysa hot wallet bile olsa sınır koymak şart. Tahmin eder misiniz? Küçük miktarlarla çalışmak, izinleri dar tutmak ve.env dosyasını git’e atmamayı alışkanlık haline getirmek gerekiyor — bunlar küçük detaylar gibi dursa da uzun vadede fark yaratıyor. Daha fazla bilgi için Epic Games, Disney için yeni bir oyun kuruyor: işin rengi değişiyor yazımıza bakabilirsiniz.

/swap komutu nasıl tasarlanır?

Düşünün ki kullanıcı şöyle yazıyor: /swap 0.1 ETH USDC base. Botun görevi bunu parse etmek, doğru ağı anlamak, swap teklifini almak ve ardından kullanıcının onaylayabileceği temiz bir özet sunmak oluyor. Bu noktada UX meselesi devreye giriyor. İyi görünmeyen işlem akışı kullanıcıyı kaçırır — hızlıca.

İşte tam da bu noktada devreye giriyor. Daha fazla bilgi için Node.js Lokalde Çalışıp VPS’de Çökünce Ne Yapmalı? yazımıza bakabilirsiniz.

import { Bot } from "grammy";
import { config } from "dotenv";
config();
const bot = new Bot(process.env.BOT_TOKEN!);
bot.command("start", (ctx) =>
ctx.reply("Welcome! Use /swap to swap tokens.
Example: /swap 0.1 ETH USDC base")
);
bot.command("swap", async (ctx) => {
const text = ctx.message?.text ? "";
const args = text.split(" ").slice(1);
if (args.length < 4) return ctx.reply("Kullanım: /swap miktar token_in token_out ağ");
const [amount, tokenIn, tokenOut, chain] = args;
await ctx.reply(`Teklif alınıyor: ${amount} ${tokenIn} → ${tokenOut} (${chain})`);
});
bot.start();

Burası kağıt üzerinde sade görünüyor ama pratikte birkaç kilit nokta var: input doğrulama, ağ eşleme tablosu, fiyat kayması kontrolü. Hatalı parametrelerde düzgün mesaj dönmek… Hepsi lazım olur. Geçen sene İzmir’de baktığım küçük bir projede bu kontroller eksikti; sonuç? Kullanıcı yanlış ağda işlem başlatıyordu ve ekip support’ta boğuluyordu. Klasik.

Kotasyon alma işi neden sandığından kolay?

Şimdi gelelim en tatlı yere. Swap quote almak çoğu zaman tek istekle çözülebiliyor — API sana hazır calldata dönduruyor, yani sıfırdan düşük seviyeli transaction kurmaya uğraşmıyorsun. Bu bayağı iş görüyor, valla işe yaramış diyebilirim.

Ama dur bir saniye — kolay olması seni rehavete sokmasın. Quote almak başka şeydir, o quote’un gerçekten mantıklı olup olmadığını anlamak bambaşka bir şeydir (yanlış duymadınız) (bu beni çok şaşırttı). Fiyat etkisi yüksekse ya da slippage aşırıysa kullanıcıya bunu açık açık göstermelisin. Göstermezsen şikayet gelir, inan bana.

Bot içindeki en kritik an genelde “quote döndü mü?” sorusu değil; “kullanıcıya anlaşılır mı gösterildi?” sorusu oluyor.

Küçük startup senaryosu

Küçük ekiplerde en büyük fayda hızdır. Bir kişi backend’i kurar, biri Telegram akışını düzenler… iki günde çalışan demo çıkar bile diyebilirim. Ama dezavantaj da açık: izleme yoksa hata bulmak zorlaşıyor, log disiplini zayıfsa gece yarısı kimse ne olduğunu anlayamıyor. Sabah açıyorsun baktım çökmüş, neden çökmüş, hiçbir fikir yok — işte bu senaryo. Bash Öğrenmek İçin Tarayıcıda Bir Uygulama: Fikir Güzel mi? yazımızda da bu konuya değinmiştik. Shopify Agentic Storefronts Açık Ama UCP Profiliniz Eksik Olabilir yazımızda da bu konuya değinmiştik.

Kurumsal senaryo

Enterprise tarafta ise konu farklılaşıyor (evet, doğru duydunuz). Orada API anahtar yönetimi, audit logları, rate limit stratejisi ve operasyonel gözlemleme ön plana çıkıyor. Yani özellik aynı özellik ama yük bambaşka oluyor. Kağıt üstünde süper duran çözüm pratikte ancak iyi yönetişimle yaşar — bu değişmiyor.

Zincir üstü işlem gönderirken neler değişiyor?

Tamam, quote’u aldın diyelim. Asıl olay bundan sonra başlıyor. Çünkü artık sırada imzalama, nonce yönetimi, gas tahmini ve hata ayıklama var. Ben şahsen bu bölümde hep biraz temkinliyim — çünkü burada yapılan ufak hata doğrudan maliyete dönüşüyor. Doğrudan.

  • Cüzdan: İşlemi imzalayan hot wallet olmalı ama bakiye kontrollü tutulmalı.
  • Ağ: Kullanıcının istediği chain doğru eşlenmeli.
  • User feedback: Bekleyen işlem için net durum mesajı verilmeli.
  • Error handling: Revert olursa nedenini sade dille açıklamalısın.

Editör masasında bu konuyu yazarken kendi kendime şunu söyledim: “Burası kullanıcı dostu görünse de güvenlik açısından pamuk ipliği.” Fazla dramatik gibi durabilir ama gerçek payı var. Private key yönetimini hafife alan botların çoğu uzun ömürlü olmuyor — bu sektörde defalarca gördüm.

Peki benim gördüğüm artılar ve eksiler neler?

Bence en büyük artı hız. Kullanıcıyı uygulamadan çıkarıp yeni sekmeler arasında gezdirmiyorsun (inanın bana). İkinci artı ise etkileşim seviyesi: Telegram’da komut tabanlı akış birçok kripto kullanıcısına doğal geliyor. Üstelik destek yükünü azaltabiliyorsun çünkü süreç standartlaşıyor — bunlar küçümsenmeyecek avantajlar.

Eksi tarafa gelirsek… Beklediğim kadar kusursuz olan taraf hiç yoktu dersem abartmış olmam. En sık can sıkan nokta user experience’ın aceleye gelmesi. Bir de network dalgalanmaları yüzünden quote ile execution arasındaki fark bazen tatsız sürpriz yaratabiliyor. Hani “az önce iyiydi niye şimdi bozuldu?” dedirten anlar var ya — işte onlar. Neyse uzatmayalım.

💡 Bilgi: Eğer amacın gerçek ürün çıkarmaksa önce sandbox/testnet ile başlayıp sonra mainnet’e geçmek en temiz yol oluyor. Direkt ana ağa atlamak genelde pahalı dersler veriyor.

Mantıklı mimari nasıl görünür?

Açık konuşayım, basit kalmak çoğu zaman kazandırır. Komut parser → quote servisi → onay ekranı → transaction sender şeklinde dört adımlık yapı fazlasıyla yeterli olabiliyor; buna ekstra olarak logging katmanı eklersen hem destek ekibinin eli rahatlar hem de sorun çözme süren kısalır, hani gecenin üçünde neyin bozulduğunu anlayabilirsin en azından.

Aşama Kullanıcı ne görür? Sistem ne yapar?
Komut girişi /swap komutu Argümanları ayrıştırır
Quote alma Teklif bekleniyor mesajı Swap API’ye istek atar
Onay ekranı Özet ve onay butonu Kullanıcı kararını bekler
İşlem gönderimi TX hash veya hata mesajı İmzalar ve zincire yollar

Sıkça Sorulan Sorular

Telegram botuna token swap eklemek zor mu?

Bak şimdi, Tahmin ettiğinden daha kolay olabilir. Temel olarak komutu yakalayıp dışarıdan quote alman ve işlemi imzalaman yeterli oluyor. Zorlayan kısım genelde güvenlik ve hata yönetimi kısmıdır.

Bunun için özel API anahtarı gerekiyor mu?

Kullandığın servis bazı durumlarda API anahtarı istemeyebilir. Kaynak senaryoda tek GET isteğiyle hazırlanmış calldata dönmesi işleri bayağı basitleştiriyor.Ama yine de kullandığın sağlayıcının dokümantasyonunu kontrol etmek şart.

Cüzdan private key’i nerede saklamalıyım?

p>.env gibi ortam değişkenlerinde tutup repoya neredeyse kesinlikle koymamalısın។ Daha ileri seviyede secret manager kullanmak daha doğru olur.Test cüzdanıyla başlamak da iyi fikirdir.
p

Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

← Onceki Yazi
Epic Games, Disney için yeni bir oyun kuruyor: işin rengi değişiyor
Sonraki Yazi →
Shopify Agentic Storefronts Açık Ama UCP Profiliniz Eksik Olabilir

Yorum Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Kategoriler
Ara
Paylaş
İçindekiler
← Epic Games, Disney için yeni b...
Shopify Agentic Storefronts Aç... →
📩

Gitmeden önce!

Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

📬 Haftalık bülten: Teknoloji + AI haberleri