Stop polling TRON.
Get signed webhooks when USDT lands.

Register the addresses you care about. We watch every block, handle finality, and POST you an HMAC-signed webhook once the deposit is confirmed. No more getblockbynum loops, no more missing-transaction traps — or get alerts straight in Telegram, no server required.

Get started free Read the docs

Live from mainnet

Real deliveries from the last few minutes on addresses we monitor ourselves — three public canary addresses that verify the whole pipeline end-to-end, 24/7 (they also drive our alerting).

Delivered (UTC)AssetToTxStatus
2026-09-24 03:29:133.2223 TRXTSD2AW…rLUee3f4b4655c…delivered ✓ signature verified
2026-09-24 03:29:133.2223 TRXTSD2AW…rLUe47e5329fdd…delivered ✓ signature verified
2026-09-24 03:27:523.2223 TRXTSD2AW…rLUe3a724d2c97…delivered ✓ signature verified
2026-09-24 03:27:026.53055 TRXTSD2AW…rLUe82a5463578…delivered ✓ signature verified
2026-09-24 03:26:213.2223 TRXTSD2AW…rLUe5c9caf6ee4…delivered ✓ signature verified

Refreshes every 5 minutes; rendered server-side — no tracking, no third-party requests. Last render 03:30:38Z.

Live on TRON mainnet · 24/7 canary verifying real deliveries · 100% delivery success in production burn-in · Zero private keys, read-only by design

You've written this loop before

Every team building on TRON ends up writing the same fragile scraper. We wrote it once, properly, so you don't have to.

The polling loop

getblockbynum every 3 seconds, parse every transaction, dedupe, retry, repeat. Every team builds the same fragile scraper.

The finality trap

Read from the wrong node and transactions "disappear". We only emit events confirmed by solidity nodes — the #1 cause of missing-deposit bugs, handled.

The 3am pager

Your script died at block 85,101,201. Ours has a cursor, catch-up mode, retries with backoff, a dead-letter queue — and an events API to reconcile against.

How it works

Two ways in — pick yours.

For developers signed webhooks into your backend

  1. Create a watch — one API call, or two clicks in the console.
  2. We watch the chain — every block, confirmed-only, ~3s latency.
  3. You get a signed webhook — HMAC-SHA256, retries with backoff, plus GET /v1/events as your reconciliation safety net.
# 1. Watch an address
curl -X POST https://tronhooks.com/v1/watches \
  -H "Authorization: Bearer tw_live_..." \
  -d '{
    "address": "TYourAddress...",
    "asset_filter": "USDT",
    "webhook_url": "https://you.dev/hook"
  }'
See the signed webhook payload
// 2. A signed webhook on every confirmed deposit
{
  "api_version": "2026-08",
  "event_id": "cmshauqa30...",
  "type": "transfer.confirmed",
  "network": "mainnet",
  "asset": "USDT",
  "to": "TYourAddress...",
  "from": "TSenderAddr...",
  "amount": "129.5",
  "amount_raw": "129500000",
  "tx_id": "f647d176fe9f...",
  "event_index": 0,
  "block_number": 85113777,
  "block_timestamp": "2026-08-06T09:14:27.000Z",
  "contract": "TR7NHqje...",
  "watch_id": "cmshaqna..."
}

Not a developer? alerts in Telegram, zero code

  1. Sign up — email and password, nothing else.
  2. Connect Telegram — one click, works in groups too.
  3. Add your addresses — get a Telegram message the moment a deposit is confirmed. Zero servers, zero webhooks.

Built for production

Finality done right

Events fire only after solidity-node confirmation. No reorg surprises.

Delivery you can audit

Every attempt logged with response codes; failed hooks land in a dead-letter queue you can inspect, not a void.

Non-custodial by design

Read-only infrastructure. We never touch private keys or funds. Nothing to steal, nothing to trust.

No code? No problem

Connect Telegram, watch your addresses, get alerts. Zero servers, zero webhooks.

No event caps

Plans are priced by watched addresses only. A busy address never costs extra and never gets throttled — every confirmed transfer is delivered.

Engineered, not improvised

Rate-limit headers, idempotent event IDs, versioned payloads, a TypeScript SDK, a public status page, and a machine-readable /healthz.

tronhooks vs. building it yourself

Honest comparison of the three ways teams get TRON deposit events.

tronhooksDIY polling loopRaw block / event streams
Time to first deposit eventminutesdays to weeksdays
Finality (no "vanishing" txs)built in — solidity-onlyyou implementyou filter, usually
Address filteringserver-side, per watchyour codeyou sift the full firehose
Retries, dead-letter, attempt logbuilt inyou buildvaries, often none
Signed payloads (HMAC)n/avaries
Reconciliation after downtimeGET /v1/eventsyour databasereplay you build
Event capsnone — priced by addressesnoneoften events/day tiers
Telegram alerts, no code
Upstream quota & node opsoursyourspartly yours
What you pay$0 → $9/moengineering time + API quotametered usage

DIY is the right call if TRON is your core competency and you already run nodes. For everyone else, we handle the block loop so you can ship the product.

Pricing

Start free. Upgrade when you outgrow three addresses.

FreeStarter $9/moPro $29/moScale $99/moBusiness
Watched addresses3201001,00010,000+
Rate limit60 rpm120 rpm300 rpm1,200 rpmcustom
Webhooks + events API
Telegram alerts
SLA + dedicated support
Annual (pay for 10 months)$90/yr$290/yr$990/yrContact us

Paid plans opening soon — early signups get Pro features free until payments open. Paid tiers are billed in USDT (TRC-20); questions → ops@tronhooks.com.

FAQ

Do you hold keys or funds?

No. tronhooks is read-only infrastructure — we never generate deposit addresses, never custody funds, never see a private key.

How fast are notifications?

We process at block speed (~3s). A confirmed deposit typically reaches your endpoint — or your Telegram — seconds after finality.

What if my endpoint is down?

Retries over ~9 hours with exponential backoff (1m/5m/30m/2h/6h). After that the event lands in your dead-letter view, and GET /v1/events always has the full history for reconciliation.

I'm not a developer — can I use this?

Yes. Connect Telegram in the console, add the addresses you care about, and get alerts on every confirmed deposit. Console-only, no code, no server.

Do you cap events per day?

No. Plans are priced by the number of watched addresses only — there is no events-per-day quota, no overage, and a busy address is never throttled. Rate limits apply to your API calls, not to the webhooks we send you.

Which assets?

USDT (TRC-20) and native TRX today, with incoming, outgoing, or both directions per watch. Any-TRC-20 support is on the roadmap.