Skip to content

Instantly share code, notes, and snippets.

@nopara73
Last active August 12, 2023 04:43
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nopara73/0254e439599854b2ea12789c558669da to your computer and use it in GitHub Desktop.
Save nopara73/0254e439599854b2ea12789c558669da to your computer and use it in GitHub Desktop.
Wasabi Spent Coin Hack

This happens when an unconfirmed transaction spent a coin of yours, but your Wasabi somehow lost knowledge about it. Note that you are going to doxx your IP address to the block explorers mentioned below, unless you do this over Tor browser.

  1. Expand the coin details and check the TransactionId and the Index
  2. Search for the TransactionId in http://blockstream.info and search for the Index in the outputs.
  3. Click on the address and you'll see all the transactions concerning that address.
  4. One of those transactions spend your coin. If the address transactions are too large and you cannot find the spender, then check https://www.smartbit.com.au/
  5. The advantage of SmartBit is that you can click on the spender transaction unlike Blockstream.info, however the disadvantage of SmartBit is that it doesn't provide indexes to the inputs and outputs.
  6. Finally acquire the unconfirmed spending tarnsaction hex that your wallet is not aware of with the following call: https://blockchain.info/tx/6f31577df3f4d205a0533f9104022e713f43cb19a172526ea857e7827e2344d5?format=hex (Replace the transactionID)
  7. File/Open/Data Folder, then shut down Wasabi.
  8. Go into the Transactions/Main folder and find the file that corresponds to your wallet name.
  9. Add a new json entry to this file.
{
    "Transaction": "0200000001a90c619779b89be1beb35562dc78d3af538c25f2fcdd3166220cfca9071e9fd7020000008a47304402201c72077f3a237c61e1373e9b31386f5efb64391e84082bdf169f526e8ace1ad402207c351945fb0442225858f1cd5c864419a3251885fe0bf18508f2dbd62b1138050141047146f0e0fcb3139947cf0beb870fe251930ca10d4545793d31033e801b5219abf56c11a3cf3406ca590e4c14b0dab749d20862b3adc4709153c280c2a78be10cffffffff04188099000000000017a914c243cd4d42e1a345f13297e273a9b45afcd82a31877015a7000000000017a914a432cd8c7f1c75e15125314bcbb9482cc474218e8795c3aa01000000001976a914d00aeef5ea5c714ae50dcb14f861a01c2781868888ac00b58a62000000001976a91443849383122ebb8a28268a89700c9f723663b5b888ac00000000",
    "Height": "2147483646",
    "Label": "",
    "FirstSeenIfMemPoolTime": "04/17/2019 21:10:04 +00:00",
    "IsReplacement": false
}

Replace the Transaction's value with the transaction hex you got from the API call above.
Leave everything else untouched, even the Height. 2147483646 is a special value in Wasabi, this denotes unconfirmed transactions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment