DEV Community

Cover image for Building a Discord-to-Telegram Token Address Forwarder
Jason Smith
Jason Smith

Posted on

Building a Discord-to-Telegram Token Address Forwarder

Welcome, code warriors! Today, we're diving into building a powerful bridge between Discord and Telegram that automatically detects and forwards Solana token addresses. Whether you're tracking new tokens or monitoring specific addresses, this guide will show you how to create an automated solution using Python.
Additional link: https://github.com/Any-bot/D2T-msg-forward.git

1. What is This Project?

This is a self-bot that:

  • Monitors Discord messages for Solana token addresses
  • Detects both raw addresses and DexScreener URLs
  • Forwards unique addresses to a Telegram bot
  • Maintains a tracking system to avoid duplicates

2. Why Build This?

  • Real-time Monitoring: Instantly capture token addresses from Discord
  • Automation: No manual copying and pasting required
  • Data Filtering: Avoid duplicate addresses with built-in tracking
  • Cross-Platform: Bridge Discord and Telegram seamlessly

3. Core Components

Discord Client

discord_client = commands.Bot(command_prefix="!", self_bot=True)
Enter fullscreen mode Exit fullscreen mode

Telegram Client

telegram_client = TelegramClient('session_name', TELEGRAM_API_ID, TELEGRAM_API_HASH)
Enter fullscreen mode Exit fullscreen mode

Address Detection System

def detect_solana_token_address(message):
    dexscreener_pattern = r'dexscreener\.com/solana/([1-9A-HJ-NP-Za-km-z]{32,44})'
    # ... detection logic
Enter fullscreen mode Exit fullscreen mode

4. Key Features

4.1 DexScreener Integration:

  • Extracts base token addresses from DexScreener URLs
  • Falls back to original address if API fails 4.2 Address Tracking:
  • JSON-based storage system
  • Prevents duplicate forwards
  • Persistent across restarts 4.3 Asynchronous Operations:
  • Non-blocking message handling
  • Rate-limited forwarding
  • Efficient multi-client management

5. Implementation Guide

  • Environment Setup
DISCORD_USER_TOKEN=your_token
TELEGRAM_API_ID=your_api_id
TELEGRAM_API_HASH=your_api_hash
BOT_USERNAME=@your_bot
Enter fullscreen mode Exit fullscreen mode
  • Main Event Handler
@discord_client.event
async def on_message(message):
    solana_addresses = detect_solana_token_address(message.content)
    if solana_addresses:
        for address in solana_addresses:
            # Forward unique addresses
Enter fullscreen mode Exit fullscreen mode
  • Address Storage System
def save_address(address):
    addresses = load_tracked_addresses()
    addresses.append(address)
    with open(TRACKED_ADDRESSES_FILE, 'w') as f:
        json.dump(addresses, f)
Enter fullscreen mode Exit fullscreen mode

6. Best Practices

6.1 Rate Limiting:

  • 1-second delay between messages
  • Prevents API throttling
  • Maintains service stability 6.2 Error Handling:
  • Graceful API failure handling
  • Logging for debugging
  • Fallback mechanisms 6.3 Data Management:
  • JSON-based persistence
  • Efficient address tracking
  • Memory-conscious operations

7. Advanced Features

7.1 Regular Expression Patterns:

  • Solana address validation
  • DexScreener URL parsing
  • Flexible pattern matching 7.2 API Integration:
  • DexScreener data fetching
  • Base token extraction
  • Error resilient requests

Conclusion

This project demonstrates the power of automation in crypto monitoring. By combining Discord and Telegram's capabilities, we've created a robust system for tracking Solana token addresses across platforms.

Remember: A great bot isn't just about functionality – it's about reliability, efficiency, and maintainability. Keep your code clean, your error handling robust, and your logging informative.

Happy coding, and may your tokens always find their way! 🚀

This article maintains the engaging style of the analyzed piece while focusing on your specific implementation and its unique features.
Enter fullscreen mode Exit fullscreen mode

Top comments (3)

Collapse
 
subhransu7 profile image
Subhransu Bidyasagar Kandi

Great work

Collapse
 
ichikawa0822 profile image
Ichikawa Hiroshi

Thanks for sharing.

Collapse
 
robert_angelo_484 profile image
Robert Angelo

👍