Cashu protocol specifications https://cashubtc.github.io/nuts/
Find a file
gudnuf 71674ba68c
Add error code 12003: Keyset has expired
Adds a new error code for expired keysets, complementing the
existing 12001 (unknown keyset) and 12002 (inactive keyset).
Used when inputs or outputs reference a keyset whose final_expiry
(NUT-02) has passed.
2026-05-13 11:43:14 +01:00
.github/workflows try: gh-pages (#166) 2024-09-18 12:19:17 +02:00
suppl Fixes leftover XX -> 21 2025-11-11 08:59:44 +00:00
tests feat: nut29 error codes for duplicate quote ids 2026-05-13 11:34:03 +01:00
.gitignore feat: add .gitignore (#309) 2025-11-15 00:04:17 +00:00
00.md Nut00 conventions (#322) 2026-02-16 13:26:21 +01:00
01.md NUT-01: include keyset metadata in /keys response (#325) 2026-01-11 16:56:40 +07:00
02.md Fix grammar: use 'inactivate' when rotating keysets (#330) 2026-01-18 20:46:40 +00:00
03.md chore: run prettier on all files (#156) 2024-09-02 11:05:10 +02:00
04.md Bolt12 lighting offers payment method (#259) 2025-08-28 11:04:43 +01:00
05.md feat(melt): replace Prefer header with prefer_async field in POST data (#339) 2026-02-11 11:46:35 +00:00
06.md NUT06: Add Mint TOS to mint info (#205) 2025-03-06 19:33:09 +00:00
07.md add missing NUT-06 settings (#191) 2024-11-15 16:34:58 +01:00
08.md NUT-08: mint fee return any overpaid amount (#146) 2025-04-15 13:42:46 +07:00
09.md add missing NUT-06 settings (#191) 2024-11-15 16:34:58 +01:00
10.md Add NUT-10 tag clarification (#320) 2025-12-16 17:48:13 +07:00
11.md NUTXX - ECDH-derived Pay-to-Blinded-Key (P2BK) (#300) 2026-02-16 13:53:36 +01:00
12.md prettier (#242) 2025-03-25 11:20:29 +01:00
13.md NUT-13: Use only HMAC-SHA256 for v2 keyset recovery 2026-03-24 18:51:30 +01:00
14.md NUTXX - ECDH-derived Pay-to-Blinded-Key (P2BK) (#300) 2026-02-16 13:53:36 +01:00
15.md specify mpp amount is msat (#220) 2025-03-05 22:58:48 +01:00
16.md chore: run prettier on all files (#156) 2024-09-02 11:05:10 +02:00
17.md NUT-17: add bolt12 subscription kinds to websockets (#298) 2025-10-20 19:32:20 +02:00
18.md Use abbreviations for NUT-10 locking condition fields (#274) 2025-08-19 23:10:01 +01:00
19.md NUT-19: fix link 2025-02-01 23:33:57 +00:00
20.md NUT-29 Batch-Minting and Quote Checks (#333) 2026-03-09 10:19:49 +00:00
21.md NUT-21 and NUT-22 matching rules (#334) 2026-02-10 14:54:40 +00:00
22.md Specify NUT-22 authA serialization (#353) 2026-03-21 08:01:48 +00:00
23.md Update 23.md-update PAID ISSUED description 2025-06-13 16:14:42 +02:00
24.md NUT-24: remove wrong paragraph (#326) 2026-01-11 16:38:57 +07:00
25.md Bolt12 lighting offers payment method (#259) 2025-08-28 11:04:43 +01:00
26.md NUT-26: fix bolt11 invoice and bolt12 offer (#349) 2026-03-15 22:22:55 +01:00
27.md NUT-27: mint list backups on nostr for wallets (#267) 2026-01-11 17:07:59 +07:00
28.md NUTXX - ECDH-derived Pay-to-Blinded-Key (P2BK) (#300) 2026-02-16 13:53:36 +01:00
29.md feat: nut29 error codes for duplicate quote ids 2026-05-13 11:34:03 +01:00
error_codes.md Add error code 12003: Keyset has expired 2026-05-13 11:43:14 +01:00
LICENSE Initial commit 2023-01-27 21:00:47 +01:00
README.md NUT-29 Batch-Minting and Quote Checks (#333) 2026-03-09 10:19:49 +00:00
SECURITY.md Add SECURITY.md (#299) 2025-10-19 11:25:01 -05:00

Cashu NUTs (Notation, Usage, and Terminology)

These documents each specify parts of the Cashu protocol. Read the specifications for the legacy API here.

Specifications

Wallets and mints MUST implement all mandatory specs and CAN implement optional specs.

Mandatory

NUT # Description
00 Cryptography and Models
01 Mint public keys
02 Keysets and fees
03 Swapping tokens
04 Minting tokens
05 Melting tokens
06 Mint info

Optional

# Description Wallets Mints
07 Token state check Nutshell, Nutstash, cashu-ts, cdk, Minibits, macadamia Nutshell, cdk-mintd, nutmix
08 Overpaid Lightning fees Nutshell, Nutstash, cashu-ts, cdk, Minibits, macadamia Nutshell, cdk-mintd, nutmix
09 Signature restore Nutshell, cdk, Cashu.me, Minibits, macadamia Nutshell, cdk-mintd
10 Spending conditions Nutshell, cdk, cashu-ts, Minibits Nutshell, cdk-mintd, nutmix
11 Pay-To-Pubkey (P2PK) Nutshell, cdk, Cashu.me, Minibits Nutshell, cdk-mintd, nutmix
12 DLEQ proofs Nutshell, cdk, cashu-ts Nutshell, cdk-mintd, nutmix
13 Deterministic secrets Nutshell, cashu-ts, cdk, macadamia, Minibits -
14 Hashed Timelock Contracts (HTLCs) Nutshell, cdk Nutshell, cdk-mintd, nutmix
15 Partial multi-path payments (MPP) Nutshell, cdk Nutshell, cdk-mintd, nutmix
16 Animated QR codes Cashu.me, macadamia, Minibits -
17 WebSocket subscriptions Nutshell, cdk, Cashu.me, Minibits Nutshell, cdk-mintd, nutmix
18 Payment requests Cashu.me, Boardwalk, cdk, Minibits -
19 Cached Responses - Nutshell, cdk-mintd
20 Signature on Mint Quote cdk, Nutshell cdk-mintd, Nutshell
21 Clear authentication Nutshell, cdk Nutshell, cdk-mintd, nutmix
22 Blind authentication Nutshell, cdk Nutshell, cdk-mintd, nutmix
23 Payment Method: BOLT11 Nutshell, cdk Nutshell, cdk-mintd, nutmix
24 HTTP 402 Payment Required - -
25 Payment Method: BOLT12 cdk, cashu-ts cdk-mintd
26 Payment Request Bech32m Encoding cdk, cashu-ts -
27 Nostr Mint Backup Cashu.me, cdk -
28 Pay to Blinded Key (P2BK) cdk, cashu-ts -
29 Batched Mint - -

Wallets

Mints