# NutBar **A Cashu wallet in your Omarchy status bar — with TollGate auto-pay.** NutBar is an [Omarchy](https://omarchy.org) shell plugin plus a local daemon (`cashud`) that gives your desktop a Chaumian ecash balance widget: top up, send and receive Cashu tokens (with QR codes), and pay [TollGate](https://github.com/OpenTollGate) captive-portal wifi sessions without leaving the bar. ``` ┌─────────────────────────────────────────────────────────┐ │ Omarchy bar [ ⚡ 42 sats ] ← click to open the panel │ └─────────────────────────────────────────────────────────┘ │ QML (curl → JSON) ▼ cashud (Rust, 127.0.0.1:3939) ──► Cashu mint │ (topup / send / melt) ▼ TollGate gateway (captive wifi) ──► paid internet session ``` The panel is a **thin view** — every money operation (proofs, swaps, token serialization, TollGate payments) happens inside the daemon, on your machine. Keys and proofs live in `~/.local/share/omarchy-cashu/` (NUT-02 keysets, NUT-09 restore). ## Try it yourself ### You need - Any OpenWrt router (tested: GL.iNet MT3000, ~$60) - An Omarchy laptop (or any Linux with Quickshell) ### Setup (5 minutes) 1. Flash the router with [TollGate](https://github.com/OpenTollGate/tollgate-installer) 2. Install NutBar: `omarchy plugin clone Amperstrand/nutbar` 3. Join the TollGate WiFi. Pay. Done. ## How money works here (read this first) Ecash **works like cash: whoever holds the token holds the money.** A Cashu "token" is bearer instrument — treat exported tokens like banknotes. - The **mint is a custodian**. It can print or rug; only hold what you're willing to hand to that operator. Set your own mint with `CASHUD_MINT`. - The **default mint is a public test mint** (`testnut.cashu.space`). Sats there have **no money value** — fine for trying NutBar, wrong for real funds. - The seed phrase **does not restore your balance** on a new device: it regenerates your keys, and only a NUT-09 restore sweep (wired into `POST /restore`) brings proofs back from the mint. To move a balance, use **Send all** and treat the exported token like cash. - If the mint is unreachable your **balance is safe on this computer** — proofs are local. A payment that failed *before* the token left your wallet was not sent; ambiguous outcomes are parked in a pending queue and retried, never silently dropped. ## Installation Requires: Omarchy (Hyprland), Rust (rustup), `nmcli`, systemd user session. ```bash git clone https://github.com/Amperstrand/nutbar.git cd nutbar ./install.sh ``` `install.sh` builds `cashud` in release mode, installs the binary to `~/.local/bin/`, the systemd user unit, and the plugin to `~/.config/omarchy/plugins/nutbar/`. Then restart the shell: ```bash omarchy restart shell ``` The bar widget (⚡ and your balance) appears in the right section. Click it for the full panel. ### Manual install ```bash cargo build --release --manifest-path daemon/Cargo.toml install -Dm755 daemon/target/release/cashud ~/.local/bin/cashud install -Dm644 deploy/omarchy-cashud.service ~/.config/systemd/user/ mkdir -p ~/.config/omarchy/plugins/nutbar cp plugin/nutbar/* ~/.config/omarchy/plugins/nutbar/ systemctl --user daemon-reload && systemctl --user enable --now omarchy-cashud ``` ## Configuration All configuration is environment variables on the `omarchy-cashud.service` unit. The cleanest way to set them: ```bash mkdir -p ~/.config/omarchy-cashu cat > ~/.config/omarchy-cashu/env <