charms
Charms
Overview
Integrate and operate Charms for programmable Bitcoin assets. Use this skill when a task requires Charms app development, spell creation and proof generation, commit and spell transaction submission, spell inspection on existing transactions, wallet charm inventory, or API and wallet integration.
Environment
- Requires
bash,curl, andjq. - Requires
charmsCLI. - For app development, requires Rust and
wasm32-wasip1target. - For Bitcoin casting and wallet flows, requires
bitcoin-cliconnected to a node (testnet4 for quick iteration).
Use this skill for concrete implementation and operations, not generic protocol theory.
Workflow
- Pick the execution path first:
- App and spell lifecycle (new app, build, verify key, check, prove, submit).
- Spell schema and validation debugging.
- Wallet and API integration (
wallet list,tx show-spell,serverendpoint).
- Run preflight checks:
scripts/check-charms-prereqs.sh appscripts/check-charms-prereqs.sh spellscripts/check-charms-prereqs.sh walletscripts/check-charms-prereqs.sh server
- For app and spell operations, follow app-and-spell-workflow:
- Scaffold app with
charms app new. - Build and derive app verification key.
- Validate spells with
charms spell check. - Produce package-ready transactions with
charms spell prove.
- For schema and validation issues, use spell-format-and-validation:
- Confirm app identifiers and VKs.
- Confirm
insandoutsline up with transaction reality. - Keep private inputs off-chain and pass them through the private input file path.
- For wallet and API surfaces, use wallet-and-server-integration:
- Inspect wallets for charm-bearing outputs.
- Decode spell content from known transactions.
- Run
charms serverand call/spells/provein JSON or CBOR mode.
- Apply execution safety constraints:
- Use low-value UTXOs and testnet4 while iterating.
- Never submit package transactions before validating both commit and spell tx hex.
- Keep prover and wallet secrets out of logs and source control.
Quick Commands
# App scaffold and build
charms app new my-token
cd my-token
app_bin="$(charms app build)"
charms app vk "$app_bin"
# Spell validation and proving
cat ./spells/mint-nft.yaml | envsubst | charms spell check --app-bins="$app_bin" --prev-txs="$prev_txs"
cat ./spells/mint-nft.yaml | envsubst | charms spell prove --app-bins="$app_bin" --prev-txs="$prev_txs" --funding-utxo="$funding_utxo" --funding-utxo-value="$funding_utxo_value" --change-address="$change_address"
# Wallet and tx inspection
charms wallet list --json
charms tx show-spell --chain bitcoin --tx "$tx_hex" --json
# API server
charms server --ip 0.0.0.0 --port 17784
Reference Files
- app-and-spell-workflow: end-to-end app scaffold, check, prove, sign, and package submission.
- spell-format-and-validation: spell fields, app mapping, proof and version checks, and frequent failure modes.
- wallet-and-server-integration: wallet parsing, tx inspection, API server usage, and wallet UI integration path.
More from openagentsinc/openagents
worker-logs
Tail and inspect Cloudflare Worker logs from the CLI. Use when debugging API 401/500, legacyparity auth, or web app errors. Covers both the homepage worker (apps/web) and the API worker (apps/api).
37moneydevkit
Money Dev Kit workflows for Lightning checkout and agent wallets.
36blink
Bitcoin Lightning wallet for agents — balances, invoices, payments, BTC/USD swaps, QR codes, price conversion, and transaction history via the Blink API. All output is JSON.
34l402
L402 agent commerce workflows with lnd, lnget, scoped macaroons, aperture, and MCP.
34neutronpay
Neutronpay MCP and SDK workflows for Lightning, stablecoin, and fiat payments.
34mezo
Mezo integration workflows for apps, autonomous agents, and Mezo Earn operations.
33