CacheCash showcases private, high-speed payments powered by proofs on Hyli.
- 🕶️ Private balances & transfers powered by zero-knowledge proofs
- ⚡ Instant local interactions with onchain finality
- 🧱 Composes Noir for privacy, SP1 for speed
- 💧 Fully private faucet: claim and spend without revealing balances
- 🎲 Simple, fast, and fully private gameplay
- 🔒 All data stays on your device
Prerequisites:
- Node.js ≥ 18
- Rust ≥ 1.75
- Noir
- Running Hyli devnet
-
Start the Hyli devnet locally (or point to a remote devnet) so the node RPC is reachable at
http://127.0.0.1:4321and the DA reader at127.0.0.1:4141. -
(Optional) Copy the default server configuration if you want to tweak ports or node URLs:
cp server/src/conf_defaults.toml config.toml
You can also override individual keys at runtime with environment variables such as
CACHECASH__NODE_URL=http://devnet-host:4321. -
Run the CacheCash server from the repository root:
cargo run --release --manifest-path server/Cargo.toml
The first boot generates and caches the SP1 proving key under
data/hyli_utxo_state_pk.bin, so expect an extra minute the very first time. -
In a second terminal, install frontend dependencies (uses Bun to stay in sync with
bun.lockb) and start the Vite dev server:cd front bun install bun run devIf you prefer npm, run
npm installfollowed bynpm run dev; the values infront/.envcontrol which endpoints the UI talks to. -
Open http://localhost:5173 in your browser and start playing.
-
Backend:
docker build -f Dockerfile.server -t cachecash-server . docker run --network host cachecash-serverSupply a custom
config.tomlvia a bind mount (e.g.-v $(pwd)/config.toml:/app/config.toml) or environment variables if the devnet is not on localhost. -
Frontend:
docker build -f Dockerfile.ui -t cachecash-ui . docker run -p 5173:80 cachecash-uiSet
VITE_*variables with-eflags when you need the UI to target non-default endpoints.