Pay people on Bitcoin SV. Keep who paid whom to yourselves.
Shieldpool is a shielded pool for BSV. Move coins in, pay from the pool with an invoice and a proof you hand over yourself, and move them back out to an ordinary address. The chain sees rounds, not people.
$ curl -fsSL https://raw.githubusercontent.com/twostack/cloak-cli/main/install.sh | sh
One TSL1 token, spent once a round.
Wallets prove their own spends and send them through a ricochet relay. The coordinator folds up to 256 of them into one proof and publishes a round. A STARK verifier runs on chain in the same transaction that moves the money, so a coordinator can stall the pool but never take from it.
Read how the protocol works →- Header
- 236 B
- Verifier
- 1.78 MB
- Round
- ~4 min
- Following
- 32 B
The pool's whole public state: two tree roots, a ring of recent roots, the balance.
Lives in its own slot transaction, outside every round, and runs as the round's input 2.
From close to mined at 256 transfers, most of it proof aggregation.
A wallet stays current on the note tree for one block root a round.
People pay people, and hand each other the paperwork.
Invoices, payment proofs and acknowledgements are files. cloak never asks the network about an address, a transaction or an output of yours.
Nothing is taken on trust.
Your wallet follows the chain's block headers itself. A coordinator whose answer doesn't match a round the wallet proved is refused, not followed.
Use a pool, or run one.
Every build is published on GitHub with a SHA256SUMS file. The macOS disk images are signed with the Werkswinkel Developer ID and notarized by Apple. Nothing extra is downloaded at run time.
Use the pool
One command-line wallet. It reaches the pool through a ricochet relay and needs nothing else installed.
The wallet: deposit, pay, prove, check, withdraw.
- macOS · Apple siliconcloak-0.1.0-macos-arm64.dmgdisk image
- Linux · x86_64cloak-0.1.0-linux-amd64.tar.gzglibc 2.35+
- Linux · aarch64cloak-0.1.0-linux-arm64.tar.gzglibc 2.35+
A seed alone can't restore a wallet yet. Back up the wallet directory as described in the manual.
Run a pool
A coordinator that builds and publishes rounds, and a ricochet relay that wallets reach it through.
The pool server, with its public dashboard and read-only API built in.
- Debian / Ubuntu · amd64pool-coordinator_0.1.0_amd64.deb22.04+ / 12
- Debian / Ubuntu · arm64pool-coordinator_0.1.0_arm64.deb22.04+ / 12
- macOS · Apple siliconpool-coordinator-0.1.0-macos-arm64.dmgdisk image
The store-and-forward relay that wallets reach the coordinator through, on libp2p. Needs PostgreSQL 14 or later.
- Debian / Ubuntu · amd64ricochet-server_1.0.0_amd64.deb8.5 MB
- Debian / Ubuntu · arm64ricochet-server_1.0.0_arm64.deb7.4 MB
- Linux · x86_64ricochet_1.0.0_linux_amd64.tar.gz11.4 MB
- Linux · aarch64ricochet_1.0.0_linux_arm64.tar.gz10.4 MB
- macOS · Apple siliconricochet_1.0.0_darwin_arm64.tar.gz10.8 MB
- macOS · Intelricochet_1.0.0_darwin_amd64.tar.gz11.6 MB
- Windows · x64ricochet_1.0.0_windows_amd64.zip11.5 MB
Read every line that touches your money.
The protocol, the proofs and the pool's specifications live in tstokenlib. The three programs you run are below. Issues and pull requests are welcome on each.
twostack/cloak-cli
The command-line wallet, built on libcloak for the pool side and libspiffy for the transparent side.
github.com/twostack/cloak-clitwostack/pool-coordinator
Drains the relay inbox, closes and funds rounds, proves them, and publishes them to the chain.
github.com/twostack/pool-coordinatorstephanfeb/go-ricochet
Store-and-forward messaging over libp2p: mailboxes, feeds and documents, end-to-end encrypted.
github.com/stephanfeb/go-ricochet