souldinals/SKILL.md
Souldinals collection management — inscribe soul.md as a child inscription under a genesis parent, list and load soul inscriptions from the wallet, and display parsed soul traits and metadata.
npx skillsauth add aibtcdev/skills souldinalsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manages Souldinals — soul.md files inscribed as child ordinals under a genesis parent inscription. A soul inscription records an agent's identity, values, and traits as Markdown on Bitcoin L1.
All write operations (inscribe-soul, reveal-soul) require an unlocked wallet with BTC balance on the SegWit address.
bun run souldinals/souldinals.ts <subcommand> [options]
Inscribe a soul.md file as a child inscription under a parent inscription — STEP 1: Broadcast commit transaction.
Reads the soul.md file, base64-encodes it, and broadcasts the commit transaction. After the commit confirms, call reveal-soul with the saved parameters to finalize the inscription.
bun run souldinals/souldinals.ts inscribe-soul \
--parent-inscription-id <id> \
[--soul-file ./SOUL.md] \
[--fee-rate fast|medium|slow|<number>]
Options:
--parent-inscription-id (required) — The genesis parent inscription ID (format: {txid}i{index})--soul-file (optional) — Path to the soul.md file (default: ./SOUL.md)--fee-rate (optional) — fast, medium, slow, or number in sat/vB (default: medium)Requires: unlocked wallet with BTC balance.
Output:
{
"status": "commit_broadcast",
"message": "Soul commit transaction broadcast. Wait for confirmation, then call reveal-soul.",
"commitTxid": "abc123...",
"commitExplorerUrl": "https://mempool.space/tx/abc123...",
"revealAddress": "bc1p...",
"revealAmount": 3200,
"commitFee": 1640,
"feeRate": 8,
"parentInscriptionId": "def456...i0",
"soulFile": "./SOUL.md",
"contentType": "text/markdown",
"contentSize": 1024,
"contentBase64": "...",
"nextStep": "After commit confirms, call: bun run souldinals/souldinals.ts reveal-soul ..."
}
Complete a soul inscription — STEP 2: Broadcast reveal transaction.
Call this AFTER the commit transaction from inscribe-soul has confirmed.
bun run souldinals/souldinals.ts reveal-soul \
--commit-txid <txid> \
--reveal-amount <satoshis> \
--content-base64 <base64> \
[--fee-rate fast|medium|slow|<number>]
Options:
--commit-txid (required) — Transaction ID of the confirmed commit (64 hex chars)--reveal-amount (required) — Amount in the commit output in satoshis (from inscribe-soul response)--content-base64 (required) — Base64-encoded soul.md content (from inscribe-soul response)--fee-rate (optional) — Fee rate for reveal tx (default: medium)Requires: unlocked wallet.
Output:
{
"status": "success",
"message": "Soul inscription created successfully!",
"inscriptionId": "def456...i0",
"contentType": "text/markdown",
"contentSize": 1024,
"commit": {
"txid": "abc123...",
"explorerUrl": "https://mempool.space/tx/abc123..."
},
"reveal": {
"txid": "def456...",
"fee": 960,
"explorerUrl": "https://mempool.space/tx/def456..."
},
"recipientAddress": "bc1p...",
"note": "Soul inscription will appear at the recipient address once the reveal transaction confirms."
}
List all soul inscriptions (text/markdown) owned by the wallet's Taproot address.
Queries the Unisat Ordinals API and filters for text/markdown content type.
bun run souldinals/souldinals.ts list-souls
Requires: unlocked wallet (for Taproot address).
Output:
{
"address": "bc1p...",
"count": 2,
"souls": [
{
"id": "abc123...i0",
"number": 78345,
"contentType": "text/markdown",
"contentLength": 1024,
"timestamp": "2024-01-15T12:00:00.000Z",
"genesisBlockHeight": 835000
}
]
}
Load and display the full content of the oldest soul inscription from the wallet.
Finds the oldest text/markdown inscription and fetches its content via the Unisat Ordinals API.
bun run souldinals/souldinals.ts load-soul
Requires: unlocked wallet (for Taproot address).
Output:
{
"inscriptionId": "abc123...i0",
"contentType": "text/markdown",
"contentSize": 1024,
"timestamp": "2024-01-15T12:00:00.000Z",
"content": "# My Soul\n\n..."
}
Parse and display soul traits from a specific inscription by ID.
Fetches inscription content and parses Markdown sections to extract identity traits: name, description, values, focus areas, and custom sections.
bun run souldinals/souldinals.ts display-soul --inscription-id <id>
Options:
--inscription-id (required) — Inscription ID (format: {txid}i{index})Output:
{
"inscriptionId": "abc123...i0",
"contentType": "text/markdown",
"traits": {
"name": "...",
"description": "...",
"values": ["..."],
"focusAreas": ["..."],
"sections": {
"Identity": "...",
"Values": "..."
}
},
"rawContent": "# Soul\n\n..."
}
# Step 1: Broadcast commit (soul.md defaults to ./SOUL.md)
bun run souldinals/souldinals.ts inscribe-soul \
--parent-inscription-id <genesisInscriptionId>
# Save: commitTxid, revealAmount, contentBase64
# Wait for commit to confirm (check mempool.space)
# Step 2: Reveal (finalizes inscription)
bun run souldinals/souldinals.ts reveal-soul \
--commit-txid <commitTxid> \
--reveal-amount <revealAmount> \
--content-base64 <contentBase64>
inscribe-soul and reveal-soul require a wallet unlocked via bun run wallet/wallet.ts unlock--parent-inscription-id binds the soul as a child in the Souldinals collectionlist-souls, load-soul, and display-soul use the Unisat Ordinals API (set UNISAT_API_KEY env var for higher rate limits; free tier: 5 req/s)development
Web of Trust operations for Nostr pubkeys — trust scoring, sybil detection, trust path analysis, neighbor discovery, follow recommendations, and network health. Free tier (wot.klabo.world, 50 req/day) with paid fallback (maximumsats.com, 100 sats via L402). Covers 52K+ pubkeys and 2.4M+ zap-weighted trust edges. Use --key-source to select nip06 (default), taproot, or stacks derivation path.
data-ai
BTC ordinals marketplace operations via Magic Eden — browse active listings, list inscriptions for sale via PSBT flow, submit signed listings, buy inscriptions, and cancel active listings. BTC ordinals only (not Solana). Mainnet-only.
testing
Pay-per-call access to LunarCrush social and market intelligence (Galaxy Score, AltRank, market cap rank, price, 24h change) via x402 on Stacks. USD-pegged pricing recomputed hourly from live STX/USD. Mainnet endpoint live; testnet supported.
devops
Detects HODLMM LP inventory drift (token-ratio imbalance from one-sided swap flow) and restores the target ratio via a corrective Bitflow swap plus a hodlmm-move-liquidity redeploy, gated by the 4h per-pool cooldown.