A simple and private bitcoin exchange
Go to file
2024-12-15 22:33:59 +01:00
.github Prepare release for F-Droid 2024-11-05 16:24:36 +01:00
api Change network nostr tag 2024-11-12 17:21:38 +01:00
chat Revert "Store status notifications" 2024-10-01 19:35:57 +00:00
control Dev: replace isort, black, flake8 with ruff (#1057) 2024-01-09 01:22:50 +00:00
desktopApp Bump to v0.7.3-alpha 2024-11-24 08:28:41 +00:00
docker Better sync urls 2024-08-09 17:06:41 +02:00
docs Update 07-wallets.md 2024-12-15 22:33:59 +01:00
fastlane/metadata/en-US Relocate fastlane metadata (#1291) 2024-05-13 15:09:09 +00:00
frontend Merge pull request #1633 from RoboSats/fix-book-pagination 2024-11-26 23:35:36 +00:00
mobile Bump to v0.7.3-alpha 2024-11-24 08:28:41 +00:00
nodeapp Add over the moon coordinator (#1591) 2024-11-02 20:01:23 +00:00
robosats Fix middleware unused AuthenticationFailed (#1339) 2024-06-17 21:15:25 +00:00
scripts script to generate latest api specs file (#1374) 2024-09-09 00:55:01 +00:00
tests Revert "Store status notifications" 2024-10-01 19:35:57 +00:00
web Fix files cache problem and static files management 2024-09-17 15:14:43 +02:00
.dockerignore Add googleapis folder to .dockerignore (lighter coordinator image) 2023-04-23 07:46:19 -07:00
.editorconfig Fix all files with pre-commit 2022-10-25 11:04:12 -07:00
.env-sample Testing 2024-08-07 22:43:46 +02:00
.flake8 Fix weird flake8 mismatch of expectations 2023-11-17 13:02:30 +00:00
.gitignore fix paths 2024-09-18 12:51:21 +02:00
.pre-commit-config.yaml Fix pre-commit 2024-11-25 10:52:58 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2022-07-23 14:50:31 +00:00
commit_sha Add placeholder commit_sha 2023-05-19 04:45:22 -07:00
CONTRIBUTING_DOCS.md Add docs translation for menus and includes (#1143) 2024-03-03 19:01:26 +00:00
CONTRIBUTING.md update all 2024-10-01 21:42:35 +02:00
devfund_pubkey.json Update devfund node info 2024-01-21 22:09:38 +00:00
docker-compose.yml Upgrade jekyll docker and fix dependabot alerts 2024-10-19 12:41:56 +02:00
docker-tests.yml Remove test dockers 2024-08-07 22:43:59 +02:00
Dockerfile Restore nostr and downgrade python docker 2024-10-19 17:59:42 +02:00
federation.md Update federation.md 2024-10-01 11:08:56 +02:00
LICENSE Add concept for BTC <> Fiat p2p swap using Lightning. 2022-01-01 07:28:49 -08:00
manage.py Re-format all python code 2022-02-17 11:50:10 -08:00
package-lock.json Django HTML generation 2024-09-18 08:37:37 +02:00
package.json Django HTML generation 2024-09-18 08:37:37 +02:00
pyproject.toml Dev: replace isort, black, flake8 with ruff (#1057) 2024-01-09 01:22:50 +00:00
README.md chore: explain monorepo architecture on readme.md 2024-04-20 20:44:16 +01:00
release_notes.md Bump to v0.7.3-alpha 2024-11-24 08:28:41 +00:00
requirements_dev.txt chore(deps-dev): bump coverage from 7.6.3 to 7.6.4 2024-10-27 07:21:15 +00:00
requirements.txt chore(deps): bump django from 5.1.1 to 5.1.2 2024-10-27 10:11:21 +00:00
setup.md Simplify coordinator updates, automatic migrations and collect statics (#583) 2023-05-15 09:46:59 +00:00
version.json Bump to v0.7.3-alpha 2024-11-24 08:28:41 +00:00

RoboSats - Buy and sell Satoshis Privately

Coordinator CI Frontend Build release AGPL-3.0 license Telegram

RoboSats is a simple and private way to exchange bitcoin for national currencies. Robosats simplifies the peer-to-peer user experience and uses lightning hold invoices to minimize custody and trust requirements. The deterministically generated avatars help users stick to best privacy practices.

Try it out!

Always use Tor Browser and .onion for best privacy. The Clearnet URL redirects to a third party Tor2web service. Your privacy cannot be guaranteed to be respected. Use clearnet only to check around the app, never use for trading!

You can use Testnet Bitcoin by going to the Settings page and switching to Testnet

How to use it

https://user-images.githubusercontent.com/90936742/167310017-dc211a05-dd5e-4ef4-b93f-250f80bc5bca.mp4

Written guides

Video guides

How it works

Alice wants to buy satoshis privately:

  1. Alice generates an avatar (AdequateAlice01) using her private random token.
  2. Alice stores safely the token in case she needs to recover AdequateAlice01 in the future.
  3. Alice makes a new order and locks a small hold invoice to publish it (maker bond).
  4. Bob wants to sell satoshis, sees Alice's order in the book and takes it.
  5. Bob scans a small hold invoice as his taker bond. The contract is final.
  6. Bob posts the traded satoshis with a hold invoice. While Alice submits her payout invoice.
  7. On a private chat, Bob tells Alice how to send him fiat.
  8. Alice pays Bob, then they confirm the fiat has been sent and received.
  9. Bob's trade hold invoice is charged and the satoshis are sent to Alice.
  10. Bob and Alice's bonds return automatically, since they complied with the rules.
  11. The bonds would be charged (lost) in case of unilateral cancellation or cheating (lost dispute).

Contribute to the Robotic Satoshis Open Source Project

Check out our Contribution Guide to find how you can make RoboSats great.

RoboSats is a monorepo, arguably a messy one at the moment.

  • The top level is a Django application (the coordinator backend) with apps /api, /control, and /chat. Django settings are in /robosats and /tests has integration tests for the RoboSats backend.
  • The /frontend directory contains the ReactJS client.
  • The /nodeapp directory contains the docker orchestration and utilities for the self-hosted application (Umbrel, StartOS, etc)
  • The /mobile directory contains our React Native app (a wrapper around our ReactJS app in /frontend)
  • The /docs directory has the learn.robosats.com static Jekyll site markdown docs.
  • The /web directory is a light wrapper around our client app /frontend intended to host a RoboSats dex client to be used for the public. We use this one in dex.robosats.com

You can run the whole stack for local development following the instructions in setup.md

Officially mantained docker orchestration for coordinators can be found in the repo robosats-deploy

Developer Rewards

Check out the Developer Rewards Panel for tasks paid in Sats.

Sponsors

Reviews

Inspiration

The concept of a simple custody-minimized lightning exchange with hold invoices is inspired in P2PLNBOT by @grunch

License

The Robotic Satoshis Open Source Project is released under the terms of the AGPL3.0 license. See LICENSE for more details.