首页 / 快速开始

快速开始

从注册到收到第一条到账确认 webhook,大约 5 分钟。

1. 注册账号,创建 API key

  1. tronhooks.com/app 注册(邮箱+密码,或 TronLink 钱包登录)。
  2. API keys 区创建 key。前缀与网络绑定:tw_test_… 只用于 Nile 测试网,tw_live_… 只用于主网。key 明文只显示一次,立即保存。

2. 注册监控地址

curl -X POST https://tronhooks.com/v1/watches \
  -H "Authorization: Bearer tw_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "address": "T你的地址...",
    "asset_filter": "USDT",
    "direction": "incoming",
    "webhook_url": "https://your-server.example/tron-hook"
  }'

201 响应包含 watch 信息和 只显示一次 的签名密钥 secret(whsec_…)。

⚠️ secret 只显示一次,服务端加密存储、无法找回——丢了就删掉 watch 重建一个。

生效时间:新 watch 约 3 秒内生效(一个扫描周期);生效前的历史转账不会追溯通知。

direction 可选 incoming(入账,默认)/ outgoing(转出)/ both(双向)。

3. 接收并验签

到账固化确认后,我们 POST 一条 JSON,带 X-Signature 头。必须对原始请求体验签:

import express from 'express';
import { constructEvent } from '@tronhooks/sdk';   // npm i @tronhooks/sdk

const app = express();
app.post('/tron-hook', express.raw({ type: 'application/json' }), (req, res) => {
  const event = constructEvent(req.body, req.header('x-signature'), process.env.WHSEC);
  console.log(`${event.amount} ${event.asset} → ${event.to}`);
  res.sendStatus(200); // 任何 2xx 都算确认收到
});

必须用原始请求体(raw body)验签——任何 JSON 重新序列化(JSON.stringify(req.body)、框架 body parser)都会改变字节顺序导致验签失败。所以示例用 express.raw()。详细说明(含 Python 版):验签指南(英文)

4. 随时对账

curl "https://tronhooks.com/v1/events?limit=10" \
  -H "Authorization: Bearer tw_live_..."

GET /v1/events 返回全部事件与投递状态——接收端宕机时的兜底。投递语义是 at-least-once:按 event_id 去重。

不写代码?Telegram 路径

  1. /app 注册。
  2. Connect Telegram → 打开链接 → 按 Start(群聊:把 @tronhooks_bot 拉进群,发 /bind 绑定码)。
  3. 添加地址,通知目标选 → Telegram。到账确认后 TG 消息直达,带 Tronscan 链接。

在 Nile 测试网试用

  1. nileex.io 水龙头 免费领测试 TRX 和 USDT。
  2. 我们监控的 Nile 测试 USDT 合约是 TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj(水龙头发的就是它)。
  3. 控制台切到 Nile testnet,建 tw_test_… key 和 watch,给自己转一笔水龙头 USDT 即可看到完整流程。

收不到回调?三个常见原因

  1. URL 不可达或被安全规则拒绝:必须是公网可解析的 http(s) 地址,内网/保留地址(localhost、10.x、192.168.x 等)在创建和投递时都会被拒。开发期可用 webhook 调试器
  2. 验签失败:几乎都是没用原始 body(见上面的加粗提示)。
  3. 看投递日志:控制台 → Events & delivery log → 点开事件,每次尝试的响应码都有记录(重试节奏 1m/5m/30m/2h/6h,之后进死信)。

整个接入就这些。免费档 3 个监控地址,无需绑卡。

打开控制台