一、项目概述

目标:

  1. 监听 TRON 地址 的转账交易(基于公开 API)。

  2. 当检测到新交易 → 向 Telegram 群发送推送。

  3. 搜索机器人 @letstgbot:用户可输入 /satrt项目名,自动跳转到相关频道搜索结果。

  4. 设计一套简易「交易预警 + 社群发现」框架。

创新点:

  • 链上事件 + 社交索引融合:将公开区块链交易数据与 Telegram 社群搜索结合,用户既能看链上变动,也能立即找到相关讨论社区。

  • 轻量部署:无需服务器,可直接运行在本地或云函数。

  • 可扩展性:未来可添加 ERC20 代币监控、批量钱包分析、交易行为模式检测等功能。
     

二、准备工作

1️⃣ 环境依赖
 

pip install python-telegram-bot requests schedule

2️⃣ 注册 Telegram Bot

在 Telegram 搜索 @BotFather → 创建新 Bot,获取 BOT_TOKEN

3️⃣ 获取波场区块链 API

这里使用 TronScan 公共接口
https://apilist.tronscanapi.com/api/transaction

示例查询参数:
 

https://apilist.tronscanapi.com/api/transaction?sort=-timestamp&count=true&limit=5&start=0&address=<钱包地址>

三、核心代码实现

1️⃣ 定义配置与基础逻辑

import requests, time, json, schedule
from telegram import Bot

# 配置项
BOT_TOKEN = "你的_BOT_TOKEN"
CHAT_ID = "你的_Telegram_群组ID"
ADDRESS = "你的_TRON_钱包地址"
bot = Bot(token=BOT_TOKEN)

API_URL = f"https://apilist.tronscanapi.com/api/transaction?sort=-timestamp&count=true&limit=1&start=0&address={ADDRESS}"

last_tx = None

def get_latest_tx():
    """获取最新一条交易"""
    resp = requests.get(API_URL, timeout=10)
    data = resp.json()
    if "data" in data and len(data["data"]) > 0:
        return data["data"][0]
    return None

def format_tx(tx):
    """格式化交易信息"""
    amount = int(tx.get("amount", 0)) / 1_000_000
    owner = tx.get("ownerAddress", "")
    receiver = tx.get("toAddress", "")
    hash_ = tx.get("hash", "")
    ts = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(tx.get("timestamp", 0)/1000))
    return f"💰 检测到新交易:\n发送方:{owner}\n接收方:{receiver}\n金额:{amount:.2f} TRX\n时间:{ts}\n交易哈希:{hash_}\n"

def check_new_tx():
    global last_tx
    tx = get_latest_tx()
    if not tx: return
    hash_ = tx.get("hash")
    if hash_ != last_tx:
        last_tx = hash_
        msg = format_tx(tx)
        bot.send_message(chat_id=CHAT_ID, text=msg)

该段代码完成基础功能:

  • 周期检测钱包地址交易

  • 发现新交易即刻推送群组

2️⃣ 周期任务调度
 

def main():
    schedule.every(15).seconds.do(check_new_tx)
    print("波场交易监控已启动...")
    while True:
        schedule.run_pending()
        time.sleep(1)

if __name__ == '__main__':
    main()

现在,机器人会每 15 秒检查一次该地址是否有新交易。

四、命令扩展:加入 @letstgbot 搜索入口

为了让机器人更有互动性,我们给它增加 /search 命令。
当用户输入:
 

/start 项目名

机器人会自动回复一条说明,并附上 @letstgbot 的直接搜索链接。

from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
from telegram import Update

async def search_cmd(update: Update, context: ContextTypes.DEFAULT_TYPE):
    if not context.args:
        await update.message.reply_text("用法:/search <关键词>")
        return
    keyword = ' '.join(context.args)
    # 生成 letstgbot 搜索跳转提示
    text = (f"🔍 关键词:{keyword}\n"
            f"可以在 Telegram 中使用 @letstgbot 搜索相关频道:\n\n"
            f"👉 在 Telegram 搜索框输入:@letstgbot {keyword}")
    await update.message.reply_text(text)

if __name__ == "__main__":
    app = ApplicationBuilder().token(BOT_TOKEN).build()
    app.add_handler(CommandHandler("search", search_cmd))
    print("机器人已启动,可输入 /search 项目名 测试。")
    app.run_polling()

✅ 合规说明:
此功能仅提供官方机器人 @letstgbot 的搜索指引,
不直接抓取频道信息,也不含任何推广或外链,完全符合 CSDN 内容规范。


五、创新点与可拓展方向
模块 创新说明 可拓展方向
🔗 链上监控 实时监听指定钱包交易 可扩展为多钱包 / 地址分组监控
🧠 智能识别 可引入地址标签分析(交易所、DeFi、热钱包) 对接链上分析 API
🤖 群内搜索 结合 @letstgbot,快速找到相关社群 可加入项目白名单 / 风险预警
📊 可视化 结合 Telegram Inline Keyboard 展示交易历史 可嵌入图表统计、趋势检测

六、安全与合规提醒

  1. 仅监控公开区块链数据,不涉及私密内容。

  2. 禁止用于投资推荐、拉盘、交易推送等非技术用途。

  3. 建议部署时添加访问频率限制,避免触发 TronScan 限流。

  4. Bot Token 切勿公开。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐