[特殊字符] 教程|打造一个 Telegram 币圈波场交易记录检测机器人
一、项目概述
目标:
监听 TRON 地址 的转账交易(基于公开 API)。
当检测到新交易 → 向 Telegram 群发送推送。
搜索机器人
@letstgbot
:用户可输入/satrt项目名
,自动跳转到相关频道搜索结果。设计一套简易「交易预警 + 社群发现」框架。
创新点:
链上事件 + 社交索引融合:将公开区块链交易数据与 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 = Nonedef 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 Nonedef format_tx(tx):"""格式化交易信息"""amount = int(tx.get("amount", 0)) / 1_000_000owner = 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_txtx = get_latest_tx()if not tx: returnhash_ = 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 Updateasync def search_cmd(update: Update, context: ContextTypes.DEFAULT_TYPE):if not context.args:await update.message.reply_text("用法:/search <关键词>")returnkeyword = ' '.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 展示交易历史 可嵌入图表统计、趋势检测
六、安全与合规提醒
仅监控公开区块链数据,不涉及私密内容。
禁止用于投资推荐、拉盘、交易推送等非技术用途。
建议部署时添加访问频率限制,避免触发 TronScan 限流。
Bot Token 切勿公开。