Open source · Bitcoin SV · TSL1_SP

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
How it works

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

The pool's whole public state: two tree roots, a ring of recent roots, the balance.

Verifier
1.78 MB

Lives in its own slot transaction, outside every round, and runs as the round's input 2.

Round
~4 min

From close to mined at 256 transfers, most of it proof aggregation.

Following
32 B

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.

Download · 0.x pre-releases

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.

For people paying and getting paid

Use the pool

One command-line wallet. It reaches the pool through a ricochet relay and needs nothing else installed.

cloakv0.1.0MIT

The wallet: deposit, pay, prove, check, withdraw.

A seed alone can't restore a wallet yet. Back up the wallet directory as described in the manual.

For operators

Run a pool

A coordinator that builds and publishes rounds, and a ricochet relay that wallets reach it through.

pool-coordinatorv0.1.0license tbd

The pool server, with its public dashboard and read-only API built in.

go-ricochetv1.0.0Apache-2.0

The store-and-forward relay that wallets reach the coordinator through, on libp2p. Needs PostgreSQL 14 or later.

Open source

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.

Dart · MIT

twostack/cloak-cli

The command-line wallet, built on libcloak for the pool side and libspiffy for the transparent side.

github.com/twostack/cloak-cli
Dart · Rust kernels

twostack/pool-coordinator

Drains the relay inbox, closes and funds rounds, proves them, and publishes them to the chain.

github.com/twostack/pool-coordinator
Go · Apache-2.0

stephanfeb/go-ricochet

Store-and-forward messaging over libp2p: mailboxes, feeds and documents, end-to-end encrypted.

github.com/stephanfeb/go-ricochet