Skip to content

v0.1.0 — first tagged release

Latest

Choose a tag to compare

@jooray jooray released this 17 Jul 07:08

First tagged release of cashu-wallet-php — a zero-dependency, single-file PHP implementation of the Cashu protocol. Drop CashuWallet.php into any PHP 8.0+ project (ext-gmp or ext-bcmath required); Composer is used only for the dev test suite.

NUT coverage

  • NUT-00 — BDHKE, token serialization V3 (cashuA) and V4 (cashuB/CBOR)
  • NUT-01/02 — keyset management, including v2 keyset IDs (01…) and inactive-keyset fee metadata
  • NUT-03 — swap; NUT-04/23 — mint with amount_paid/amount_issued accounting
  • NUT-05 — melt with change (NUT-08 fee return)
  • NUT-07 — proof state checks
  • NUT-09/13 — restore and deterministic secret derivation (BIP32 for v1, HMAC-SHA256 for v2)
  • NUT-12 — DLEQ verification on received signatures and proofs
  • NUT-19 — cached-response awareness
  • NUT-20 — mint-quote locking with BIP340 Schnorr signatures + deterministic locking keys

Reliability

  • Crash-safe operation journal with atomic proof storage (never loses coins mid-operation)
  • Melt reconciliation via authoritative quote state instead of blind retransmission
  • Keyset rotation: sweep proofs off inactive/expiring keysets

Testing

284-test PHPUnit suite validated against the official cashubtc/nuts test vectors (BDHKE, keyset IDs v1/v2, NUT-13 derivation, DLEQ, BIP340, NUT-20 signing).