Insights

The D'CENT Drain, Day by Day: 12.7 Million XRP, Six Waves, One List of Keys

On 15 September 2026, between 15:35 and 18:55 UTC, 1,682 XRP Ledger wallets were emptied into seven addresses, none of which existed before it began. That was the first wave of six, and the six were not the end: the same keys were still in use on 4 Oct. In all, these keys have been used to take 12,727,044 XRP from 12,516 wallets and to delete 12,156 accounts, most of them already emptied, for the reserve each one held; 7.0M XRP was swapped to Ethereum. That includes five accounts that from 27 September used the keys of 1,043 wallets emptied earlier and took 4,888 more; the ledger does not show whether one operator runs them all. D'CENT has told App Wallet users to move everything; we have read that app separately. This is what the ledger itself says, in order, with every figure derived from it.

In one screen

12,727,044 XRP
taken from 15 September to 4 Oct, sweeps and deletions together
12,516
wallets: 5,690 swept, 6,826 more deleted with whatever they held
6
waves into 12 collector addresses over six days
12,156
accounts deleted with their owners’ keys once they were empty
6,955,091 XRP
swapped to Ethereum through THORChain
778,447 XRP
still sitting in the wallets that took it (2026-10-04 15:34 UTC)
  • 15 September opened by hand at 15:35: 8 wallets holding 99,999 XRP or more, 1,608,506 XRP, into five fresh addresses, an hour before any script ran. The script followed at 16:29 in two batches, with a 34-minute pause in which the 12 richest of the remaining wallets were moved by hand. Batch 1 got the reserve arithmetic wrong; batch 2 had it right to the drop. 1,682 wallets were swept that day, 3,618,110 XRP; the first version of this article counted 1,548 wallets and 2,009,321 XRP, because it had not found the early by-hand sweeps and skipped wallets that lost under 1 XRP.
  • 16 September, the day of D’CENT’s first notice, was the only quiet day. From 07:05 on the 17th, five more waves into five new collector addresses took 2,532 more wallets and 7,597,207 XRP, the last sweep at 20:56:41 on the 20th. Wave 5 was the day-one script itself, unchanged; wave 6 opened with the by-hand tool’s tag. The deletion sinks took payments as well: 531 wallets, 16,021 XRP, from the 18th.
  • From the morning of the 17th the keys were used a second time: 6,276 accounts were deleted for the reserve each one held, 1,618 of the 1,682 day-one wallets among them, and 2,750 wallets that had never been swept were deleted with whatever they held, 107,507 XRP in one case.
  • It did not stop on the 20th. From 21 September to 1 Oct 11:07 two new collectors took 681,765 XRP from 18 wallets, five new sinks took 1,275 deletions, and 112 wallets that had been emptied and then refilled lost what had been put back. 580 of the 1,407 wallets hit in those days had not been touched before.
  • From 27 Sep, five more accounts took 5,931 accounts and 266,261 XRP and deleted 5,880 of them: 1,043 emptied earlier in this incident, emptied again, and 4,888 never touched before. Their money leaves by other services; they are in the totals above and have their own section.
  • The money left the XRP Ledger fast. 6,955,091 XRP went into THORChain with swap memos naming 5 Ethereum addresses; 3,255,917 into unionchain.ai, a custodial service; 546,080 into NEAR Intents; 559,093 into Binance deposit tags. 778,447 XRP still sits in the wallets that took it, 510,111 of it in the first by-hand collectors of 15 September. The collector opened on 22 September held its 681,830 until 29 Sep, then swapped it to Ethereum.
  • The later victims are the same kind of wallet as the first: ordinary accounts first funded from an exchange, Uphold and Coinbase first this time. Unlike the day-one list, whose youngest wallet dates from 5 Feb 2025, the later waves reached 603 wallets created in 2025. The victims’ own earlier transactions are almost all untagged, so the ledger does not name the app; D’CENT’s status report does.
  • The by-hand tool carries the source tag of a consumer wallet app in wide use: 102,868 accounts in our index were activated by payments carrying it since March 2025, from 80,455 different wallets, and 3 of the day-one victims had used it themselves for ordinary payments in 2025. The ledger does not say which app it is.
  • Our own list had the script’s day-one collector 31 seconds in and every collector of waves 2 to 6 within minutes of its first sweep; the six by-hand collectors of the 15th, which take one to four wallets each, are what fan-in detection cannot see. The addresses are at the end.
The words used below
Sweep
A payment that empties a wallet into a collector. Every sweep here was signed with the wallet’s own key.
Collector
An address the sweeps are paid into. All but one of the 14 did not exist until the first sweep created them.
Reserve
The XRP an account must keep: 1 XRP plus 0.2 XRP for each trust line or other object it owns. A sweep cannot take it.
Deletion
AccountDelete, a transaction that removes an account and sends its reserve to an address it names. It needs the account’s key and a wallet that owns nothing.
Sink
A fresh wallet created to receive deletions. Seventeen opened on 18 and 19 September and 5 more from 22 September; they took payments too.
The script
The program that ran the day-one sweeps: a 10-drop fee, the reserve left behind exactly. The same program ran wave 5.
The by-hand tool
A wallet app used for the biggest wallets: a fixed source tag, a 20-drop fee, one payment every few seconds at typing pace. It opened the incident at 15:35 and moved the twelve.
The third tool
A second script seen from wave 3: a 12-drop fee, and a fixed margin left above the reserve.

Six days, six waves

Wallets swept per hour (up) and accounts deleted per hour (down)
15 to 20 September, UTC
020040060050091215 Sep16 Sep17 Sep18 Sep19 Sep20 Sepwave 11,682 walletswave 2814wave 3130wave 5694wave 6435wave 5 again364up: wallets swept that hour (blue)down: accounts deleted that hour (grey), 6,276 in all, up to 912 in an hour
Wave 4 (98 small wallets over 55 hours) is too spread out to show as a peak; the first by-hand sweeps of 15 September are the small bar at 15:00; the rest sit under batch 1. 16 September, the day of D’CENT’s first notice, is the only quiet day; the deletions begin the next morning, on the wallets emptied on the 15th.
The six waves
15 to 20 September, UTC
WaveCollectorWindow (UTC)WalletsXRPTool
17 addresses, listed at the end15 Sep 15:35 to 18:551,6823,618,110by hand first, 8 wallets of 99,999 XRP or more into five fresh addresses; then the script, batches 1 and 2; then the 12 richest of the rest by hand
2r9NqRa…JREg17 Sep 07:05 to 18 Sep 01:288142,725,737a second script, paying the 5000-drop fee the operator’s own cash-out payments pay
3rU5k4s…a7At17 Sep 11:13 to 18 Sep 07:53130 swept, 111 deleted whole1,608,463 + 448,837the third tool; 109 of the 130 held over 1,000 XRP
4rU9Syw…bdHt18 Sep 11:02 to 20 Sep 18:129836,536the third tool again, on small wallets
5rQKqEk…tgwY18 Sep 15:14 to 20 Sep 20:561,0632,868,877the day-one script, unchanged: 10 drops, exact to the drop on 1,061 of 1,067 sweeps
6rJSo9y…9yuV19 Sep 14:12 to 15:51435357,595the by-hand tool’s tag on 50 sweeps, then the third tool on 843 more
sinksthe 17 deletion sinks18 Sep 22:46 to 20 Sep 21:1853116,021payments into the deletion sinks; 446 of these wallets no collector had touched
Six waves, three tools, one list: every later wave reused the day-one script, the by-hand tool’s tag, or the keys of the day-one wallets. Wave 3 counts the wallets it swept and, separately, the wallets deleted whole into it. The last row is the payments the deletion sinks took alongside the deletions.

Nothing here required an exploit of the XRP Ledger. Each wallet signed an ordinary payment of nearly its whole balance, and later an ordinary deletion. The ledger shows what the keys did and when; it cannot show how they were obtained.

15 September, minute by minute

Wallets emptied per minute
15 September only, 15:30 to 19:00 UTC
010203015:3016:0016:3017:0017:3018:0018:3019:00batch 1206 wallets, 19,416 XRP34-minute pausethe formula is fixed12 by hand, 730,954 XRPby hand first8 wallets, 1,608,506 XRPbatch 21,469 wallets, 1,258,632 XRP, 19.1 a minuteticks below the axis: 145 failed attempts
The day opened by hand: 8 wallets of 99,999 XRP or more, 1,608,506 XRP, before the script started at 16:29:50. The gap in the middle is not a rest either: the 12 largest of the remaining wallets were moved during it, with the same by-hand tool, into a different address.
15 to 16 September 2026
UTC
15:35:50
The first sweep, by hand
510,108 XRP into rh95U2…QDNb, created by the payment, which still holds it. 6 more wallets of 99,999 XRP or more follow by 16:14 into three more fresh addresses, and the script drops 5 small wallets into two of them from 15:59.
16:29:50
The script starts
9.0 XRP from a wallet holding 10. The payment creates the collector rDT8UP…wPui; it did not exist before.
16:30:21
First failure, and our first flag
A 49,208 XRP wallet with 1 object on it: the script asks for balance minus 1 XRP, the ledger refuses (tecUNFUNDED_PAYMENT). In the same ledger our fan-in rule blocklists the collector, five senders in.
16:43:20
Batch 1 stops
206 wallets, 19,416 XRP, 55 failed attempts. The script has been hitting every wallet that holds a trust line.
17:05:20
The twelve richest, by hand
From 88,528 down to 42,001 XRP, one every 10 to 30 seconds, with a different tool, into a second address rDAeWP…oXzj. 730,954 XRP by 17:13:51.
17:17:40
Batch 2 starts, formula fixed
The first wallet is one that failed at 16:31. The script now subtracts the owner reserve and the fee, exact to the drop.
17:26:12
Sweep fan-in confirms the collector
25 unrelated wallets emptied into it inside the window. From here every later sweep into it is recorded as a drain.
18:25:32
719,476 XRP moves on
To rE6Mxn…i9UL, created by the payment, while batch 2 is still running.
18:34:20
Batch 2 ends
1,469 wallets, 1,258,632 XRP, at 19.1 wallets a minute. It also took the second reserve the by-hand tool had left in the twelve, 1 to 4 XRP each.
18:55:52
154,998 XRP by hand, straight to Binance
One more wallet moved by the by-hand tool into a fresh address, which pays it into Binance deposit tags in four payments by 22:42. The address is later deleted into a laundering hub.
18:54:30
Peeling begins
The hop pays 6,000 XRP to a fresh wallet; at 19:11:40 that wallet deletes itself into the hub. Eleven times over four hours.
20:18:10
The hub’s first exchange deposit
12,000 XRP into a Binance deposit tag, from a wallet the hub had created 2 minutes earlier.
01:48:10
Bridgers (16 September)
118,399 XRP from r91LKB…SxFR into the bridge service in ten payments, the last at 03:07:51.
05:27 to 05:45
Clean-up
Eight used cash-out wallets delete themselves into a second hub in 18 minutes.
09:20
D’CENT’s notice
18 hours after the first sweep: abnormal transfers involving the App Wallet; update before moving anything.
From the first sweep to the first exchange deposit: 4 hours 42 minutes. To the bridge: 10 hours 12 minutes.

One script, one bug

One program, edited once
batches 1 and 2 on 15 September; wave 5 on 18 to 20 September
Batch 1Batch 2Wave 5
Window15:35:50 to 16:43:2017:17:40 to 18:34:2018 Sep 15:14 to 20 Sep 20:56
Amount sentbalance − 1 XRPbalance − (1 + 0.2 × objects) XRP − feebalance − (1 + 0.2 × objects) XRP − fee
Fee paid per sweep10 drops10 drops10 drops
Wallets emptied2061,4691,063
XRP taken19,4161,258,6322,868,877
Wallets holding a trust line or other object0 of 206372 of 1,469213 of 1,063
Failed attempts5590144
Exact to the drop01,456 of 1,4691,061 of 1,067
An XRP Ledger account must keep 1 XRP plus 0.2 XRP per object it owns. Batch 1 forgot the objects, so a wallet with one trust line could not send what it was asked to send. Batch 2 and wave 5 leave exactly the reserve behind; the sweeps that do not are retried payments that also paid a fee. Failed attempts are read from the victims’ own histories: a refused payment only shows there.

The first attempt on the wallet rQpTpg…jcaK came at 16:30:21 and asked for 49,206.577956 XRP from a balance of 49,207.577956: balance minus one XRP, to the drop. The wallet owns 1 object, so its reserve is 1.2 XRP and the ledger refused. The script tried the same sum 2 more times, at 16:32:10 and 16:50:21, and failed each time. At 17:12:30 the wallet was emptied by hand instead. 97 wallets failed at least once on the 15th; 86 of them were collected later that day, the first by batch 2’s opening payment at 17:17:40.

The corrected formula tells you what the operator learned in those 34 minutes: the owner reserve, and the fee. Batch 2 leaves exactly the reserve behind on 1,456 of its 1,469 sweeps; the rest differ by the fee of a retried payment. Both batches pay 10 drops per transaction and set the same fields; it is one program, edited once. Three days later that same program, with the same fee and the same formula, opened wave 5 and left the reserve to the drop on 1,061 of 1,067 sweeps.

The twelve went by hand

Every emptied wallet, ranked by what it held above the reserve
15 September only, both axes logarithmic
0.010.11101001k10k100klargest10th100th1,682th42,001 XRP: above this line, by hand510,108 XRP, by hand at 15:35the script's largest: 41,749381 wallets held between 9 and 11 XRP
The split is clean: every wallet above 42,001 XRP went by hand, none below, and the 8 largest went first, an hour before the script started. Someone had the list sorted by balance. 134 wallets at the far right held less than 1 XRP above the reserve and were swept anyway.

The tool that moved the twelve is not the script. Its payments carry a SourceTag, 1741383633; pay a 20-drop fee instead of 10; set their expiry ledger to the current ledger plus the account's own sequence number, which is a bug no library makes; and leave exactly twice the reserve behind, the way an app with a safety margin does. They arrive 10 to 30 seconds apart, at typing pace, with a four-minute break after the sixth. The same tool created the operator's own provisioning wallet rf3v2W…HEez on 22 August; 23 of the 26 wallets that one funded fed the laundering hub. On 19 September it cashed the twelve’s 730,954 XRP out, and opened wave 6 with 50 sweeps.

It had also opened the day. Between 15:35 and 16:14, before the script’s first payment, the same tool moved the 7 largest wallets of the whole list, from 510,108 down to 99,999 XRP, into four fresh addresses, and at 18:55 one more, 154,998 XRP, into a fifth. Three of those addresses were cashed out on the morning of 19 September with the same 5,000-drop fee as the rest of the operator’s cash-out payments; rh95U2…QDNb still holds its 510,108 XRP. The script visited two of them at 15:59 with five small wallets, so the two tools were working the same list an hour before the script started in earnest.

The batch-2 script later visited all twelve and took the second reserve the tool had left, 1 to 4 XRP each, between 17:36:51 and 18:31:50. It did not know they had been handled; it was still working from its list.

The list came first

Batch 2: the order the script took the wallets in, against the year each wallet was created
15 September only
20212022202320241st400th800th1,200thmedian creation year, per 184 wallets
Rank correlation between sweep order and creation date: 0.66. Between sweep order and balance: 0.10. The day-one script walked a list ordered by when the wallets were made, not by what they held.
Did each wave walk its list in an order?
rank correlation: 1 = exactly that order, 0 = no relation, −1 = the reverse
WalletsOrder against creation dateOrder against balance
Day one, batch 21,4690.66 · strongly follows it0.10 · no relation
Wave 2814-0.08 · no relation0.09 · no relation
Wave 31300.01 · no relation-0.11 · no relation
Wave 4980.01 · no relation-0.15 · no relation
Wave 51,0630.03 · no relation0.54 · strongly follows it
Wave 6435-0.06 · no relation-0.90 · runs strongly against it
Day one is the only wave whose order follows creation date. Wave 6 was walked from the largest wallet down: the by-hand tool took the big ones, then the script took the rest.

Every wallet the script emptied was dusted with 10 drops 20 to 40 seconds afterwards. That is not the operator: the 47 wallets doing it have dusted 6,208 addresses since at least 12 September, exchange deposit addresses included, after any sizeable payment they see. Nothing the operator controls touched a victim before its sweep. The later waves were walked in other orders: wave 6 from the largest wallet down, waves 2, 3 and 5 in no order the ledger can name.

17 to 20 September, wave by wave

17 to 21 September 2026
UTC
17 Sep 07:05:11
Wave 2 opens
A new collector r9NqRa…JREg, created by its first sweep like the first one was. 396 wallets in its first hour; 814 wallets and 2,725,737 XRP by 01:28 the next morning.
17 Sep 10:22:10
The emptied wallets start being deleted
137 of the day-one wallets delete themselves into the day-one collector in 68 minutes, 476.6 XRP between them. An account can only do that with its own key.
17 Sep 11:13:41
Wave 3 opens, and takes the deletions
rU5k4s…a7At is the one collector the operator funded first, with 5.46 XRP through an instant-swap service. From 11:15:02 the day-one wallets are deleted into it: 1,283 by 07:39 the next morning, 875 of them in one hour.
17 Sep 15:39:21
107,507 XRP deleted whole
A wallet in use since 18 Mar 2022 is not swept but deleted, its whole balance going to wave 3’s collector. 111 wallets went this way into that collector, 448,837 XRP.
17 Sep 16:32:51
The largest single sweep
590,194 XRP into wave 2’s collector.
17 Sep 18:02:30
First swap to Ethereum
10 XRP into a THORChain vault with a swap memo naming an Ethereum address, a test; 10,000 XRP follows at 18:03:50. Wave 2 makes 31 deposits in all; its whole take is on Ethereum by 02:01 on 18 Sep.
17 Sep 20:11:52
Wave 3 sweeps the big wallets
130 wallets, 109 of them holding over 1,000 XRP, 1,608,463 XRP by 07:53. 4 of them had been emptied on the 15th and refilled since.
18 Sep 09:04:40
The parked money moves
The hop’s 653,475 and the day-one collector’s 410,019 XRP leave in 50,000 XRP pieces to fresh wallets. 707,490 XRP of it gathers in raG99z…GVYn, which has not moved since.
18 Sep 15:14:31
Wave 5: the day-one script returns
Same fee, same formula, exact to the drop. 694 wallets by midnight, 490,502 XRP.
18 Sep 17:23:12
Wave 3 cashes out
1,280,114 XRP into unionchain.ai, a custodial service, in 27 payments by 21:54, plus 300,000 paid straight from the collector.
18 Sep 22:47:10
A chain of deletion sinks
Eight fresh wallets, each created by one of the earlier ones between 22:46 and 06:45, take 2,029 deletions by 20 Sep 11:44. Nine more sinks open on the 19th at 15:12 and take 713.
19 Sep 00:35 to 04:15
The twelve’s money and the hop’s remainder go
By the by-hand tool: 350,000 to a fresh wallet, then 838,053 XRP into unionchain.ai through three fresh wallets and 50,000 into ChangeHero.
19 Sep 14:12:12
Wave 6, by hand first
50 sweeps carrying the by-hand tool’s tag, 339,542 XRP in 54 minutes, then 843 sweeps of 431 smaller wallets by the third tool. 264,101 XRP goes into NEAR Intents at 14:25, through a wallet created for it.
20 Sep 13:42:32
555,579 XRP in one sweep
Wave 5 resumes. From 20:00, 240 wallets in 57 minutes; the last sweep of the six waves is at 20:56:41.
20 Sep 21:45:31
2,398,000 XRP to Ethereum
Two THORChain deposits ten seconds apart, both naming the same Ethereum address.
21 Sep 00:57
D’CENT on reimbursement
“We do not yet have a confirmed outcome regarding reimbursement that we can provide.”
Wave 2 opened 22 hours after D’CENT’s first notice. The last sweep of the six waves came 18 hours after the notice that told App Wallet users to take action now.

Three things tie the later waves to the first. Wave 5’s collector rQKqEk…tgwY was filled by the day-one script exactly as batch 2 ran it: the same 10-drop fee, the reserve left behind to the drop on 1,061 of its 1,067 sweeps. Wave 6’s collector rJSo9y…9yuV opened with 50 payments carrying the tag and the 20-drop fee of the tool that moved the twelve. And the wallets emptied on the 15th were deleted, with their own keys, into wave 3’s collector rU5k4s…a7At, 1,283 of them; a script cannot do that without the key the sweep used.

Waves 2, 3 and 4 used two more tools. Wave 2’s script pays the fee the operator’s own cash-out payments pay, and its whole take went to Ethereum through the same THORChain vaults wave 5 used the next day. Waves 3 and 4 share a third tool that leaves a fixed margin above the reserve; 4 of wave 3’s wallets were day-one victims that had been refilled since. Wave 3 also read like the twelve: 109 of its 130 wallets held over 1,000 XRP, the largest 290,069, and its collector is the only one the operator funded before the first sweep rather than letting the first sweep create it.

A user who wrote to D’CENT on X put it plainly: “my account wasn’t drained until late on 9/17.” The later waves fell on wallets whose owners had had the notice for a day or more.

The keys were used again to delete the wallets

Where the 6,276 deletions were paid to
the day-one collector (17 Sep 10:22 to 11:30)137 (2.2%)
wave 3’s collector1,949 (31.1%)
wave 4’s collector173 (2.8%)
17 fresh sinks (18 Sep to 20 Sep)2,742 (43.7%)
5 newer sinks (22 Sep to 1 Oct)1,275 (20.3%)
Whose accounts they were (6,125 wallets)
day-one wallets, already emptied1,618 (26.4%)
later-wave wallets, already emptied1,249 (20.4%)
emptied into a sink first508 (8.3%)
never swept, held under 5 XRP2,429 (39.7%)
never swept, held 5 XRP or more321 (5.2%)
A wallet can be deleted more than once only if it is re-created in between, so the two panels count the same events: 6,276 deletions from 6,125 wallets, 532,728 XRP.

An XRP Ledger account that owns no trust lines or other objects can be deleted by its own key; the reserve it was holding, minus a 0.2 XRP fee, goes to an address the deletion names. From 10:22 on 17 September the operator did this to the wallets it had already emptied: 137 into the day-one collector in 68 minutes, then 1,283 into wave 3’s collector, 875 of them in a single hour, then 2,742 more into 17 fresh sinks between the evening of the 18th and midday on the 20th, and from 22 September 1,275 into 5 newer ones. In all, 6,276 deletions carried 532,728 XRP.

1,618 of the 1,682 wallets emptied on the 15th are gone this way, 1,249 of the 2,532 emptied in the later waves, and 508 that had been emptied into a sink first. The other 2,750 deleted accounts had never been swept at all. 2,429 of them held under 5 XRP, 2,194 XRP between them: the reserve and little else, wallets that were dormant or whose owners had already moved out and left the minimum behind. The remaining 321 held 519,022 XRP between them and were simply deleted whole, 28 of them above 1,000 XRP; the largest, a wallet in use since 2022, lost 107,507 XRP in one deletion. Deleting a wallet is worth about 1 XRP to the thief and costs the owner the account itself: the address cannot be reused without paying the reserve again, and every trust line and tag that pointed at it is dead.

The sinks were not only for deletions. From 18 Sep 22:46 531 wallets were emptied into them by payment, 16,021 XRP; 446 of those wallets no collector had touched.

Which is also the clearest proof of one operator. A deletion can only be signed by the account’s own key, so every one of those 6,276 accounts was on the same key list as the sweeps, and the list reached wallets the sweeps never touched.

After 20 September: the keys are still in use

After the six waves, day by day
21 Sep to 1 Oct, UTC
DayWallets sweptXRP sweptAccounts deletedXRP in deletions
21 Sep3237,74000
22 Sep97287,6381,0241,265
23 Sep3121,4942839
24 Sep2192,0407114
25 Sep555,9564458
26 Sep0011
27 Sep3400
28 Sep691,38065
29 Sep0011
30 Sep003943
1 Oct60465125320
A wallet swept on two days is counted on both. The last row runs to 11:07.
21 Sep to 1 Oct 2026
UTC
21 Sep 05:44:20
A new collector, opened by its first victim
A wallet pays 1.3 XRP to create rwDHgL…ZiTz, then is emptied into it: 34,983 XRP at 05:47:41. 7 more wallets follow by 22 Sep 11:36, 3 of them emptied before. Wave 5’s collector pays 68.2 XRP into it at 05:50.
21 Sep 08:25:31
Refilled wallets are emptied again
44 wallets, 422 XRP, into the old sinks by 27 Sep 17:01; 20 of them had been emptied or deleted before.
21 Sep 09:24 to 14:53
The parked wallet swaps out
11 deposits into THORChain, 571,268 XRP, every memo naming an Ethereum address the earlier swaps never used.
21 Sep 14:41 to 14:50
The old sinks are cleared
6 payments, 6,725 XRP, into 5 fresh wallets, which have not moved it since.
22 Sep 05:46:22
11,415 XRP from a wallet in use since Aug 2021
It is emptied into rJV8eX…gvqE, created by that payment. 68 more wallets follow within the hour, then 444 accounts are deleted into it by 06:37. By 28 Sep it has taken 138 wallets, 14,044 XRP.
22 Sep 12:55:01
180,049 XRP opens a second collector
rpCKev…5rHq is created by its first sweep. By 25 Sep 10:15 it has taken 10 wallets, 640,178 XRP, and the first new collector’s 41,654.
22 Sep 14:09:31
A day-one victim’s address, used again
rPMUKX…BWRb lost 330,646 XRP by hand on 15 Sep and was deleted on 17 Sep. On 21 Sep a wallet it had itself created in Oct 2025 paid 11 XRP back in, which re-created it. The next day the operator used it to open a sink, which took 342 deletions by 20:47.
22 Sep 20:56:02
An old sink opens two more
r37Zpj…Jhm9, one of the seventeen, creates rEXwbe…Zbix and rsupt7…usFo; they take 295 deletions by 25 Sep 03:36.
23 Sep 07:01:21
The first new sink cashes out
14,398 XRP into unionchain.ai, a custodial service.
23 Sep 07:57
D’CENT: still investigating
“…working with law enforcement, security specialists, exchanges, and other relevant parties to trace the transferred funds and pursue freezing measures.”
25 Sep 03:48:30
Another sink
rsupt7…usFo creates rLwMPn…HFnt; 194 deletions follow, the last on 1 Oct 11:07.
21 Sep to 25 Sep 21:55
Round sums fold into the parked wallet
30 wallets holding 1,000 to 10,000 XRP each delete themselves into it, 55,953 XRP. Most were funded hours earlier by a chain of fresh wallets that began before the first sweep; that money is not in the totals here. On the 23rd the parked wallet pays 107,463 more into THORChain.
29 Sep 07:27:51
681,830 XRP to Ethereum
The collector opened on 22 September pays everything it took into THORChain in one deposit, to a fifth Ethereum address.

The six waves ended on the 20th; the list of keys did not. From 21 September to 1 Oct 11:07 the keys were used on 1,407 wallets: 580 for the first time, 112 that had been emptied before and refilled since, and 715 emptied earlier and only now deleted. Two new collectors took 681,765 XRP between them. rpCKev…5rHq kept its take until 29 Sep 07:27, then paid 681,830 XRP into THORChain with a memo naming an Ethereum address none of the earlier swaps had used. Wave 5’s collector paid into the first, and the first paid its take into the second, so both are the operator’s.

Refilling an emptied address does not make it safe: whoever holds its key takes what arrives. 112 wallets lost XRP that way after the 20th, 4,832 XRP between them. D’CENT’s status report tells users not to reuse an old address “for any purpose, including deposits”; this is why.

From 27 September: five more accounts, the same keys

From 27 Sep 07:12 to 4 Oct 11:05, five new accounts took 5,931 accounts and 266,261 XRP. 1,043 of those accounts had been emptied earlier in this incident and were emptied or deleted a second time; 4,888 had never been touched. Only an account’s own key can delete it, so whoever runs these five holds the keys of 1,043 accounts on this list.

Five more accounts
27 Sep to 4 Oct, UTC
AccountOpenedAccountsEmptied beforeXRPOn our list
rP2RPt…sAjD27 Sep 07:121,38313348,4476 min after
r9f7gZ…bwdk27 Sep 17:453,772692211,39948 hours after
rwNSxP…ho5s1 Oct 11:064791063,25619 min after
r31h7q…YUXm1 Oct 12:556611192,3755 min after
rZhwQe…J1hy2 Oct 00:482144878432 min after
Accounts: the different accounts emptied or deleted into it. Emptied before: how many of those had been emptied earlier in this incident. On our list: when xrpl.to's scam list added it.

They open the way the earlier collectors did, with money from a wallet that is then emptied itself. r9f7gZ…bwdk was created by 10,155 XRP from rGJT8i…G8Za, a wallet in use since 2024, which was itself deleted into the third account on 1 Oct. The third, rwNSxP…ho5s, was created by rhLnTe…aoMw 12 minutes after that wallet had paid 1.2 XRP into the second; it then opened the fourth, and the fourth the fifth. rP2RPt…sAjD was opened 11 hours before the second, by 1,231 XRP from another wallet in use since 2024.

The five, day by day
UTC
DayAccountsXRP
27 Sep1,87271,374
28 Sep2,09368,385
29 Sep523118,602
30 Sep7541,190
1 Oct1,0095,583
2 Oct334750
3 Oct12275
4 Oct17102
An account emptied on two days is counted on both.

The 4,888 accounts never counted before look like the rest. They were first funded from the same exchanges in nearly the same order (Uphold, Coinbase, Binance, ChangeNow and Bitrue), and 4,838 of the 4,888 whose first transaction we read date from 2021 to 2025. 4,842 were deleted for what they held and 812 paid out, 766 of them both. The ledger does not show where their keys came from.

Their money does not reach any wallet above. 158,714 XRP went straight into FixedFloat, a swap service, and wallets made the same week passed on 29,998 more to FixedFloat and ChangeNow and 22,923 to Binance deposit tags; 82,247 XRP went out to a fresh wallet and came straight back. 44,594 XRP is still in the five accounts and the wallets they paid.

The totals at the top include these five. They took 4,888 accounts the earlier waves had never reached, and they cash out by another route. Whoever runs them holds keys of D’CENT App Wallet victims; whether it is the same operator, the ledger does not say.

Where the money went

Where the money is: 12,905,971 XRP through the wallets that took it
2026-10-04 15:34 UTC
Swapped out through THORChain · waves 2 and 5, the parked wallet and the collector opened on 22 September, to Ethereum in 50 deposits, 233,375 more from hop wallets7,188,466 XRP
Into unionchain.ai, a custodial service · wave 3 on 18 September; the twelve, the hop and the early by-hand collectors on 19 September; a new sink on 23 September3,255,917 XRP
Still in the wallets that took it · 510,111 in the first by-hand collectors, the rest in fresh wallets778,447 XRP
Into NEAR Intents, a cross-chain swap service · waves 3 and 6 and the hop wallets, 17 to 19 September546,080 XRP
Into Binance deposit tags · 112,498 by 16 September as first counted, 446,595 since559,093 XRP
Into FixedFloat and ChangeNow, swap services · the five accounts from 27 September, directly and through wallets they made the same week188,712 XRP
Into Bridgers · 118,399 on 16 September, 115,982 since234,381 XRP
Wallets that cannot be named · three wallets that existed before the incident104,875 XRP
Into ChangeHero · 19 September50,000 XRP
THORChain, unionchain.ai, NEAR Intents, Binance and the others are services, not parties to the theft. What went through THORChain left the XRP Ledger as ether; what went to an exchange or a custodial service can still be frozen where that service chooses to. The day-one cash-out (into Binance, Bridgers, Kraken and the laundering hub before 16 September 14:00) is carried as it was counted in the first version of this article. The rows add to more than the 12,727,044 XRP taken because the operator’s wallets also moved money that is not in that total: at least 131,668 XRP came in from wallets this count does not include.

Most of it is no longer XRP. Waves 2 and 5, later the parked wallet and, on 29 Sep, the collector opened on 22 September paid 6,955,091 XRP into THORChain’s XRP vaults in 50 deposits, each carrying a swap memo of the form =:e:0x…, THORChain’s instruction to deliver ether to an Ethereum address. 5 addresses received it:

The rest went to exchanges, swap services and a custodial service in the ordinary way. Wave 3’s 1,580,114 went to unionchain.ai on the 18th, and the twelve’s 730,954, the hop’s 653,475 and 793,352 of the early by-hand collectors’ money, parked since the 15th, followed it there on the 19th after moving through fresh wallets. Wave 6’s take went into NEAR Intents within 13 minutes of its first sweep. The day-one collector’s 410,019, the spare 14,999 and 214,996 of the hop’s money gathered in raG99z…GVYn, a wallet created on the 18th by rsXXQH…WeT5, which had been funded on 12 Sep, before the first sweep. The parked wallet paid 707,486 XRP into THORChain on the 21st and 23rd, all to the fourth Ethereum address, and on 26 Sep moved its last 28,755 XRP to a new wallet, rPviCb…a634, which still holds it.

The hub rLBpP3…Ctcb predates this incident. It was created on 9 August by a KuCoin withdrawal and had passed 1.36 million XRP by the 16th, all of it from freshly made wallets, 418 of its 502 inflows account deletions. Earlier hubs of the same shape ran from 7 July, 16 July, 28 July and 29 July; the 16 July one, rsoATt…kZQW, took the remainders of the by-hand cash-outs above; on 23 Sep it paid out to a Binance deposit tag and deleted itself into the same address. Whatever this operation is, the week of 15 September was its biggest by far, not its first.

Who was hit

Where the 1,682 day-one wallets were first funded from
Binance256 (15.2%)
Coinone118 (7.0%)
Uphold93 (5.5%)
UPbit89 (5.3%)
ChangeNow66 (3.9%)
Bitrue66 (3.9%)
Union Chain44 (2.6%)
KuCoin42 (2.5%)
Crypto.com30 (1.8%)
Bithumb28 (1.7%)
Coinbase28 (1.7%)
Bybit26 (1.5%)
Other, mostly personal wallets796 (47.3%)
Where the 2,532 later-wave wallets were first funded from
Coinbase259 (10.2%)
Uphold257 (10.2%)
Binance170 (6.7%)
Bitrue117 (4.6%)
Union Chain86 (3.4%)
ChangeNow82 (3.2%)
Crypto.com72 (2.8%)
KuCoin61 (2.4%)
UPbit43 (1.7%)
Bithumb33 (1.3%)
Robinhood32 (1.3%)
Coinone31 (1.2%)
Other, mostly personal wallets1,289 (50.9%)
The activator is the wallet whose payment created the account, named where our index knows the exchange. Day one leans on Binance and the Korean exchanges Coinone, UPbit and Bithumb; the later waves on Uphold and Coinbase.
When the 1,682 day-one wallets were created
2018 to 202041 (2.4%)
2021279 (16.6%)
2022579 (34.4%)
2023742 (44.1%)
202440 (2.4%)
20251 (0.1%)
When the 2,532 later-wave wallets were created
2019 to 202016 (0.6%)
2021463 (18.3%)
2022407 (16.1%)
2023447 (17.7%)
2024594 (23.5%)
2025603 (23.8%)
20262 (0.1%)
When the 2,750 deleted-only wallets were created
2017 to 202029 (1.1%)
2021302 (11.0%)
2022389 (14.1%)
2023454 (16.5%)
2024669 (24.3%)
2025904 (32.9%)
20263 (0.1%)
Creation dates are each wallet’s first transaction on the ledger. The day-one list stops in 5 Feb 2025; the later lists reach 603 wallets created in 2025, and the deleted-only set is younger still.

The ledger does not name the app the victims used. Of the 25,887 transactions the day-one wallets had signed before the first sweep, 25,755 carry no source tag at all; 16, from 3 wallets, carry the by-hand tool’s tag; the rest carry the tags of a few DEX and NFT apps. The later-wave wallets look the same: 31,574 of their 31,899 earlier transactions are untagged and 48 carry the by-hand tool’s tag. No two victims are linked on chain except through whatever they had in common off it.

What the ledger cannot say

D’CENT’s notice of 16 September reported abnormal transfers involving its App Wallet and said hardware wallets were not affected. Its status report, dated 17 September, gives the criteria: a recovery phrase that was at some point entered into the App Wallet, a history of signing, an app version below 8.1.0 at the time of signing, on any of Bitcoin, Ethereum, XRPL, TRON and the EVM chains; and it says the matter is with Korean law enforcement and that it is asking exchanges to freeze what they can. On 20 September it told App Wallet users to take action now, and on the 21st that it has no confirmed outcome on reimbursement. On the 23rd it said it was still working with law enforcement and exchanges “to trace the transferred funds and pursue freezing measures.” Accounts posing as D’CENT support have been answering victims on X with offers of a “reimbursement plan”; D’CENT says its only accounts there are @DCENTWALLETS, @DCENTWALLETS_KR and @DCENTWALLETS_JP. The ledger neither confirms nor contradicts any of it: it shows one list of keys used from one place across 17 days, in waves, with the largest handled by hand, and it shows the money leaving through THORChain within hours of each wave. How the keys reached that place is the question the app matters for, and we have read the app.

On our side, the day-one collector was blocklisted 31 seconds after its first inflow and confirmed at 17:26 on the 15th; the second, which took the twelve, was not caught, because its first sweep was so large that our rule read the address as an institution. Since 16 September a whole-balance sweep fan-in trips on ten wallets and 100,000 XRP as well as on twenty-five wallets, and every later collector was listed within minutes of its first sweep: wave 2 at 07:07, wave 4 at 11:02 and wave 5 at 15:14 in the minute they opened, wave 6 at 14:17, wave 3 at 20:44, 33 minutes after its first large sweep. The seventeen sinks of 18 and 19 September were listed the same way. The script’s collectors and those sinks are on our scam list, which wallets can check before signing; the by-hand collectors, and the collectors and sinks opened since 21 September, are not on it yet. A listing stops a wallet that asks; it does not stop a key the thief already holds.

Check it yourself

The by-hand collector was shared publicly by James Rule XRP (@allthemoney) on 16 September at 11:51 UTC, sent to him by a community member who had been drained into it. Everything else here was found by following that one address, and then the keys.

Times are ledger close times. Amounts are what the ledger delivered. If you hold one of these wallets, the whole sweep is visible from its own page on any explorer; if the page says the account does not exist, it was deleted, and the deletion is the last transaction in its history. Figures re-derived from the ledger on 2026-10-04 15:34 UTC.