All systems normal
XRPL network status updates live · worker fields refresh every 60 s
Heartbeat · scales with network load 16 bpm
Dashboard incident2026-05-19 04:02 EDT — ~2-minute serving outage, resolved. XRP Ledger was unaffected.

For roughly two minutes around 04:02 EDT (08:02 UTC) the site returned 502 errors. Better Stack's uptime monitor flagged it; the service self-recovered within ~2 minutes.

Cause. Meta's AI training crawler (User-Agent meta-externalagent/1.1, source IP range 57.141.18.0/24) hit the wallet pages faster than our workers could serve them. The wallet route walks the on-chain transfer graph and can take 5-25 seconds per request, so a sustained burst exhausted the gunicorn worker pool and tripped its 30-second timeout.

Fix shipped 08:18 EDT. An application-layer block now returns HTTP 403 for any request whose User-Agent contains meta-externalagent, before the request reaches a route handler. Normal browsers are unaffected. Deeper structural work — promoting the credentials-walker thread out of the gunicorn worker process — is tracked separately and not on the path of this incident.

Why we're telling you. Truth-first applies to our own outages, not just to the on-chain data. If you hit the site at 04:02 EDT and got an error, this is what happened and what we did about it.

XRPL network
The XRP Ledger is healthy. New ledgers are being closed every 3.9 seconds — exactly as expected. Validators are in agreement.
operating normally

What this is

The XRP Ledger is the public blockchain this whole site reads from — a global network of independent computers that all agree on every transaction. "Healthy" means new ledgers (think of them as pages in the ledger book) are closing on time and validators agree on what they contain.

How we know

We ask one of the network's public servers for the same status data anyone can read. We watch how often new ledgers close (every ~3.5–4 seconds is normal) and whether validators — the computers that vote on each ledger's contents — are in agreement. If close times stretch out or the quorum drops, the status above changes.

Pool tracker
Catalogue of XRPL automated market makers is up to date — tracking 29,837 AMM pools across the ledger.
ready

What this is

A live catalogue of the 29,837 AMM pools we currently track on the XRP Ledger. AMMs are pools of two assets that let people swap one for the other without an order book — they handle a big chunk of XRPL token trading.

How we know

A background worker scans the ledger every few hours, finds new AMM pools as they're created, and ranks them by how much value they hold (TVL). The result is the catalogue that powers the /pools page. "Ready" means the catalogue has been built; "building" means it's still being scanned for the first time.

Live activity feed
Watching every transaction on the XRP Ledger in real time. Since startup we've logged 28,784 large transfers and 9,991,941 token trades. Last tracked event 18s ago.
streaming

What this is

A real-time watcher that sees every transaction the moment it confirms on the XRP Ledger. It tags the big stuff — large XRP transfers (whale moves) and token trades — so this site can show live activity, fill its rankings, and build history.

How we know

A persistent websocket subscription to a public XRPL node streams every closed transaction as it happens. "Streaming" means the connection is live and processing.

Ledgers close every few seconds, but the live watcher only logs the events this site tracks — whale transfers, token trades, and AMM creations. Those tick on their own cadence (often a few minutes apart), so the "Last tracked event" timestamp can lag the ledger heartbeat without anything being wrong.

Mac → prod mirror
Data writes from the Mac worker are reaching prod. Last successful mirror 2h 15m ago.
mirroring

What this is

Workers run on a Mac in Charlie's office. Prod (Render) is a separate machine in the US — it has none of the Mac's files. The mirror is the bridge: every time the Mac finishes a ranking pass or captures a new event, it writes the result to a shared Neon Postgres so prod can read the same data.

How we know

Each successful mirror write also stamps a heartbeat row. The age of that row is the freshness signal: under 5h 0m and the bridge is working, over and prod is reading stale data until the next write lands.

Stored data
Historical activity is being saved to disk so charts and rankings survive restarts. 29,167 events recorded · 181,621 token volume entries.
healthy

What this is

A growing archive of everything the live watcher captures, written to a database the moment it happens. Without this, the site would forget yesterday's data on every restart — no charts, no rankings, no history.

How we know

Every event the watcher tags is written into Postgres in real time and mirrored to a local file as backup. The two counts above are the cumulative rows currently stored. The freshness signal is separate — we read the age of the most recent event row directly, so a write path that stalls while the live feed stays connected still downgrades this card.

Show technical details

XRPL network (live pulse)

ledger index104,679,440
avg close time3.9s
last close age2s
validation quorum28
load factor
summary XRPL is operating normally. Closing ledgers every 3.9s. Network load is light.

Pool tracker (ranker cron)

amms in index29,837
ranker last refresh2h 15m ago
ranker next refreshin ~1h 44m
refresh cadenceevery 4 hours
bootstrap snapshotnot on this host

Live watcher (stream)

uptime734h 51m
txns observed58,708,483
amm creates930
whale events (since restart)28784
token events (since restart)9,991,941
new tokens (since restart)14236
last ledger104,679,374
last tracked event18s ago

Data substrate

events.db rows29,167
volumes.db rows181,621