A simple and private bitcoin exchange
Go to file
2024-01-09 01:22:50 +00:00
.github Bump actions/upload-artifact from 3 to 4 (#1012) 2023-12-25 13:20:19 +00:00
api Dev: replace isort, black, flake8 with ruff (#1057) 2024-01-09 01:22:50 +00:00
chat Fix missing maker/taker in chatroom when first peers is WS and second is REST 2023-12-25 13:44:27 +00:00
control Dev: replace isort, black, flake8 with ruff (#1057) 2024-01-09 01:22:50 +00:00
docker Add CLN regtest to integration tests 2023-11-14 13:54:51 +00:00
docs Add blog entry for v0.6.0 pre-release 2023-12-31 14:48:03 +00:00
frontend Bump @mui/material from 5.15.1 to 5.15.3 in /frontend (#1042) 2024-01-06 12:41:09 +00:00
mobile Bump eslint-plugin-prettier from 5.1.1 to 5.1.2 in /mobile (#1032) 2023-12-30 10:27:20 +00:00
nodeapp Fix use programatic colors for map marker 2023-10-19 02:35:24 -07:00
robosats Fix add hash_ids on robots created before hash_id implementation 2023-12-01 13:47:50 +00:00
scripts Add dev dependencies and regtest test environments 2023-11-14 13:54:51 +00:00
tests Add robot hash ids to order details and robot view 2023-12-01 12:56:55 +00: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 Add cancel tests and api limits 2023-11-20 14:54:04 +00:00
.flake8 Fix weird flake8 mismatch of expectations 2023-11-17 13:02:30 +00:00
.gitignore Fix android sound notifications 2023-05-27 06:04:59 -07:00
.pre-commit-config.yaml Dev: replace isort, black, flake8 with ruff (#1057) 2024-01-09 01:22:50 +00: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.md Add federation basis and new coordinator form (#793) 2023-08-21 11:30:15 -07:00
devfund_pubkey.json Add mempool.space as fee estimator and remote read devfund pubkey (#1055) 2024-01-08 14:13:37 +00:00
docker-compose.yml Add tests for onchain address, pgp sign verification. Improve Dockerfile 2023-11-17 13:02:30 +00:00
docker-tests.yml Rename backend image to match on dev and test environments 2023-11-20 19:42:31 +00:00
Dockerfile Add tests for onchain address, pgp sign verification. Improve Dockerfile 2023-11-17 13:02:30 +00:00
federation.md Update Federation Basis to include RoboSats-Deploy 2023-10-04 03:41:14 -07: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
pyproject.toml Dev: replace isort, black, flake8 with ruff (#1057) 2024-01-09 01:22:50 +00:00
README.md Update README.md (#999) 2023-12-15 15:10:09 +00:00
release_notes.md Bump to v0.5.3 2023-10-18 02:11:44 -07:00
requirements_dev.txt Bump flake8 from 6.1.0 to 7.0.0 (#1051) 2024-01-07 14:34:26 +00:00
requirements.txt Bump drf-spectacular-sidecar from 2023.5.1 to 2024.1.1 (#1050) 2024-01-07 14:33:16 +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.5.3 2023-10-18 02:11:44 -07: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!

Bitcoin Mainnet

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!

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.

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.