In this tutorial I will share the steps to use electrum plugin for joinstr on Ubuntu. First step is to get the latest version of electrum. Run the below commands so that electrum can be used:
$ sudo apt-get install automake libtool
$ ./contrib/make_libsecp256k1.sh
$ sudo apt-get install python3-pyqt5
Install plugin dependencies:
$ pip install nostrj
$ pip install pyqtspinner
$ pip install pillow
$ pip install qrcode
Download the plugin zip file, extract it and save in plugins directory: https://gitlab.com/invincible-privacy/joinstr/-/tree/main/plugin/zip/v0.1.0
Start electrum and use signet:
./run_electrum —signet
You can use proof of work based signet faucet to get coins or share your address in joinstr telegram group.
Save a nostr relay, default denomination and number of peers in plugin settings. Multiple relays are not supported in this version so peers need to use the same relay to discover pools and do coinjoin.
There are 3 options in pools tab:
Create new pool
My pools
View other pools
You can create a pool and wait for other peers to join or join one of the existing pools. Pools have expiration time and would disappear after 10 minutes. Denomination for the pool should be based on the amount of UTXO that will be used for coinjoin and below calculation:
if not (
(pool_amount * 100000000) + 500
<= selected_input.value_sats()
<= (pool_amount * 100000000) + 5000
):
If the pool denomination is 100k sats then UTXO between 99500 sats to 105k sats would be allowed to participate.
You will see pop up with nostr event id for new pool and a new tab “input registration” would appear in which we would wait for other peer(s) to join the pool.
Peers trying to join the pool will see a QR code for their pubkey. They need to pay a one time fee to use this key if a paid relay is used by the pool. Else it can be ignored and closed.
Once the QR code is closed, a request to join the pool is initiated and it takes a few seconds to get access to the pool for registering input.
Once all peers register signed inputs, coinjoin transaction is created and broadcasted.