28 releases (8 breaking)
Uses new Rust 2024
| new 0.9.3 | Oct 6, 2025 |
|---|---|
| 0.9.1 | Aug 31, 2025 |
| 0.7.0 | Jul 28, 2025 |
| 0.5.3 | Mar 31, 2025 |
| 0.1.10 | Dec 31, 2024 |
#853 in Magic Beans
147 downloads per month
4KB
This is the only crate you need to get started coding a Charms app.
Usage
Run this command to create a new Charms app:
charms app new my-app
It will create a new directory called my-app with a basic Charms app template.
It'll have this in Cargo.toml:
[dependencies]
charms-sdk = { version = "0.3.0" }
This is how the entire src/main.rs looks like:
#![no_main]
charms_sdk::main!(my_app::app_contract);
The most important function in the app is app_contract in src/lib.rs:
use charms_sdk::data::{
check, App, Data, Transaction, NFT, TOKEN,
};
pub fn app_contract(app: &App, tx: &Transaction, x: &Data, w: &Data) -> bool {
match app.tag {
NFT => {
check!(nft_contract_satisfied(app, tx, x, w))
}
TOKEN => {
check!(token_contract_satisfied(app, tx, x, w))
}
_ => todo!(),
}
true
}
Dependencies
~2–3MB
~56K SLoC