Author

Topic: Proper way to use JoinMarket's sendpayment starting from a cold wallet? (Read 136 times)

legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Note that if it's a JoinMarket wallet, it's not a cold storage, because JoinMarket requires Internet connection. So, any amount of coins you send to JoinMarket consists a hot wallet. To answer your question: you need to move funds from the cold wallet to the JM's hot wallet, and then execute sendpayment.py.

Another question I have is how much should I be concerned about the timing of transactions when using JM along with other transactions? Is it possible to figure out the original utxo (prior to the coinjoin) based on the timing of transactions (i.e. if the timing/velocity of my transactions from my cold wallet, to the JM hot wallet, to the final destination somewhat differs from the timing of transactions that involve the other CJ utxos)?
Are you asking if you can get de-anonymized from the coinjoin if you spend the mixed funds too quickly? Depends on how you spend them. If you mixed 0.1 BTC, and received outputs 0.02, 0.04 and 0.04, and you spend them all at the same time, you're making it more trivial, yeah.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
so if someone has a cold HD wallet and wants to use JoinMarket's sendpayment to spend only a fraction of the wallet, what is the proper way to do that?
I'm going to ignore the JoinMarket question (because I know nothing about it), and focus only on the sending from cold wallet part. You mentioned a cold HD wallet, which makes me think it could be Electrum. This is what I would do (and maybe add a VPN, or use Electrum over Tor for privacy):
Online:
Install Electrum on your PC.
Import your address to create a watch-only wallet.
Preview the transaction, Copy the unsigned transaction. Put it on a USB stick.

Offline and running without hard drive storage:
Get a Linux LIVE DVD. Use Knoppix or Tails for instance, or any other distribution that comes with Electrum pre-installed.
Unplug your internet cable. Close the curtains. Reboot your computer and start up from that DVD. Don't enter any wireless connection password. Keep it offline.

Start Electrum. Import your private key.
Copy your unsigned transaction from the USB stick, load it into Electrum.
CHECK the transaction in Electrum. Check the fees, check the amount, check all destination addresses (character by character).
If all is okay, sign the transaction. Copy it back to your USB stick.
Turn off the computer. That wipes the Live LINUX from memory and all traces are gone.

Online:
Use your normal online Electrum to (check again and) broadcast the transaction.
I wrote this for a paper wallet, you already have the offline computer for signing so it's easier. Send the small amount you want to use to your JoinMarket wallet (or any other destination).
legendary
Activity: 3374
Merit: 3095
BTC price road to $80k
Is this a Joinmarket-QT where you need to install it to your PC? I never heard of this before

I think the way you are thinking is right since your wallet is installed on an offline machine or cold storage you need to send the amount you want to deposit to Joinmarket you don't need to expose your wallet because you are using a cold wallet. Or for safety if you value your privacy why not use other mixers before you deposit them into your Joinmarket wallet?

About figuring out the original uTXO based on timing I don't think you can easily find them unless if you are going to use a chainalysis they have a tool that I think can able to track them.
legendary
Activity: 2212
Merit: 7064
I don't think this is possible directly from cold wallet, but I am following development in JoinMarket and there are some positive signs for developing easy to use web interface for JoinMarket.
Maybe you could try asking this question on reddit r/joinmarket or some other JoinMarket dedicated space.
member
Activity: 74
Merit: 21
Hi,

so if someone has a cold HD wallet and wants to use JoinMarket's sendpayment to spend only a fraction of the wallet, what is the proper way to do that? The only good way I can think of is to first move the required balance to a JoinMarket hot wallet, then use sendpayment, because otherwise add-utxo would be required, but I don't want utxo private keys from a cold HD wallet to touch the hot computer if that system has access to the HD pub key. Is that correct?

Another question I have is how much should I be concerned about the timing of transactions when using JM along with other transactions? Is it possible to figure out the original utxo (prior to the coinjoin) based on the timing of transactions (i.e. if the timing/velocity of my transactions from my cold wallet, to the JM hot wallet, to the final destination somewhat differs from the timing of transactions that involve the other CJ utxos)?

Thanks!
Jump to: