Q2 2026 Highlights

Q2 2026 Highlights

The second quarter of 2026 brought a lot of activity across the Cashu ecosystem. This report opens with Numo, moves through updates to Orchard, libraries, and mints, and closes with the quarter's wallet releases.

Numo

Numo, the Android point-of-sale app introduced in Q1, had a busy quarter both in development and out in the field.

In April, Numo was the official point of sale at bitcoin++ Vegas, villain edition. The following month, it was put into use at Weltraum Bar in Vienna during another btc++ event, where guests paid for their drinks via NFC tap-to-pay. Testing Numo on-site brought a lot of valuable feedback for further development, which is covered in a recent article by Erik on the Cashu blog.

Numo in action at bitcoin++ Vegas, villain edition.

Three Numo releases followed over the quarter.

v1.5 was built largely on direct merchant feedback. The release added a sales summary dashboard, filters, configurable default payment methods, and a switch from Coinbase to Yadio.io for fiat rates. That last change matters for merchants in Latin America, where Coinbase data is unreliable or unavailable. Reliability improved too: tap-to-pay no longer fails after retries or when the app resumes from the background, and a network safety trigger blocks payment requests while the device is offline, sparing merchants and customers from failed transactions at the till.

v1.6 brought an app-wide UI refresh with a new design system, wallet activity logging, and an onboarding banner that invites merchants to add themselves to BTC Map. The update also made auto-withdrawals more reliable by validating amounts before sending.

Next, v1.7 added native BTCPay Server integration. Numo can now discover a merchant's BTCPay point-of-sale apps, import inventory and pricing through the Greenfield API, and post checkout counts back to decrement stock. Invoices can settle in ecash through NUT-18 payment requests, paired with the experimental BTCNutServer plugin that brings ecash payments to BTCPay.

Orchard

Orchard, the mint monitoring and management dashboard, released v1.9.0. It now surfaces NUT-21, NUT-22, and NUT-29 capabilities in the mint config and info views, and warns operators when the mint's watchdog stops writing snapshots.

The new documentation website provides everything needed to get started with Orchard.

Fee analytics were reworked for accuracy, and the two Docker image flavors were consolidated into a single image with SQLite built in. The project also published new mint setup documentation.

Libraries & Mints

Cashu Developer Kit (CDK)

The second quarter opened with v0.16.0, which brought two new protocol features. One is NUT-28, Pay-to-Blinded-Key (P2BK). P2BK blinds the key before the mint sees it, using a shared secret between sender and receiver. The mint still verifies signatures as usual, but it can no longer tell which tokens belong together.

Another is NUT-29 batch minting, which lets wallets process many mint quotes in a single operation instead of one request at a time, cutting latency and load for high-volume apps. The release also added BIP-321 payment request parsing and creation.

v0.17.0, followed by the fix releases v0.17.1 and v0.17.2, delivered the headline feature of the quarter: NUT-30 on-chain payments. Until this release, Cashu mints settled exclusively over Lightning. With NUT-30, wallets can mint and melt ecash directly against the Bitcoin blockchain. A new cdk-bdk backend lets mint operators run this against Bitcoin Core or Esplora, including fee tiers and confirmation tracking.

Language bindings also expanded. Official Kotlin/JVM, Go, Dart, and Swift binding workflows were added or improved, so native apps in those languages can build on the same audited Rust core instead of reimplementing the protocol.

cashu-ts

cashu-ts shipped a major version and several feature releases this quarter.

v4.0.0 was a substantial rework. Amounts are now handled exactly with bigint, which eliminates silent rounding errors on large millisatoshi values. New generic mint and melt APIs let apps integrate custom payment methods without waiting for library-specific support. That change paid off weeks later when on-chain mint and melt landed in v4.5.0, tracking the CDK mint's NUT-30 implementation. The major release also added NUT-29 batch minting, stricter DLEQ verification, and hardened request behavior against client fingerprinting.

v4.3.0 roughly doubled wallet restore speed through optimized legacy BIP-32 derivation. It also made slow Lightning payments fire-and-forget: a wallet can save an in-flight payment, restart, and still reclaim its change once the payment settles. Deterministic DLEQ nonce derivation arrived in the same release, protecting users in JavaScript environments with weak randomness. v4.6.0 followed with tighter keyset handling.

Coco

Coco v1.0.0 is the first stable release of the modular TypeScript toolkit for building Cashu wallets and applications.

With Coco, building on Cashu is easier than ever.

Coco provides a storage-agnostic core for components like proof management and mint sync, with maintained adapters for Node, Bun, IndexedDB, and Expo SQLite. A stable 1.0 API means building a production Cashu wallet in TypeScript no longer requires stitching together low-level libraries by hand.

Nutshell

Nutshell, the reference Python mint, released 0.20.0 and 0.20.1.

0.20.0 moved the mint to the new keyset V2 format, whose larger keyset IDs reduce the risk of collisions. It also added USD (Stablesats) support for the Blink backend, as well as P2PK locked tokens with timelocks and refund keys in the wallet CLI.

0.20.1 added NUT-29 batched minting, NUT-26 bech32m payment requests alongside the existing CBOR format, asynchronous melt support for slower Lightning paths, and Redis Cluster support for high-availability deployments. Both releases include database migrations, so operators should back up before upgrading.

Nutmix

Nutmix, the Go mint implementation, released v0.6.0, adding signatory key derivation directly to the mint, a Nostr notification service, and a broad business logic refactor. Nutmix also deprecated its LNbits and Strike backends.

Wallet Updates

cashu.me

The web wallet cashu.me had two releases this quarter. 0.2 brought a full UI redesign and a reworked onboarding flow, multi-mint payments that cover a single invoice from balances held across several mints, NFC token transfers, keyset V2 support, and Capacitor builds that put cashu.me on iOS and Android.

0.3 added BOLT12 and on-chain support, so users can pay BOLT12 offers or melt ecash directly to a Bitcoin address.

Macadamia

The native iOS wallet released v0.9.0 with NUT-26 payment requests, BIP-321 decoding, mint list backups over Nostr (NUT-27), and a reworked onboarding flow. v0.10.0 followed with an option to conceal amounts in the UI, payment request flow fixes, and a new app icon. The project also launched a new website at macadamia.cash.

ElCaju

ElCaju, the Flutter wallet built for the Cuban community, shipped v0.2.0 and v0.3.0. The wallet replaced its previous CDK dependency with its own internal Rust bridge and added NFC token read and write, plus NUT-18 and NUT-26 payment requests on the payer side. Considerable work went into recovery fixes that protect balances when payments fail mid-flight.

Wrap-up

Q2 was the quarter Cashu reconnected with the base layer. On-chain minting and melting landed across CDK, cashu-ts, and cashu.me, and P2BK improved privacy for locked tokens.

Numo moved from demos to real-world application, running point of sale at two conferences and gaining a native BTCPay Server integration.

The developer stack widened too, with new CDK language bindings, the first stable Coco release, and a cashu-ts rework that makes the library safer to build on.

Thanks to everyone who contributed code, filed issues, ran mints, and tested payments in the wild this quarter. Q3 has plenty to build on.