12 releases

new 0.3.0 Jan 21, 2025
0.3.0-dev Jan 18, 2025
0.2.0 Jan 16, 2025
0.1.11 Jan 2, 2025
0.1.10 Dec 31, 2024

#375 in Magic Beans

Download history 141/week @ 2024-12-15 423/week @ 2024-12-22 537/week @ 2024-12-29 50/week @ 2025-01-05 197/week @ 2025-01-12 157/week @ 2025-01-19

965 downloads per month

MIT and maybe LGPL-3.0-or-later

430KB
1.5K SLoC

Contains (ELF exe/lib, 1MB) src/bin/charms-spell-checker

Charms


crates.io

charms is a library, CLI tool and web API for programmable tokens and NFTs on top of Bitcoin.

Charms are bundles of tokens, NFTs and arbitrary app state, enchanting Bitcoin UTXOs, that can be used to build apps directly on Bitcoin.

For example: Charms NFTs have state, so it's easy to create a token managed by an NFT: the token's remaining unminted supply is stored in the NFT state, and you can only mint the token when updating the NFT state accordingly (in the same transaction).

Charms are created using spells — special messages added to Bitcoin transactions, manifesting creation and transformation of charms.

Get Started

Install Charms CLI:

export CARGO_TARGET_DIR=$(mktemp -d)/target
cargo install --locked charms --version=0.3.0

Create your first app (your own token on Bitcoin):

charms app new my-token
cd ./my-token
ls -l

Read this: hello world!

Documentation

Concepts and guides: charms.dev

Charms CLI:

charms --help

Inspiration

Charms are inspired by Runes — a way to create tokens on top of Bitcoin. Charms are, in a way, a generalization of Runes.

The main difference is that Charms are easily programmable (and composable).


©️2025 sigmazero

Dependencies

~56–93MB
~1.5M SLoC