Passionate about Bitcoin and convinced that education is the key, I wish to share with you the little knowledge I have and thus contribute to the adoption of Bitcoin. Otherwise, I'm a big fan of Pink Floyd, I'm learning to code, and I make memes. Looking forward to meeting you at the next meet-up! I am the creator of the training course BTC 205 - Non-KYC Purchase Solution.
What is Mostro P2P?
Technical architecture
- Daemon Mostrod**: coordinates exchanges between users and Lightning Network
- Lightning** node: creates hold invoices (~24h cryptographic escrow)
- Mostro** customers: user interfaces (CLI, Mobile, Web)
Decisive advantages
Main features
Mostro customers available
Mostro CLI - Command Line Client
listorders: Display all available ordersneworder: Create a new buy or sell ordertakesell/takebuy: Take a buy or sell orderfiatsent: Confirm sending of fiat paymentrelease: Release the escrow and finalize the exchangegetdm: View direct messagesrate: Evaluate your counterparty after an exchange
Mostro Mobile - Smartphone application
Mostro-web - Interface web (in development)
Installation and configuration
Essential prerequisites
- A working Lightning Network** wallet with sufficient liquidity (or Lightning-compatible)
- Recommended: Phoenix, Breez, Wallet of Satoshi...
- Minimum 1000 satoshis of liquidity to test
-
A Nostr** private key (format
nsec1...) -
Create a dedicated trading key on nostrkeygen.com
-
Important**: Never use your main personal Nostr key
-
Keep your private key in a safe place (password manager)
-
Optional but recommended**: VPN or Tor connection to mask your IP address
Mostro CLI installation
On macOS
rustc --version
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env
git clone https://github.com/MostroP2P/mostro-cli.git cd mostro-cli
cp .env-sample .env
.env and configure your settings:# Public key of the Mostro instance (choose an instance) # Main mainnet instance (recommended): MOSTRO_PUBKEY='npub1ykvsmrmw2hk7jgxgy64zr8tfkx4nnjhq9eyfxdlg3caha3ph0skq6jr3z0' # Alternative/test instance: # MOSTRO_PUBKEY='npub19m9laul6k463czdacwx5ta4ap43nlf3lr0p99mqugnz8mdz7wtvskkm5wg' # Your Nostr private key dedicated to trading NSEC_PRIVKEY='nsec1votre_cle...' # List of Nostr relays (use the same ones as the mobile app for synchronization) RELAYS='wss://nos.lol,wss://relay.damus.io,wss://nostr-pub.wellorder.net,wss://nostr.mutinywallet.com,wss://relay.nostr.band' POW='0'
cargo install --path .
mostro-cli executable will be installed in ~/.cargo/bin/.mostro-cli --help
On Linux (Ubuntu/Debian)
sudo apt update sudo apt install -y cmake build-essential pkg-config curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env git clone https://github.com/MostroP2P/mostro-cli.git cd mostro-cli cargo build --release
On Windows
git clone https://github.com/MostroP2P/mostro-cli.git cd mostro-cli cargo build --release
.env-sample to .env and fill in your parameters.Installing Mostro Mobile
On Android
- Trade Bitcoin freely - no KYC** : Trade without identity verification thanks to Nostr
- Privacy by default**: Choose between Reputation mode and Full privacy mode
- Security at every step**: Protection with non-custodial hold invoices
- Fully encrypted chat**: End-to-end encrypted communication
- Take an offer**: Browse the order book and choose an offer
- Can't find what you need?** : Create your own customized order
Initial security configuration
- Dedicated key**: Use a separate Nostr identity for trading
- Small amounts**: Start with less than sats 10,000 to get started
- Multiple relays**: Configure 3-5 geographically diverse relays
- Network protection**: Activate VPN or Tor to hide your IP address
- Wallet secure**: Activate automatic locking of your wallet Lightning
Use with CLI
Step 1: List available orders
listorders command displays all active orders:mostro-cli listorders
305a59d0-dbee-4880-9b9a-44a60486ba4a).Step 2: Taking the order
takesell :mostro-cli takesell -o 305a59d0-dbee-4880-9b9a-44a60486ba4a
Step 3: Provide your Lightning invoice
mostro-cli takesell -o 305a59d0-dbee-4880-9b9a-44a60486ba4a --invoice lnbc47150n1p...
Step 4: Contact the seller
dmtouser to request payment details from the seller:mostro-cli dmtouser --pubkey 7100aed1b44819555b34f90a6ca8dbb7263526e0c580f5ee35fe20d7b0644ae4 \ --orderid 305a59d0-dbee-4880-9b9a-44a60486ba4a \ --message "Hey what's your revtag ?"
Step 5: Retrieve the answer
mostro-cli getdm
@satoshi).Step 6: Making the fiat payment
Step 7: Confirm payment dispatch
mostro-cli fiatsent -o 305a59d0-dbee-4880-9b9a-44a60486ba4a
Step 8: Receipt of bitcoins
release command, you instantly receive your bitcoins on the Lightning invoice you provided.Step 9: Evaluation
mostro-cli rate -o 305a59d0-dbee-4880-9b9a-44a60486ba4a -r 5
Useful commands
mostro-cli cancel -o <order-id>
mostro-cli neworder -k sell -c eur -f 20 -m "Revolut" -p 2
mostro-cli dispute -o <order-id>
Use with the mobile application
Interface main
- Order Book**: Browse available buy (BUY BTC) and sell (SELL BTC) orders
- My Trades**: View your active and historical orders
- Chat**: Communicate with your counterparties using figures
Recommended configuration
- Lightning Address** (optional): To receive payments directly
- Relays**: Add several Nostr relays for resilience (e.g.
wss://nos.lol,wss://relay.damus.io) - Mostro Pubkey**: Check the public key of the Mostro instance you're using
Step 1: Create a sell order
-
Currency: Select the currency you wish to receive (EUR, USD, etc.)
-
Amount : Enter the amount in fiat (e.g. 1 to 3 EUR)
-
Payment methods : Choose the method (e.g. "Revolut")
-
Price type: Select "Market Price"
-
Premium: Adjust premium (slider from -10% to +10%, recommended: 0% to sell quickly)
Step 2: Publication confirmation
cancel command.Step 3: A buyer takes your order
Step 4: Communicate with the buyer
Step 5: Receipt of fiat payment
- The exact amount
- The sender
- The reference if requested
Step 6: Release the escrow
Step 7: Evaluate the consideration
Buy bitcoins with the mobile app
-
Browse the Order Book > BUY BTC tab to view sell orders
-
Click on an interesting order to view details
-
Press Take Order
-
Provide your Lightning invoice (generated from your wallet)
-
Wait for the seller to activate the escrow
-
Contact the seller via CONTACT for payment details
-
Send fiat payment (keep proof)
-
Seller releases escrow after verification
-
Receive bitcoins instantly on your Lightning invoice
-
Rate the seller (1-5 stars)
Problem management
Advantages and limitations
Benefits
Limitations
Conclusion
Resources
Official documentation
Source code and development
Community
Author
This tutorial has been written by Pierre
You can say thanks by tipping the professor.
Credits
This tutorial has not been proofread yet
The original content has been translated by AI, but human review is necessary to ensure its accuracy.
3 900 sats1 950 sats975 satsEvery content on the platform is the result of a collaborative effort: each lesson, translation, and revision is made possible by the work of contributors. For this reason, we are always looking for proofreaders who can review our content in many languages. If you want to participate in the proofreading process, please reach out in our Telegram group and read our tutorial. We remind you that this content is open-source - licensed under CC BY-SA - so it can be freely shared and used, as long as the original source is credited.


