Cloak
Dashboard
Operators

Run a relayer.
Sever the link.

Cloak's privacy guarantees depend on independent operators forwarding shielded spend intents between users and the issuer. Running a relayer is a few minutes of setup, a few hundred MB of RAM, and predictable per-batch revenue. This page is the full operator playbook.

Active relayers42
Throughput · fleet17,640 / s
Median p50 hop42 ms
Operator fees (30d)$182k
Why run one

Lightweight. Permissionless. Paid.

Permissionless

No stake required

Anyone can register. Entry is a single on-chain transaction. We intentionally avoid slashing — it creates a deanonymization incentive.

Predictable

Per-batch revenue

Relayers earn a fixed percentage of spend volume. Fees are quoted in bps (default 4, i.e. 0.04%). Paid per-batch at settlement.

Efficient

Low footprint

Rust client runs in ~180MB RAM. A small VPS ($5–10/mo) handles p50 load. GPU not required; Groth16 verification is sub-ms.

Aligned

Privacy-positive

A single honest hop is sufficient for sender anonymity across a 3-hop path. Your presence directly improves the set.

Setup

Five commands. That's it.

The reference client is a single Rust binary. Dependencies: a Solana RPC endpoint, 1GB disk, a domain with TLS, and a keypair.

01

Generate identity

Create an Ed25519 keypair. Public key is your relayer ID forever — don't lose the secret.

~/cloak-relay$
$ cloak-relay keygen --out relayer.key
▲  identity written · pubkey 0x7ab2…f102
02

Publish stratum.json

Advertise your endpoint, supported hop indices, fee, TLS fingerprint. Host it at any static URL you control.

~/cloak-relay$
$ curl -sL $YOUR_HOST/stratum.json | jq
{
  "pubkey": "0x7ab2…f102",
  "endpoint": "https://relay-03.example.net:8443",
  "hops": [1, 2, 3],
  "fee_bps": 4,
  "tls_fp": "sha256/9f:4a:c3:e1:…",
  "version": "2.1.4"
}
03

Register on-chain

Submit a self-attested registration transaction to the directory program. No stake. No slashing. Entry is permissionless.

~/cloak-relay$
$ cloak-relay register --key relayer.key --stratum https://your.host/stratum.json
▲  tx 9f4a…af2 confirmed · slot 294,119,204
▲  directory entry live · discoverable in ~30s
04

Run the reference client

Pull the Rust binary, point it at the pool RPC, and start accepting batches. Logs default to journald.

~/cloak-relay$
$ cloak-relay serve --key relayer.key --rpc https://api.mainnet-beta.solana.com
▲  listening on :8443 · TLS ok
▲  directory heartbeat 30s · first batch in 2m 18s
05

Watch the numbers

Built-in Prometheus exporter on :9090. Track batch throughput, drop rate, and revenue. Real-time dashboard ships with the repo.

~/cloak-relay$
$ curl -s localhost:9090/metrics | grep cloak_
cloak_batches_forwarded_total 1284
cloak_spend_intents_processed_total 41208
cloak_revenue_lamports 8402190
cloak_dropped_batches_total 0
Economics

Estimate your revenue

Assumes average spend intent of $150 USDC. Real numbers depend on pool volume and your path selection ranking.

Batch size · intents64
Your fee · bps4 bps (0.04%)
2815
Batches per minute22
quiettypicalpeak
Per batch$3.84
Per month$3,649,536
Estimate only. Actual revenue depends on fleet-wide batch distribution and your uptime ranking. VPS infra typically costs $5–20/mo.
Requirements

What you need

OSLinux (any modern glibc), macOS 13+, Windows WSL2
CPU2 vCPU · x86_64 or arm64
Memory512 MB (reference client uses ~180 MB)
Disk1 GB free · logs rotate at 100 MB
NetworkStatic IP or stable DNS · ingress on HTTPS (443/8443)
TLSCert from any trusted CA · fingerprint pinned in stratum.json
Solana RPCYour own node or a paid endpoint (Helius, Triton, Quicknode)
Directory uptime≥99.0% rolling 30d to remain in default routing set