7 unstable releases (3 breaking)
new 0.9.0 | Apr 9, 2025 |
---|---|
0.8.1 | Mar 25, 2025 |
0.7.1 | Feb 13, 2025 |
0.0.2 | May 12, 2023 |
0.0.1 | Apr 20, 2023 |
#282 in Magic Beans
751 downloads per month
Used in 17 crates
(2 directly)
325KB
7K
SLoC
Cashu
A Rust implementation of the Cashu protocol, providing the core functionality for Cashu e-cash operations.
Overview
This crate implements the core Cashu protocol as defined in the Cashu NUTs (Notation, Usage, and Terminology).
Features
- Cryptographic Operations: Secure blind signatures and verification
- Token Management: Creation, validation, and manipulation of Cashu tokens
- NUTs Implementation: Support for the core Cashu protocol specifications
- Type-safe API: Strongly-typed interfaces for working with Cashu primitives
Usage
Add this to your Cargo.toml
:
[dependencies]
cashu = "*"
Basic Example
use cashu::amount::Amount;
use cashu::nuts::nut00::Token;
use std::str::FromStr;
// Parse a Cashu token from a string
let token_str = "cashuBo2FteCJodHRwczovL25vZmVlcy50ZXN0bnV0LmNhc2h1LnNwYWNlYXVjc2F0YXSBomFpSAC0zSfYhhpEYXCCpGFhAmFzeEAzYzNlOWRhMDU3ZjQzNmExOTc2MmRhOWYyYTBjMzc5YzE5N2RlNDMzZDY5MWU1NDI0ZmRjODcxNjZjMmNlMjZmYWNYIQKKtwESLR-yn5rqNAL3_8_H5BtpwjSPs7uOJ18kPn2mV2Fko2FlWCCsMAK1xoLlwVRxpv8hfsxKYXlXTOomiVt3JCbzNgQpUmFzWCD9MfRUr0asiF_jUJMSylphLvKUd2SLz9oSpcvuLCXPp2FyWCA_1toQ_l158xW0zorqTBXvh76o-_D3e-Ru1Ea-51UrFaRhYQhhc3hAMTM5YWRjZDJlY2Q5MWQyNjNjMDhhMzdhNjBmODZjNDVkYWE3NjNmNjM4NTY0NzEyMmFiZjhlMDM3OGQ0NjA5OGFjWCECHZh5Qx9o-8PaY6t0d5hRTbWeez1dh3md7ehfE25f2N5hZKNhZVgg5MLkVzIw2tDzdUpYwFe-MLhIPJ4hkCpPGL0X7RxpPIRhc1ggyEtcsq3FX8wZOGpwTXOP7BsqfdYdMhGG1X8jVjncDcVhclggyLVOc2xy4m1_YeYGef2HQ8WyJX7LjZq403CS9Dt_eME=";
let token = Token::from_str(token_str).expect("Valid token");
// Get the total amount
let amount: Amount = token.value().expect("Value");
println!("Token amount: {}", amount);
Implemented NUTs
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 | Status |
---|---|---|
07 | Token state check | Implemented |
08 | Overpaid Lightning fees | Implemented |
09 | Signature restore | Implemented |
10 | Spending conditions | Implemented |
11 | Pay-To-Pubkey (P2PK) | Implemented |
12 | DLEQ proofs | Implemented |
13 | Deterministic secrets | Implemented |
14 | Hashed Timelock Contracts (HTLCs) | Implemented |
15 | Partial multi-path payments (MPP) | Implemented |
16 | Animated QR codes | Not implemented |
17 | WebSocket subscriptions | Implemented |
18 | Payment Requests | Implemented |
19 | Cached responses | Implemented |
20 | Signature on Mint Quote | Implemented |
License
This project is licensed under the MIT License.
Dependencies
~20MB
~323K SLoC