/api/v1/health
Ledger head, per-stream collector cursors, and the build actually running (version, commit, uptime).
Freeze proposals are public on chain — we only got there first and put them in order. Public ledger tables are available as JSON, as an Atom feed, and as CSV. Address-risk queries and address-filtered exports require Telegram sign-in and paid-query confirmation. General ledger feeds remain public.
$ curl -s https://ualert.example/api/v1/proposals?status=pending | jq '.data[0]'
{
"id": 10469,
"action": "add",
"target_address": "TCCBhcmEeaX7...bFHP1D",
"submitted_at": { "iso": "2026-08-14T09:49:39Z", "ms": 1786734579000 },
"executed_at": null,
"window_seconds": null,
"status": "pending",
"url": "/p/10469"
}
Every response carries a ledger block with the head block
and the newest event we hold. Judge freshness from that rather than from us calling
it “live”.
Ledger head, per-stream collector cursors, and the build actually running (version, commit, uptime).
Freeze-type proposals, newest first.
One proposal with its on-chain events, its batch, and where its window sits against every executed freeze we have.
Raw ledger events.
Addresses the ledger has seen, ranked.
Everything the ledger holds for one address. No balance, no verdict — those need a chain call and subscribers' alerts own that quota.
Freezes arrive in batches. This lists them as objects, which no other tracker does.
One batch and every proposal in it.
Aggregates behind the data page.
Atom feed of proposals — for readers, Slack, n8n, anything that speaks RSS.
The current table, with the filters in the URL applied.
/feed.xml is an Atom feed of freeze proposals. It works in any reader, and in Slack, n8n or Zapier without a line of code — useful if you want the warnings but not another chat bot.