Skip to content

Instantly share code, notes, and snippets.


nopara73 nopara73

View GitHub Profile
nopara73 / FreeLukeJr Project
Last active Nov 11, 2021
Open Letter to #FreeLukeJr
View FreeLukeJr Project
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 Dec 4, 2020
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 Apr 29, 2019
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 Apr 15, 2019
Coldcard + Wasabi


1. PSBT passed to Coldcard (Hex + Decoded)

nopara73 /
Last active Apr 3, 2019
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
View AddressPasteImprovement.mediawiki

  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

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 Jul 12, 2017
Build tOffer and tFulFill
View Program.cs
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 Jul 12, 2017
Build basic transaction
View Program.cs
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
nopara73 / Program.cs
Created Jun 7, 2017
View Program.cs
private static void BuildProofOfTumbleBitConceptTransactions()
uint256 txIdToSpend = _qBitClient.GetBalance(_fundingAddress, unspentOnly: false).Result.Operations.First().TransactionId;
Transaction txToSpend = _qBitClient.GetTransaction(txIdToSpend).Result.Transaction;
var tOfferExtKey = _seed.ExtKey.Derive(1, false);
var tOfferDestination = tOfferExtKey.ScriptPubKey.GetDestinationAddress(_network); // mk1soVb7Se1t99v7APGqiXofr2pKVS7hN5
var tFulfillExtKey = _seed.ExtKey.Derive(2, false);
var tFulfillDestination = tFulfillExtKey.ScriptPubKey.GetDestinationAddress(_network); // n4mey3skuXQna149vUaanuAPyEDiunsryT