cast
SKILL.md
Cast
Overview
Use this skill when a task requires executable CAST DEX operations on Bitcoin with Charms, including order lifecycle management, Scrolls nonce/address derivation, cancellation signatures, partial fills, signing, and transaction verification.
Environment
Required commands:
bash,curl,jq,envsubstcharms,bitcoin-cliscrolls-nonce,sign-txs,cancel-msg
Required artifacts/services:
- CAST app binary (
charms-cast-v0.2.0.wasmor latest v11-compatible CAST build) - Operator-signed
fulfillparams payload - Scrolls API base URL
prev_txsancestry data for all spell inputs- fee funding input UTXO for maker flows (
CAST_FUNDING_UTXO) - v11 spell file (
version: 11,tx.*,app_public_inputs) - separate private-inputs file passed via
--private-inputs
Workflow
- Run preflight checks for your path:
scripts/check-cast-prereqs.sh makerscripts/check-cast-prereqs.sh takerscripts/check-cast-prereqs.sh cancelscripts/check-cast-prereqs.sh server
-
Follow order-lifecycle for create/check/prove flow.
-
For maker edits, follow cancel-and-replace.
-
For taker fills, follow partial-fulfillment.
-
For signing and broadcast controls, follow signing-and-broadcast.
-
For repeated autonomous execution, follow autotrade-loop.
-
Keep operations deterministic:
- prefer file-backed inputs over inline shell literals
- use dry-run first for mutation steps
- persist artifacts and receipts for every run
- encode
tx.coins[*].destas hex destination bytes (derive viacharms util dest --addr ...)
Quick Commands
# Preflight
skills/cast/scripts/check-cast-prereqs.sh maker
# Derive Scrolls nonce + address
skills/cast/scripts/derive-scrolls-address.sh \
--funding-utxo "<txid:vout>" \
--output-index 0 \
--scrolls-base-url "${CAST_SCROLLS_BASE_URL}"
# Migrate legacy CAST howto spell to v11 (split private inputs + convert coin dests)
skills/cast/scripts/cast-migrate-howto-v11.sh \
--input /Users/christopherdavid/code/charms/cast-releases/docs/howto/03-partial-fulfill.yaml \
--output-spell ./rendered/03-partial-fulfill.v11.yaml \
--output-private-inputs ./rendered/03-partial-fulfill.private.v11.yaml
# Check + prove
skills/cast/scripts/cast-spell-check.sh \
--spell ./rendered/create-order.yaml \
--private-inputs-file ./rendered/create-order.private-inputs.yaml \
--app-bin "${CAST_APP_BIN}" \
--prev-txs-file "${CAST_PREV_TXS_FILE}"
skills/cast/scripts/cast-spell-prove.sh \
--spell ./rendered/create-order.yaml \
--private-inputs-file ./rendered/create-order.private-inputs.yaml \
--app-bin "${CAST_APP_BIN}" \
--prev-txs-file "${CAST_PREV_TXS_FILE}" \
--change-address "bc1q..." \
--mock
skills/cast/scripts/cast-spell-prove.sh \
--spell ./rendered/create-order.yaml \
--private-inputs-file ./rendered/create-order.private-inputs.yaml \
--app-bin "${CAST_APP_BIN}" \
--prev-txs-file "${CAST_PREV_TXS_FILE}" \
--change-address "bc1q..."
# Sign + inspect
skills/cast/scripts/cast-sign-and-broadcast.sh --tx-json ./proofs/tx_to_sign.json --dry-run
skills/cast/scripts/cast-show-spell.sh --tx "<spell_tx_hex>"
# Run one automated iteration (safe defaults: mock prove + dry-run sign)
skills/cast/scripts/cast-autotrade-loop.sh \
--config skills/cast/assets/autotrade-loop.config.example \
--once
# Run continuous loop (explicitly controlled)
skills/cast/scripts/cast-autotrade-loop.sh \
--config /absolute/path/to/autotrade.env \
--interval-seconds 45 \
--max-iterations 0 \
--continue-on-error
References
Weekly Installs
2
Repository
openagentsinc/openagentsGitHub Stars
373
First Seen
5 days ago
Security Audits
Installed on
cursor2
kilo2
antigravity2
openhands2
windsurf2
claude-code2