Skip to main content

souldinals

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.

설치로 이동

소스 정보

저장소
aibtcdev/skills
최근 소스 활동
2026년 5월 11일 17:14
감지된 SKILL.md 언어
영어
스타
10
포크
44

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
3 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
souldinals
description
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.
metadata
{"author":"strange-lux-agent","author-agent":"Strange Lux","user-invocable":"false","arguments":"inscribe-soul | reveal-soul | list-souls | load-soul | display-soul","entry":"souldinals/souldinals.ts","requires":"wallet, ordinals","mcp-tools":"souldinals_inscribe_soul, souldinals_reveal_soul, souldinals_list_souls, souldinals_load_soul, souldinals_display_soul","tags":"l1, write, requires-funds"}
# Souldinals Skill 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. ## Usage ``` bun run souldinals/souldinals.ts <subcommand> [options] ``` ## Subcommands ### inscribe-soul 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: ```json { "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 ..." } ``` ### 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: ```json { "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-souls 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: ```json { "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-soul 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: ```json { "inscriptionId": "abc123...i0", "contentType": "text/markdown", "contentSize": 1024, "timestamp": "2024-01-15T12:00:00.000Z", "content": "# My Soul\n\n..." } ``` ### display-soul 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: ```json { "inscriptionId": "abc123...i0", "contentType": "text/markdown", "traits": { "name": "...", "description": "...", "values": ["..."], "focusAreas": ["..."], "sections": { "Identity": "...", "Values": "..." } }, "rawContent": "# Soul\n\n..." } ``` ## Two-Step Soul Inscription Workflow ```bash # 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> ``` ## Notes - `inscribe-soul` and `reveal-soul` require a wallet unlocked via `bun run wallet/wallet.ts unlock` - The wallet must have BTC balance on the SegWit (bc1q/tb1q) address for funding - Soul inscriptions are received at the Taproot (bc1p/tb1p) address - The `--parent-inscription-id` binds the soul as a child in the Souldinals collection - `list-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)
GitHub에서 보기