Introduction
In today's fast-paced crypto world, having real-time insights into token metrics can make the difference between a successful trade and a missed opportunity. While many traders rely on scattered data sources and manual research, what if you could access comprehensive token analytics directly through Telegram?
That's exactly what the EVM Token Analysis Bot provides — a powerful Telegram-based solution that delivers detailed token insights across multiple EVM-compatible blockchains including Ethereum, Binance Smart Chain (BSC), and Base.
In this article, I'll walk you through the architecture, features, and implementation details of this advanced blockchain analytics bot that makes on-chain data analysis accessible to everyone.
Why Token Analysis Matters in DeFi
The decentralized finance landscape is incredibly dynamic, with thousands of tokens launching across multiple chains daily. For traders and investors, understanding token metrics is crucial for:
- Identifying early opportunities – Finding promising tokens before they gain mainstream attention
- Avoiding scams – Detecting red flags in token contracts and deployer behavior
- Understanding market dynamics – Tracking whale movements and profit patterns
- Making data-driven decisions – Basing trades on actual on-chain metrics rather than speculation
However, gathering this data traditionally requires:
- Navigating multiple block explorers
- Using various analytics platforms
- Understanding complex blockchain data
- Spending hours on manual research
The EVM Token Analysis Bot solves these challenges by bringing comprehensive token analytics directly to Telegram, making powerful insights available with just a few clicks.
Key Features of the EVM Token Analysis Bot
Free Features
The bot offers several powerful features even to free users:
First Buyers & Profits Analysis
- View the first 1–50 wallets that bought a token
- Detailed statistics including buy & sell amounts
- Total trades, PNL, and win rate metrics
- Limited to 3 token scans per day for free users
Most Profitable Wallets
- Discover which wallets have made the most profit from a specific token
- View buy & sell totals and net profit
- Identify successful trading patterns
- Limited to 3 token scans per day for free users
Market Cap & ATH Analysis
- View the all-time high market cap of any token
- See ATH date and percentage from ATH
- Track market cap evolution
- Limited to 3 token scans per day for free users
Premium Features
For power users, the premium tier unlocks advanced capabilities:
Deployer Wallet Scan
- Reveal the deployer wallet address
- See all tokens deployed by the same wallet
- View ATH market cap and x-multipliers for each token
- Identify potential connections between projects
Top Holders & Whale Watch
- See the top 10 holders of any token
- Monitor whale wallets
- Get notifications when Dev, whales, or top holders sell
- Track significant wallet movements
High Net Worth Holders
- Scan for wallets holding over $10,000 worth of a token
- View total worth in USD and token amount
- See average holding time
- Identify potential market movers
Unlimited Access
- Premium subscribers get unlimited access to all features
- No daily scan limits
- Priority data processing
Technical Architecture
The EVM Token Analysis Bot is built with a modular architecture that ensures reliability, scalability, and efficient data processing:
1. Multi-Chain Support
The bot supports multiple EVM-compatible blockchains:
- Ethereum Mainnet
- Binance Smart Chain
- Base Network
Each chain connection is initialized with appropriate middleware and configuration.
def _initialize_web3(self, network: str) -> Web3:
"""Initialize Web3 connection for the specified network."""
provider_url = NETWORKS[network]["provider_url"]
logger.info(f"Initializing Web3 for {network} with provider URL: {provider_url}")
web3 = Web3(Web3.HTTPProvider(provider_url))
# Add PoA middleware for networks like BSC
web3.middleware_onion.inject(ExtraDataToPOAMiddleware, layer=0)
# For BNB Chain (BSC), we need additional configuration
if network == "BNB":
# BSC uses a different gas price strategy
from web3.gas_strategies.rpc import rpc_gas_price_strategy
web3.eth.set_gas_price_strategy(rpc_gas_price_strategy)
if not web3.is_connected():
logger.error(f"Failed to connect to {network} network")
raise ConnectionError(f"Cannot connect to {network} network")
logger.info(f"Connected to {network} network: Chain ID {web3.eth.chain_id}")
return web3
2. Data Models
The bot uses structured data models to ensure consistency and reliability:
class TokenData:
"""Model for cached token data"""
def __init__(
self,
address: str,
name: Optional[str] = None,
symbol: Optional[str] = None,
deployer: Optional[str] = None,
deployment_date: Optional[datetime] = None,
current_price: Optional[float] = None,
current_market_cap: Optional[float] = None,
ath_market_cap: Optional[float] = None,
ath_date: Optional[datetime] = None,
last_updated: Optional[datetime] = None
):
self.address = address
self.name = name
self.symbol = symbol
self.deployer = deployer
self.deployment_date = deployment_date
self.current_price = current_price
self.current_market_cap = current_market_cap
self.ath_market_cap = ath_market_cap
self.ath_date = ath_date
self.last_updated = last_updated or datetime.now()
3. Database Integration
The bot uses MongoDB for efficient data storage and retrieval:
def init_database() -> bool:
"""Initialize the database connection and set up indexes"""
global _db
try:
# Connect to MongoDB
client = MongoClient(MONGODB_URI)
_db = client[DB_NAME]
# Set up indexes for collections
# Users collection
_db.users.create_index([("user_id", ASCENDING)], unique=True)
# User scans collection
_db.user_scans.create_index([
("user_id", ASCENDING),
("scan_type", ASCENDING),
("date", ASCENDING)
], unique=True)
# Token data collection
_db.token_data.create_index([("address", ASCENDING)], unique=True)
_db.token_data.create_index([("deployer", ASCENDING)])
# Additional indexes for watchlists
# ...
return True
except Exception as e:
logging.error(f"Failed to initialize database: {e}")
return False
4. Subscription Management
The bot implements a subscription system to manage free and premium users:
def check_subscription_payment(self, user_id: int) -> Dict[str, Any]:
if user_id not in self.subscriptions:
logger.warning(f"No subscription found for user {user_id}")
return {
"success": False,
"error": {
"code": "SUBSCRIPTION_NOT_FOUND",
"message": f"No subscription found for user {user_id}"
}
}
subscription = self.subscriptions[user_id]
network = subscription["network"]
address = subscription["wallet_address"]
required_amount = subscription["amount_required"]
balance_result = self.check_wallet_balance(address, network)
if not balance_result["success"]:
return balance_result
current_balance = balance_result["data"]["native_balance"]
formatted_balance = balance_result["data"]["formatted_native_balance"]
# Process payment logic
# ...
5. Telegram Bot Interface
The bot provides an intuitive Telegram interface with rich menus and callbacks:
async def handle_start_menu(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""Handle the main menu display with only token analysis functionality"""
if "default_network" not in context.user_data:
context.user_data["default_network"] = "eth"
selected_network = context.user_data.get("default_network")
network_display = {
"eth": "🌐 Ethereum",
"base": "🛡️ Base",
"bsc": "🔶 BSC"
}
welcome_message = (
f"🆘 Welcome to EVM Token Analysis Bot, {update.effective_user.first_name}! 🎉\n\n"
f"📊 Token Analysis Features:\n"
# Feature list...
)
token_analysis_keyboard = [
[InlineKeyboardButton("🛒 First Buyers & Profits of a token", callback_data="token_first_buyers")],
[InlineKeyboardButton("💰 Most Profitable Wallets of a token", callback_data="token_most_profitable_wallets")],
# Additional buttons...
]
6. Error Handling
The bot implements robust error handling to ensure reliability:
async def handle_telegram_error(update: Optional[Update], context: ContextTypes.DEFAULT_TYPE) -> None:
"""Handle generic TelegramError errors."""
if update and update.effective_message:
error_message = "An error occurred while processing your request. Please try again later."
try:
await update.effective_message.reply_text(error_message)
except Exception as e:
logger.error(f"Failed to send error message: {e}")
Implementation Highlights
Rate Limiting for Free Users
The bot implements a fair usage policy for free users:
async def handle_period_selection(
update: Update,
context: ContextTypes.DEFAULT_TYPE,
feature_info:str,
scan_type: str,
callback_prefix: str
) -> None:
"""Generic handler for period selection"""
query = update.callback_query
user = await check_callback_user(update)
# Check if user has reached daily limit
has_reached_limit, current_count = await check_rate_limit_service(
user.user_id, scan_type, FREE_WALLET_SCANS_DAILY
)
if has_reached_limit and not user.is_premium:
keyboard = [
[InlineKeyboardButton("💎 Upgrade to Premium", callback_data="premium_info")],
[InlineKeyboardButton("🔙 Back", callback_data="wallet_analysis")]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await query.message.reply_text(
f"⚠️ Daily Limit Reached\n\n"
# Limit message...
f"To unlock unlimited access to powerful wallet analysis features, upgrade to Premium and explore the full potential of on-chain intelligence. 💎\n",
reply_markup=reply_markup,
parse_mode=ParseMode.HTML
)
return
Premium Feature Access Control
The bot checks user subscription status before allowing access to premium features:
async def handle_high_net_worth_holders(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""Handle high net worth token holders button callback"""
query = update.callback_query
user = await check_callback_user(update)
# Check if user is premium
if not user.is_premium:
keyboard = [
[InlineKeyboardButton("💎 Upgrade to Premium", callback_data="premium_info")],
[InlineKeyboardButton("🔙 Back", callback_data="main_menu")]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await query.message.reply_text(
"⭐ Premium Feature\n\n"
"💎 High Net Worth Holders is an exclusive premium feature that identifies:\n"
# Feature description...
"💎 Upgrade to Premium for unlimited access to this and other advanced features.",
reply_markup=reply_markup,
parse_mode=ParseMode.HTML
)
return
# If premium, proceed with feature
await handle_token_analysis_token_input(update, context, "high_net_worth_holders")
Admin Management Features
The bot includes administrative capabilities for managing users and subscriptions:
async def handle_admin_add_premium(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""Admin command to manually add premium to a user"""
# Check if user is admin
user_id = update.effective_user.id
user = get_user(user_id)
if not user or not hasattr(user, 'is_admin') or not user.is_admin:
await update.message.reply_text("⛔ This command is only available to administrators.")
return
# Command logic for adding premium access
# ...
Setting Up Your Own EVM Token Analysis Bot
Want to run your own instance of the EVM Token Analysis Bot? Here's how to get started:
Prerequisites
- Python 3.8+
- Telegram Bot Token (from
@BotFather
on Telegram) - Dune Analytics API credentials
- MongoDB database
- API keys for blockchain providers
Installation Steps
- 1. Clone the repository:
git clone https://github.com/stevendev0822/EVM-Token-Analysis-Telegram-Bot.git
- 2. Navigate to the project directory:
cd EVM-Token-Analysis-Telegram-Bot
- 3. Install dependencies:
pip install -r requirements.txt
- 4. Create a
.env
file with your credentials:
# DB Configuration
MONGODB_URI="mongodb://localhost:27017/"
DB_NAME="evm_token_analysis"
# API Keys
DUNE_API_KEY=your_dune_api_key_here
ZENROWS_API_KEY=your_zenrows_api_key_here
MORALIS_API_KEY=your_moralis_api_key_here
# ===== BLOCKCHAIN CONFIGURATION =====
# Ethereum Mainnet
ETH_PROVIDER_URL=https://mainnet.infura.io/v3/your_infura_key_here
ETH_CHAIN_ID=1
ETH_ADMIN_WALLET=your_admin_wallet_address
# Binance Smart Chain Mainnet
BNB_PROVIDER_URL=https://bsc-dataseed.binance.org/
BNB_CHAIN_ID=56
BNB_ADMIN_WALLET=your_admin_wallet_address
# Subscription Check Interval (in seconds)
CHECK_INTERVAL=60
# TELEGRAM BOT SETTING
TELEGRAM_TOKEN=your_telegram_bot_token_here
# Free tier limits
FREE_TOKEN_SCANS_DAILY=3
FREE_WALLET_SCANS_DAILY=3
FREE_PROFITABLE_WALLETS_LIMIT=5
# Premium tier limits
PREMIUM_TOKEN_SCANS_DAILY=100
PREMIUM_WALLET_SCANS_DAILY=100
PREMIUM_PROFITABLE_WALLETS_LIMIT=50
# Additional API keys
WEB3_PROVIDER_URI=https://mainnet.infura.io/v3/your_infura_key_here
ETHERSCAN_API_KEY=your_etherscan_api_key_here
- 5. Start the bot:
python src/main.py
Advanced Features to Consider
Once you've implemented the core functionality, consider these enhancements to further improve the bot's utility:
Cross-Chain Token Correlation
- Identify tokens deployed by the same entity across multiple chains
- Track related token performance
Sentiment Analysis Integration
- Combine on-chain data with social media sentiment
- Provide a more complete picture of token prospects
Predictive Analytics
- Use historical data to identify patterns
- Provide probability-based insights on token performance
Custom Alert Thresholds
- Allow users to set custom thresholds for notifications
- Personalize the analysis experience
Integration with Trading Platforms
- Connect with DEX aggregators for direct trading
- Enable one-click trading based on analysis
Conclusion
The EVM Token Analysis Telegram Bot serves as your personal on-chain intelligence assistant—transforming complex blockchain data into actionable insights and giving you a competitive edge in the fast-moving crypto markets.
This powerful tool converts raw blockchain data into comprehensible analytics, delivering real-time token insights across multiple EVM-compatible networks including Ethereum, BSC, and Base. By combining sophisticated token analysis with convenient Telegram delivery, this bot provides crypto traders, investors, and researchers with the critical information needed to navigate the complex DeFi landscape.
The modular architecture and MongoDB integration ensure both performance and historical data preservation, while the intuitive Telegram interface makes advanced blockchain analytics accessible even to users without technical blockchain knowledge. The ability to analyze tokens across multiple chains in a single interface eliminates the need to juggle various block explorers and analytics platforms.
The bot's tiered access model ensures that essential analytics are available to everyone while providing premium capabilities for serious traders and researchers. Features like first buyer analysis, profit tracking, and deployer wallet scanning provide unprecedented visibility into token metrics that would otherwise require hours of manual research.
As blockchain ecosystems continue to evolve and fragment across multiple chains, tools that provide cross-chain visibility become increasingly valuable. Whether you're researching potential investments, monitoring existing holdings, or tracking market-moving whale wallets, this bot serves as your personal blockchain analyst, working around the clock to deliver the insights you need.
By implementing the EVM Token Analysis Bot, you'll gain a significant advantage in the information-rich but often opaque world of decentralized finance. The detailed token metrics and wallet analysis transform raw blockchain data into the kind of actionable intelligence that can make the difference between capturing opportunities and missing them entirely.
In a market where information asymmetry often determines success, having a dedicated token analysis tool delivering insights directly to your Telegram isn't just convenient—it's a strategic necessity for serious participants in the blockchain economy.
📁 GitHub Repository
You can see the sample video there.
If you want to see the whole code or develop EVM Token Analysis telegram bot on your own, please contact me with the contact information below.
Please don’t forget to leave a star if you like the bot.
Contact Information
- GitHub: stevendev0822
- Gmail: [email protected]
- Telegram: Steven
- Twitter: Steven
- Instagram: Steven