RoboSats

RoboSats

Docker app from Raccommode's Repository

Overview

RoboSats is a simple and private peer-to-peer Bitcoin exchange client. It serves the local web app and can proxy coordinator API traffic through a Tor SOCKS proxy, using Lightning hold invoices to reduce custody and trust requirements.

RoboSats - Buy and sell Satoshis Privately

GitHub downloads release AGPL-3.0 license SimpleX Nostr

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.

Learn

Check our tutorials and many more at https://learn.robosats.org

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

Robosats is also available for Android devices

and desktop

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 /development

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.

Media gallery

1 / 2

Install RoboSats on Unraid in a few clicks.

Find RoboSats in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for RoboSats Review the template variables and paths Click Install

Requirements

This template runs the RoboSats self-hosted client, not a coordinator backend, Lightning node, database, or Tor daemon. For private/full use, configure a reachable SOCKS Tor proxy through TOR_PROXY_IP and TOR_PROXY_PORT. The upstream client defaults to 127.0.0.1:9050 when these variables are blank and coordinator connectivity will fail unless a proxy is reachable there. Leave the Tor fields blank only if you intentionally want the local web UI without self-hosted coordinator connectivity, or if you provide your own image/runtime override.

Download Statistics

67,030
Total Downloads

Related apps

Details

Repository
recksato/robosats-client:latest
Last Updated2026-03-27
First Seen2026-06-05

Runtime arguments

Web UI
http://[IP]:[PORT:12596]
Network
bridge
Shell
sh
Privileged
false

Template configuration

Web UI PortPorttcp

RoboSats self-hosted client web interface. Container port: 12596.

Target
12596
Default
12596
Value
12596
Install PathPathrw

Host path used as the Unraid install/appdata location for this RoboSats container.

Target
/var/lib/robosats
Default
/mnt/user/appdata/robosats
Value
/mnt/user/appdata/robosats
Tor Proxy IPVariable

Optional SOCKS Tor proxy host used by the client to reach coordinators. Use a reachable Tor container hostname, IP, or host proxy address. Leave blank only for local UI use without coordinator connectivity or when overriding the image runtime.

Target
TOR_PROXY_IP
Tor Proxy PortVariable

Optional SOCKS Tor proxy port used by the client to reach coordinators, commonly 9050. Leave blank only with the same caveats as Tor Proxy IP.

Target
TOR_PROXY_PORT