38 releases (4 major breaking)

Uses new Rust 2024

new 14.1.0 May 13, 2026
13.0.0 Apr 13, 2026
12.0.1 Mar 23, 2026
11.0.1 Mar 1, 2026
0.1.10 Dec 31, 2024

#388 in Magic Beans

MIT license

2.5MB
6.5K SLoC

Contains (ELF exe/lib, 7MB) src/bin/charms-spell-checker, (ELF exe/lib, 200KB) src/bin/charms-proof-wrapper

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

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

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

Now head on to docs.charms.dev to learn more!

Documentation

Concepts and guides: docs.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 programmable (and composable).


©️2026 Charms Inc.

Dependencies

~237MB
~5M SLoC