Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Mark Santiago
Mark Santiago

Posted on

     

How to write solana wallet tracking telegram bot

A comprehensive guide to building a professional Solana wallet tracking system that monitors transactions and delivers real-time notifications through Telegram.

Introduction

In the fast-moving world of Solana trading, staying informed about wallet activities is crucial. This guide will walk you through creating a sophisticated wallet tracking bot that monitors transactions and sends detailed notifications via Telegram.

System Architecture

The system consists of three main components:

  1. Helius RPC for transaction monitoring
  2. MongoDB for data storage
  3. Telegram Bot for notifications

Step-by-Step Guide

1. Setting Up Your Telegram Bot

First, we'll create and configure your Telegram bot for notifications.

Creating your own Telegram bot

  1. Open Telegram and search for the@botfather.
  2. Send/newbot command
  3. Name your bot (Example: "super_wallet_tracking_bot")
  4. Save your bot token

Configuring Chat IDs

Now we named our bot and get bot token, we need to get our chat ID.

To get your chat ID:

  1. Add your bot to your channel
  2. Send a message
  3. Access:https://api.telegram.org/bot/getUpdates
  4. Extract the chat_id from the response

Or you can use this script to get your chat ID:

import TelegramBot from"node-telegram-bot-api";import dotenv from"dotenv";dotenv.config();const TELEGRAM_BOT_TOKEN= process.env.TELEGRAM_BOT_TOKEN!;const bot= new TelegramBot(TELEGRAM_BOT_TOKEN,{ polling:true});bot.on("message",(msg)=>{  console.log("New chat ID:", msg.chat.id);  TELEGRAM_CHAT_ID= msg.chat.id.toString();});
Enter fullscreen modeExit fullscreen mode

Environment Configuration

Add these to your .env file:

TELEGRAM_BOT_NAME="super_wallet_tracking_bot"TELEGRAM_BOT_TOKEN="YOUR_BOT_TOKEN"TELEGRAM_CHAT_ID="YOUR_CHAT_ID"
Enter fullscreen modeExit fullscreen mode

Once we set environment variables, create atelegram.ts file and write the following code to send messsages to Telegram:

import TelegramBot from"node-telegram-bot-api";import dotenv from"dotenv";dotenv.config();const TELEGRAM_CHAT_ID= process.env.TELEGRAM_CHAT_ID!;const bot= new TelegramBot(TELEGRAM_BOT_TOKEN,{ polling:false});exportconst sendTelegramMessage= async(message: string)=>{  try{    await bot.sendMessage(TELEGRAM_CHAT_ID, message,{      parse_mode:"HTML",      disable_web_page_preview:true,});} catch(error){    console.error("Failed to send Telegram message:", error);}};
Enter fullscreen modeExit fullscreen mode

2.Integrating Helius RPC

Helius provides reliable RPC endpoints for Solana transaction monitoring.

Setup Steps:

  1. Get your Helius API key fromHelius Dashboard
  2. Configure RPC endpoints in .env:
RPC_URL="https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY"WSS_URL="wss://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY"
Enter fullscreen modeExit fullscreen mode

3. Database Configuration and connection to MongoDB

We use MongoDB for storing transaction history and analysis.

Configuration:

MONGODB_URI="mongodb://localhost:27017/solana_wallet_tracking"
Enter fullscreen modeExit fullscreen mode

Createdb.ts file, and write the following code:

import mongoose from"mongoose";exportconst connectDB= async(mongodb_url: string)=>{  await mongoose.connect(mongodb_url);  console.log("📦 MongoDB Connected");};
Enter fullscreen modeExit fullscreen mode

4. Wallet Monitoring

Configure the wallet address you want to monitor:

WALLET_ADDRESS="YOUR_WALLET_ADDRESS"
Enter fullscreen modeExit fullscreen mode

5. Solana Connection Setup with Helius RPC

We need to establish communication with the Solana blockchain through Helius RPC endpoints.

Createconnection.ts file, and write the following code:

import{ Connection} from"@solana/web3.js";import dotenv from"dotenv";dotenv.config();const RPC_URL= process.env.RPC_URL!;const WSS_URL= process.env.WSS_URL!;if(!RPC_URL||!WSS_URL){  throw new Error("RPC_URL and WSS_URL must be defined in environment variables");}exportconst connection= new Connection(RPC_URL,{ wsEndpoint: WSS_URL});
Enter fullscreen modeExit fullscreen mode

This creates a Connection instance that provides:

  • HTTP-based RPC calls for transaction queries
  • WebSocket connection for real-time transaction monitoring
  • Automatic reconnection handling
  • Connection state management

6. Transaction Analysis

The system monitors:

  • Transaction signatures
  • Token transfers
  • Buy/Sell operations
  • Amount changes
  • Timestamps

We need to get transaction data from Helius RPC and processes this data and analyze signature in detail :

Createtrading.ts file, and write the following code:

import{ NATIVE_MINT} from"@solana/spl-token";import{ LAMPORTS_PER_SOL, PublicKey} from"@solana/web3.js";import{ sendTelegramMessage} from"./telegram.js";import{ Trading} from"./models/Trading.js";import{ formatCryptoAddress} from"./lib/format.js";import{ connection} from"./config.js";const explorerUrl="https://solscan.io/tx/";const walletUrl=`https://solscan.io/account/`;exportconst subscribeTrading=(key: string)=>{    const anaylzeSignature= async(log: any)=>{      txn= await connection.getParsedTransaction(signature,{             maxSupportedTransactionVersion: 0,            commitment:"confirmed",});if(!txn){        console.log(`Failed to fetch transaction after${attempt} attempts`);return;}      // process transaction to get relevant information      console.log("preTokenBalances", preTokenBalances);      console.log("postTokenBalances", postTokenBalances);      console.log("loaced addresses", innerInstructions);      const message=`        🔔 <b>New Transaction Detected!</b>        👛 <b>Wallet:</b> <ahref="${walletUrl + signer}">${formatCryptoAddress(signer)}</a>        💰 <b>Sol Amount:</b>${solAmount > 0 ?"📥 SELL":"📤 BUY"}${Math.abs(solAmount).(3)} SOL        💸 <b>PNLforthis Token:</b>${totalPNL.toFixed(3)} SOL        🚀 <b>Token:</b> <ahref="${walletUrl + tokenAddress}">${tokenInfo}</a>        🔗 <ahref="${explorerUrl + signature}">View Transaction</a>        ⏰${new Date().toLocaleString()}`;      await sendTelegramMessage(message);}returnconnection.onLogs(new PublicKey(key), anaylzeSignature,"processed");}
Enter fullscreen modeExit fullscreen mode

Conclusion

This Solana wallet tracking bot provides a robust solution for monitoring wallet activities with real-time Telegram notifications. By following this guide and implementing the provided configurations, you can create a powerful tool for tracking Solana transactions and maintaining awareness of your wallet activities.

The system's modular architecture allows for easy maintenance and future enhancements while providing reliable transaction monitoring and notification delivery.

Remember to regularly monitor your API usage and maintain your database to ensure optimal performance of your tracking system.

Contact Information

Top comments(6)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss
CollapseExpand
 
btc415 profile image
LovelyBTC
A critical and forward thinking blockchain engineer experienced in DeFi, NFT marketplace and supply chain management through web3 integration, full-stack development, and smart contract development.
  • Education
    Hebei University of Technology
  • Pronouns
    He/Him
  • Work
    Technical Co-founder of TAOI
  • Joined

Thanks for your sharing your good experience

CollapseExpand
 
steven228312 profile image
Steven
A critical and forward thinking fullstack developer && blockchain engineer
  • Location
    Mesquite, Texas
  • Education
    Hebei University of Technology
  • Pronouns
    He/Him
  • Work
    Technical co-founder at TAOI
  • Joined

Love to see wonderful project

CollapseExpand
 
kennedy_antonio_90d664580 profile image
Kennedy Antonio
I am a Senior Machine Learning Engineer | Generative AI | Computer Vision |NLP | Infrastructure.
  • Location
    290 Talang st. Pampanga Angeles city, Phillippine
  • Education
    Mindanao State University
  • Pronouns
    He/Him
  • Joined

Good work

CollapseExpand
 
creative555_dev profile image
Creative
  • Joined

This is really great.
Highly recommended.

CollapseExpand
 
angounin0x profile image
AiyuNin
  • Location
    兵庫県, 芦屋市
  • Education
    Konan University
  • Pronouns
    He/Him
  • Work
    Blockchain Developer
  • Joined

Thanks for your sharing your rich experience.

CollapseExpand
 
ichikawa0822 profile image
Ichikawa Hiroshi
An epic fullstack web and blockchain developer with over 5 years of experience.
  • Joined

Great

Some comments may only be visible to logged-in visitors.Sign in to view all comments.

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

A forward thinking full stack blockchain engineer
  • Location
    Angeles, Philippines
  • Education
    Holy Angeles University
  • Pronouns
    He/Him
  • Work
    Full stack blockchain developer
  • Joined

More fromMark Santiago

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp