ZeraClient + NoteStore high-level wrapper
The bottom-up SDK API was great for crypto folks but hostile to first-time users. Added ZeraClient — a single class that wraps RPC, prover, and note storage behind ergonomic methods like client.send({ to, amount }) and client.balance().
NoteStore is the persistence layer: by default in-memory, optionally backed by IndexedDB (browser) or SQLite (node). The contract is small: add(note), markSpent(nf), unspentNotes(), findByCommitment(cm). Three implementations slot in interchangeably.