Skip to content

Instantly share code, notes, and snippets.

View nopara73's full-sized avatar

nopara73 nopara73

View GitHub Profile
Author: Kukks

New protocol design: Discrete Payments through Wabisabi coinjoins and Nostr ecnrypted communication

  1. Merchant creates invoice of 0.1BTC
  2. Merchant generates a unique key for invoice
  3. Merchant shows the pubkey of (2), a recommended nostr relay uri
  4. Customer generates a unique key for this invoice payment
  5. Customer posts an encrypted event addressed to pubkey of (3) with a message stating intent to pay invoice of 0.1BTC using a specific wabisabi coordinator
nopara73 / FreeLukeJr Project
Last active November 11, 2021 02:43
Open Letter to #FreeLukeJr
Luke Dashjr, a prolific Bitcoin Core developer, has been sent to Twitter jail: he received a permanent suspension for proclaiming he'll respond with appropriate force if anyone tries to force vaccination on him or his family. To avoid confusion it's important to clarify he does not have an anti-vaccine stance, rather he took a wait for more data approach instead.
Bitcoin is the future of money, a technology that is as fundamental to humanity as speech itself. It is paramount for mankind to thrive. Luke spent over a decade working on this technology, therefore taking away his access to public communication channels is great disservice to society itself.
- Core dev
- BIP maintainer
nopara73 /
Created December 4, 2020 17:35
Simple Amount Organization for WW2 as a Plan ZS

What do the users want?

  • faster mixes
  • cheaper mixes
  • no changes
  • more money a user have, the more output it tolerates
  • avoid coin bloat
  • low minimum denomination

Output Creation

nopara73 /
Last active August 12, 2023 04:43
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 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
  5. The advantage of SmartBit is that you can click on the spender transaction unlike, 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: `
nopara73 /
Last active April 15, 2019 22:18
Coldcard + Wasabi

1. PSBT passed to Coldcard (Hex + Decoded)

nopara73 /
Last active April 3, 2019 09:34
Bitcoin Core vs Wasabi Wallet - Network Level Privacy
Adversary Core Core + Tor Wasabi 1.1.3 Wasabi 1.1.4 Wasabi 1.1.4 + Full Node
One Peer Is Malicious Spy private private private private private
All Peers Are Malicious Spies vulnerable[1] private vulnerable[2] private private
Tor Breaker private private private private private
All Peers Are Malicious Spies && Tor Breaker vulnerable[1] vulnerable[1] vulnerable[2] vulnerable[1,2] vulnerable[1]
Malicious Wasabi Backend private private private private private
Malicious Wasabi Backend && Tor Breaker private private vulnerable[1] private private
Supernode vulnerable[1] private private private private
Spying ISP vulnerable[1] private vulnerable[2] private private
nopara73 / AddressPasteImprovement.mediawiki
Last active December 2, 2018 02:48
Address Paste Improvement

  BIP: ?
  Layer: Applications
  Title: Address Paste Improvement
  Author&#58; nopara73 <>
          David Molnar <>
  Comments&#45;Summary&#58; No comments yet.
  Status&#58; Draft
  Type&#58; Standard Track

nopara73 /
Created May 1, 2018 19:36

Most active GitHub users (

The count of contributions (summary of Pull Requests, opened issues and commits) to public repos at from Mon, 01 May 2017 19:27:03 GMT till Tue, 01 May 2018 19:27:03 GMT.

Only first 1000 GitHub users according to the count of followers are taken. This is because of limitations of GitHub search. Sorting algo in pseudocode:

 .filter(user =&gt; user.followers &gt; 1000)
nopara73 / Program.cs
Last active July 12, 2017 06:24
Build tOffer and tFulFill
ExtKey _fundingExtKey = _seed.ExtKey.Derive(0, hardened: false);
BitcoinAddress fundingAddress = _fundingExtKey.ScriptPubKey.GetDestinationAddress(_network); // mkvRuHAv3qek4mP3ipjqFnaFXj4d2kKit3
WriteLine($"{nameof(fundingAddress)}: {fundingAddress}");
uint256 txIdToSpend = (await _qBitClient.GetBalance(fundingAddress, unspentOnly: false).ConfigureAwait(false)).Operations.First().TransactionId;
Transaction txToSpend = (await _qBitClient.GetTransaction(txIdToSpend).ConfigureAwait(false)).Transaction;
nopara73 / Program.cs
Last active July 12, 2017 06:12
Build basic transaction
using NBitcoin;
using NBitcoin.Policy;
using QBitNinja.Client;
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using static System.Console;
namespace HTumbleBitProofOfConcept