Live incidents
5
Each rule's record
A drain-shaped payment, a dead endpoint and a confirmed theft cost very different amounts when the rule is wrong, so every rule carries its own record beside its latest fire: how often it fired, how many fires we later re-derived, how many held, how many we withdrew, how many came next to an address-poisoning attempt, and how many are live. A blank cell means we hold no record that could fill it. JSON · definition
| Rule | Fired | Live now | Re-derived | Held | Withdrawn | Next to poisoning | Latest fire |
|---|---|---|---|---|---|---|---|
| test then drain | 2 | 0 | 0 | — | — | 1 | 2026-11-06 |
| retry storm | 615 | 4 | 717 | 239 | 478 | — | 2026-11-09 |
| drain pattern Bankrbot wallet theft, May 2026: live missed, replay fires | 42 | 0 | 42 | 26 | 16 | 14 | 2026-11-08 |
| fleet sibling exposure Unscored: shapes we log, not verified detections | 136 | 0 | — | — | — | 32 | 2026-10-29 |
| mint burst Unscored: shapes we log, not verified detections | 365 | 0 | — | — | — | 2 | 2026-11-02 |
| god key unknown 7702 Unscored: shapes we log, not verified detections | 0 | 0 | — | — | — | — | never |
| uri timeout streak Unscored: shapes we log, not verified detections | 719 | 0 | — | — | — | — | 2026-11-10 |
| bind closed after nft transfer Unscored: shapes we log, not verified detections | 43,467 | 2 | — | — | — | 3 | 2026-11-09 |
| layering fan Unscored: shapes we log, not verified detections | 16 | 0 | — | — | — | — | 2026-10-28 |
| address poisoning loss | 2 | — | 2 | 2 | 0 | — | 2026-09-25 |
Measured rules
Every rule above was run against synthetic data with known answers before it shipped: an adaptation of IBM's AMLSim that generates thousands of agent wallets with drains, retry storms, mint bursts and layering rings planted inside, then runs these very detectors over it (generator, validator and reports, Apache-2.0). Synthetic data measures the rules, not the chain: a number here says how a rule behaves on a shape, and nothing about how often the shape occurs in the real ledger. Weekly run of 11 October 2026, seed 20261010: 2,813 agents, 66,900 transfers, 189 planted patterns.
| Rule | Planted | Caught | False alarms | Precision | Status |
|---|---|---|---|---|---|
retry_storm v2 (run, ten-minute peak) | 15 | 15, plus the 8 hour-straddling storms v1 missed | 0 | 100% | live since 11 Oct |
mint_burst v2 (run, sixty-minute peak) | 6 | 6 | 0 | 100% | live since 11 Oct |
drain_pattern v1 rule alone | 25 | 25 | 11 (all one-off purchases) | 69.4% | live; the balance reading below is now published beside each fire |
drain_pattern with the balance test (took 80%+ of the wallet) | 25 | 25 | 0 | 100% | evidence on every detection since 11 Oct; a filter after a month of side-by-side numbers |
layering_fan (same-amount fan-out) | 6 | 6 | 0 | 100% | new kind, 11 Oct |
uri_timeout_streak | 12 | 12 | 0 | 100% | live |
| slow drain (a wallet emptied over 72 hours in several payments) | 10 | 10 | 4 | 86% | not published: on the live ledger the test fires on ordinary hot wallets that run near zero |
| slow drain by the share of outflow the new payee took (no chain read) | 10 | 10 | 1 | 90.9% | candidate, not live: on the live ledger it keeps 44 of 156 windows all time (5 of 25 in the last 30 days), which a human reads first; with its full conditions it kept 3 windows on 13 October that the 11 October reading did not pick, so it stays off until rule and reading agree (the 44 windows) |
Also checked on the same run: the liveness ladder (2,813 of 2,813 agents at the level the published rule says), the pass-through rule (10 of 10 cases) and the address-poisoning matcher (12 of 12). The run repeats every Sunday; the table is updated at each release.
By kind · tap one to filter the log and read the rule
The log · newest first · tap a row for everything we hold on it
| When | Kind | Severity | Subject | Count | What was seen |
|---|---|---|---|---|---|
| 2026-11-10 06:24 UTC | uri timeout streak | info | 0x8004A1…8637 | 5 | Registration eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:28637 has failed 5 probes and has never answered |
| 2026-11-10 00:19 UTC | uri timeout streak | info | 0x8004A1…3020 | 5 | Registration eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:23020 has failed 5 probes and has never answered |
| 2026-11-10 00:18 UTC | uri timeout streak | info | 0x8004A1…0691 | 5 | Registration eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:30691 has failed 5 probes and has never answered |
| 2026-11-09 19:06 UTC | live · retry storm | notable | #529727 | 647 | Registration #529727 paid 0xf27313…b42f 647 times in a run, 85 of them inside ten minutes |
| 2026-11-09 18:12 UTC | uri timeout streak | info | 0x8004A1…5781 | 5 | Registration eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:55781 has failed 5 probes and has never answered |
| 2026-11-09 12:20 UTC | uri timeout streak | info | 0x8004A1…1902 | 5 | Registration eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:1902 has failed 5 probes and has never answered |
| 2026-11-09 03:14 UTC | bind closed after nft transfer | info | #1173933 | — | Registration #1173933 changed owner — the wallet we joined it to is no longer its wallet |
| 2026-11-09 02:58 UTC | bind closed after nft transfer | info | #1173894 | — | Registration #1173894 changed owner — the wallet we joined it to is no longer its wallet |
| 2026-11-08 23:13 UTC | drain pattern | notable | #58971 | — | Registration #58971 sent 29x its previous largest payment to an address it had never paid, 100% of what the wallet held |
| 2026-11-08 19:14 UTC | live · bind closed after nft transfer | notable | #1131574 | — | Registration #1131574 changed owner — the wallet we joined it to is no longer its wallet |
| 2026-11-08 18:35 UTC | delegate changed | info | #56706 | — | delegate changed |
| 2026-11-08 18:18 UTC | uri timeout streak | info | 0x8004A1…8885 | 5 | Registration eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:38885 has failed 5 probes and has never answered |
| 2026-11-08 17:22 UTC | live · bind closed after nft transfer | notable | #58977 | — | Registration #58977 changed owner — the wallet we joined it to is no longer its wallet |
| 2026-11-08 14:57 UTC | live · retry storm | notable | #529727 | 2,460 | Registration #529727 paid 0xf27313…b42f 2460 times in a run, 99 of them inside ten minutes |
| 2026-11-08 12:14 UTC | uri timeout streak | info | 0x8004A1…2751 | 5 | Registration eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:52751 has failed 5 probes and has never answered |
| 2026-11-08 06:24 UTC | uri timeout streak | info | 0x8004A1…0984 | 5 | Registration eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:20984 has failed 5 probes and has never answered |
| 2026-11-08 04:03 UTC | bind closed after nft transfer | info | #1171226 | — | Registration #1171226 changed owner — the wallet we joined it to is no longer its wallet |
| 2026-11-08 03:52 UTC | bind closed after nft transfer | info | #1171207 | — | Registration #1171207 changed owner — the wallet we joined it to is no longer its wallet |
| 2026-11-08 03:30 UTC | live · retry storm | notable | #88292 | 365 | Registration #88292 paid 0xd334ab…17ed 365 times in a run, 184 of them inside ten minutes |
| 2026-11-08 03:27 UTC | bind closed after nft transfer | info | #1171164 | — | Registration #1171164 changed owner — the wallet we joined it to is no longer its wallet |
| 2026-11-08 03:20 UTC | bind closed after nft transfer | info | #1171153 | — | Registration #1171153 changed owner — the wallet we joined it to is no longer its wallet |
| 2026-11-08 00:26 UTC | uri timeout streak | info | 0x8004A1…2122 | 5 | Registration eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:52122 has failed 5 probes and has never answered |
| 2026-11-08 00:25 UTC | uri timeout streak | info | 0x8004A1…0182 | 5 | Registration eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:30182 has failed 5 probes and has never answered |
| 2026-11-07 21:38 UTC | drain pattern | notable | #57191 | — | Registration #57191 sent 84x its previous largest payment to an address it had never paid, 100% of what the wallet held |
| 2026-11-07 14:37 UTC | live · retry storm | notable | #529727 | 3,090 | Registration #529727 paid 0xf27313…b42f 3090 times in a run, 100 of them inside ten minutes |
45,364 logged · 1,975 more with a Desk plan · JSON API · live incidents only · how the ranks work
Detection, incident, and the difference.
New, 11 October 2026: three corrections and a new kind. Retry storms and mint bursts are now found as runs with a peak: a storm is a run of payments to one payee with no gap over ten minutes and some ten-minute span holding fifty or more; a burst the same with sixty minutes and twenty-five. The calendar-hour buckets they replace missed every storm that crossed the hour mark: 10 storm detections were logged where the ledger holds 45, from 7 payer–payee pairs where there are 28, and 83 bursting addresses where there are 88. Rows logged before 11 October stay in the log as history. Every drain detection now carries a balance reading, how much of what the wallet held the payment took, read from the chain at the block before: on the 47 drain-shaped payments since February, 39 took 80 to 100 percent. It is evidence beside the rule, not yet a filter. And layering_fan is new: one agent paying four or more others the same exact amount within days, the one layering shape the chain has shown (ten all time, each a fleet being funded; no cycle and no scatter-gather in the 314,826 agent-to-agent payments walked on 10 October). A shape, never an incident. Lists are now capped with a warning instead of silently. Definitions: retry_storm.v2, mint_burst.v2, drain_pattern.v2, layering_fan.v1.
New, 24 September 2026: drain_pattern. A payment at least five times the agent’s previous largest, at least $250, to an address it had never paid, after at least three earlier payments. It is the shape a drained agent wallet leaves, and also the shape of a legitimate one-off purchase, so it is always a detection for a human to read, never an incident, and the agent is never named publicly. The reasoning →
A detection is an occurrence: it happened at a time, we can point at the evidence, and a reader could in principle have watched it happen. A detector that fired on a state would turn this page into a scoreboard, and a scoreboard of low scores is worth nothing to anybody. "This agent has never answered a probe" sits on the edge — it is a state — so it only becomes a detection after a streak of failures with no success ever recorded, which makes it an event about our own repeated attempts rather than a verdict on the agent.
An incident is a detection that is also a harm, and recent. Three kinds qualify: a retry storm, where an agent pays the same counterparty over and over and somebody is paying the fees for every attempt; an identity that changed owner under a binding people rely on, so the history they trust now belongs to somebody else; and signing delegated to an implementation nobody has vetted. Each counts as live for 72 hours, then stays in the log as a detection.
A mint burst is never an incident, however large. One address minting hundreds of registrations in an hour is exactly what a platform issuing identities for its users looks like. It is worth logging because it changes what a registration count means — the headline is measuring a script, not an ecosystem — but it harms nobody. This page called it a sybil burst until September 2026, and that was wrong: sybil asserts intent, and our own definition says the opposite.
Detectors that are armed and currently silent still matter. god_key_unknown_7702 fires when a wallet delegates to an implementation outside a curated allowlist, and that allowlist ships empty on purpose — until a human has read a contract and can say why it belongs there, calling an unknown implementation a god key would be a guess, and this site does not publish guesses. It reports nothing today, and that is the honest answer rather than a broken one.
Get these as alerts.
Everything live, and a morning digest: the Telegram group t.me/AgenticFinanceGraph posts each live incident as it is logged and a digest every morning. The digest is also how you know the feed is alive on a quiet day.
Your own agents: message @AgenticGraphBot and send /watch 57657 (an ERC-8004 number on Base, its slug, or the bound wallet). Free, three agents per chat. The bot tells you when our detectors log something on one of them, and /agent 57657, /top and /detections answer on demand. Every agent page has a Watch on Telegram button that opens the bot with that agent already watched. /stop deletes the chat's id and its list.
I joined the group but see no alerts: alerts post only when a detector logs a live incident, and the morning digest proves the feed is running. The bot did not answer /watch: send the agent's number, not its name. Email alerts are next. A chat watches 1 agent free, or 20 or 60 when it is linked to an Operator or Team Desk (/link).