Categories
Applications
  • Github CLI
  • SSH
  • HTTPS
Clone Repo
coconut-logo

Cashu wallet and mint in Zig

GitHub Workflow Status Zig Bitcoin Bitcoin Lightning

About

Coconut 🥥 is a Cashu Wallet and Mint implementation in Zig.

Test

zig build test --summary all

Build

zig build -Doptimize=ReleaseFast

CLI Usage

The Coconut wallet provides a command-line interface for various operations. Here’s how to use it:

General Help

To see the general help and available commands, run:

$ coconut --help
Version: 0.1.0
Author: Coconut Contributors
USAGE:
  coconut [OPTIONS]
COMMANDS:
  info   Display information about the Coconut wallet
OPTIONS:
  -h, --help            Show this help output.
      --color <VALUE>   When to use colors (*auto*, never, always).

Info Command

The info command displays information about the Coconut wallet. Here’s its specific help:

$ coconut info --help
USAGE:
  coconut info [OPTIONS]
OPTIONS:
  -m, --mint       Fetch mint information
  -n, --mnemonic   Show your mnemonic
  -h, --help       Show this help output.

Example Usage

Here’s an example of using the info command with the --mnemonic option:

$ coconut info --mnemonic

Version: 0.1.0
Wallet: coconut
Cashu dir: /Users/abdel/Library/Application Support/coconut
Mints:
    - URL: https://example.com:3338
        - Keysets:
            - ID: example_id  unit: sat  active: True   fee (ppk): 0
Mnemonic:
 - example word1 word2 word3 ...
Nostr:
    - Public key: npub1example...
    - Relays: wss://example1.com, wss://example2.com

This command displays general information about the wallet, including the version, wallet name, Cashu directory, mint information, and Nostr details. The --mnemonic option additionally displays the wallet’s mnemonic phrase.

Note: Be cautious when using the --mnemonic option, as it displays sensitive information. Make sure you’re in a secure environment when viewing your mnemonic.

Benchmarks

This project includes performance benchmarks for each step of the BDHKE process, as well as the end-to-end flow.

Running Benchmarks Locally

To run the benchmarks on your local machine:

zig build bench -Doptimize=ReleaseFast

The benchmarks will be compiled with the ReleaseFast optimization level.

Benchmark Results

Current results:

OperationTime usTime ns
hashToCurve7.182 us7181.94 ns
step1Alice23.608 us23608.43 ns
step2Bob28.003 us28002.82 ns
step3Alice25.102 us25101.80 ns
verify29.020 us29020.39 ns
e2e112.626 us112626.12 ns

This run was performed on a MacBook Pro with an M1 chip.

Machine Info:
  Model: MacBook Pro
  CPU: Apple M1 Max
  Cores: 10 (Physical), 10 (Logical)
  Memory: 64 GB
  macOS Version: 14.5
  Zig Version: 0.14.0-dev.850+ddcb7b1c1

Resources

Contributors ✨

Thanks goes to these wonderful people (emoji key):

A₿del ∞/21M 🐺 - 🐱
A₿del ∞/21M 🐺 - 🐱

💻 🤔 🧑‍🏫 📆 🔬 👀
Nikita Orlov
Nikita Orlov

💻
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

About
🥥 Cashu wallet and mint implementation in Zig
Owner
zig-bitcoin (Organization)
Last Commit
2024-10-02
Latest Release
Latest Release Date
Created
2024-08-06