Super early version of a web client for the Mostro P2P System.
This project is a web interface that facilitates peer-to-peer bitcoin trading over the lightning network ⚡️ using nostr 🦩. The lightning network is a layer 2 scaling solution for bitcoin that enables fast and low-cost transactions.
Create a .env
file with these 3 environment variable defined:
RELAYS=<comma-separated-list-of-relay-urls>
MOSTRO_PUB_KEY=<public-key-of-your-mostro-instance>
SECRET_KEY=<the-user-secret-key>
- Install Docker
- Install Polar
- If you're on Mac please follow Open a Mac app from an unidentified developer
- Create a new default network
- Add some funds to the nodes
- Clone the Mostro App
- Install Rust
- Install the Rust SQL toolkit
cargo install sqlx-cli
- Install CMake
- Then run from the CMake GUI: "Tools->Install For Command Line Use"
- Create a new environment file by
cp .env-sample .env
- Copy the paths for LND cert file and MACAROON file from polar. You can find them in the polar UI under the node's settings > file paths.
- Install Node latest LTS version
- Create a new environment file by
cp .env-sample .env
- Generate som
nsec
andnpub
keys using nostrtool or Rana and paste it in a new.env
file underMOSTRO_PUB_KEY
andSECRET_KEY
keys - Set RELAYS to
ws://localhost:7000
in the.env
file - Run
yarn install
With docker
and polar
already running then do...
- In
mostro
folder$ ./init_db.sh $ cargo run $ cd relay $ docker compose up -d
- In
mostro-web
folder$ yarn dev
That's it! 🎉
# install dependencies
$ npm install
# Production build and version generation
# There's no need to run this every time, but run this at least once
# before running `npm run dev`
$ npm run build
# serve with hot reload at localhost:3000
$ npm run dev
# build for production and launch server
$ npm run build
$ npm run start
# generate static project
$ npm run generate
For detailed explanation on how things work, check out the documentation.
- Posts Orders (Buy & Sell)
- Displays order list
- Decodes DMs from mostro
- Buy flow (maker / market rate)
- Buy flow (maker / fixed price)
- Sell flow (maker / market rate)
- Sell flow (maker / fixed price)
- Buy flow (taker / market rate)
- Buy flow (taker / fixed price)
- Sell flow (taker / market rate)
- Sell flow (taker / fixed price)
- Handling multiple relays
- NIP-07 for key management
- Persisting old events
- Direct message with peers
- Ephemeral identities
- Disputes
This project is licensed under the MIT License 📜. See the LICENSE
file for more information.