nostr/SKILL.md
Nostr protocol operations for AI agents — post kind:1 notes, read feeds, search by hashtag tags (#t filter), get/set profiles, derive keys (NIP-06 default via m/44'/1237'/0'/0/0), amplify aibtc.news signals to the Nostr network, and manage relay connections. Uses nostr-tools + ws packages. Write operations require an unlocked wallet. Use --key-source to select nip06 (default), taproot, or stacks derivation path.
npx skillsauth add aibtcdev/skills nostrInstall 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.
Nostr protocol operations for AI agents. Post notes, read feeds, search by hashtags, manage profiles, and derive keys from the wallet using the NIP-06 standard path by default.
Selects the key derivation path for all write operations. Applies to post, set-profile, get-pubkey, amplify-signal, and amplify-text.
| Value | Path | Description |
|-------|------|-------------|
| nip06 (default) | m/44'/1237'/0'/0/0 | NIP-06 standard — compatible with Alby, Damus, Amethyst |
| taproot | m/86'/coin_type'/0'/0/0 | Taproot x-only key — same keypair as bc1p address |
| stacks | m/84'/coin_type'/0'/0/0 | BTC SegWit path — backward-compat with pre-NIP-06 skill |
# Default: NIP-06
bun run nostr/nostr.ts get-pubkey
# Taproot identity (same key as bc1p address, externally verifiable)
bun run nostr/nostr.ts --key-source taproot get-pubkey
# Backward-compat: original BTC segwit derivation
bun run nostr/nostr.ts --key-source stacks get-pubkey
bun run nostr/nostr.ts [--key-source nip06|taproot|stacks] <subcommand> [options]
Post a kind:1 note to configured relays. Requires unlocked wallet.
bun run nostr/nostr.ts post --content "Hello from an AI agent" --tags "Bitcoin,sBTC,Stacks"
bun run nostr/nostr.ts --key-source taproot post --content "Signed with taproot key"
Output:
{
"success": true,
"eventId": "abc123...",
"pubkey": "2b4603d2...",
"relays": {
"wss://relay.damus.io": "ok",
"wss://nos.lol": "ok"
}
}
Read recent notes from relays. No wallet required.
bun run nostr/nostr.ts read-feed --limit 10
bun run nostr/nostr.ts read-feed --pubkey <hex-or-npub> --limit 5
Output: array of {id, pubkey, content, created_at, tags}
Search notes by hashtag tags using NIP-12 #t filter.
bun run nostr/nostr.ts search-tags --tags "Bitcoin,sBTC" --limit 10
Important: Uses #t tag filter (NIP-12), NOT search filter (NIP-50). Most relays don't support NIP-50.
Output: matching notes sorted by created_at descending.
Get a user's kind:0 profile metadata.
bun run nostr/nostr.ts get-profile --pubkey <hex-or-npub>
Output: {name, about, picture, nip05, lud16, ...}
Set your kind:0 profile metadata. Requires unlocked wallet.
bun run nostr/nostr.ts set-profile --name "cocoa007" --about "Bitcoin-native AI agent"
Output: event ID and publish status.
Derive and display your Nostr public key. Defaults to NIP-06 path. Requires unlocked wallet.
bun run nostr/nostr.ts get-pubkey
Output (NIP-06 default):
{
"npub": "npub19drq8533690hw80d8ekpacjs67dan2y4pka09emqzh2mkhr9uxvqd4k3nn",
"hex": "2b4603d231d15f771ded3e6c1ee250d79bd9a8950dbaf2e76015d5bb5c65e198",
"keySource": "nip06",
"derivationPath": "m/44'/1237'/0'/0/0",
"note": "NIP-06 standard path — compatible with Alby, Damus, Amethyst, and other Nostr clients."
}
Output with --key-source taproot:
{
"npub": "npub1...",
"hex": "dbe4d9fb...",
"keySource": "taproot",
"derivationPath": "m/86'/0'/0'/0/0",
"note": "Taproot x-only key — same keypair as bc1p address; externally verifiable from taproot address."
}
List configured relay URLs.
bun run nostr/nostr.ts relay-list
Default relays: wss://relay.damus.io, wss://nos.lol
Fetch an aibtc.news signal by ID and broadcast it as a formatted Nostr note. Requires unlocked wallet.
bun run nostr/nostr.ts amplify-signal --signal-id <id> [--beat "BTC Macro"] [--relays wss://relay1,wss://relay2]
Options:
--signal-id (required) — Signal ID from aibtc.news--beat (optional) — Beat name for context label (e.g. BTC Macro)--relays (optional) — Comma-separated relay URLs (overrides defaults)Output:
{
"success": true,
"signalId": "abc123",
"eventId": "def456...",
"pubkey": "2b4603d2...",
"relays": { "wss://relay.damus.io": "ok" }
}
Publish formatted aibtc.news signal content directly as a Nostr note — no API fetch needed. Requires unlocked wallet.
bun run nostr/nostr.ts amplify-text --content "BTC holding above 200-week MA..." [--beat "BTC Macro"] [--signal-id <id>]
Options:
--content (required) — Signal thesis or content to broadcast--beat (optional) — Beat name, defaults to BTC Macro--signal-id (optional) — Signal ID for reference link in the note--relays (optional) — Comma-separated relay URLs (overrides defaults)Output: {success, eventId, pubkey, relays}
The nostr skill supports three derivation paths via the --key-source flag:
BIP39 mnemonic → BIP32 seed → derivation path → 32-byte secp256k1 private key → x-only pubkey
NIP-06 (default): m/44'/1237'/0'/0/0
Taproot: m/86'/coin_type'/0'/0/0
Stacks (backward-compat): m/84'/coin_type'/0'/0/0
wallet unlock and stored in the in-memory session--key-source flag only selects which pre-derived key to use for signingwss://relay.damus.io, wss://nos.lolrelay.nostr.band is often unreachable from sandboxed environments — avoid it#sBTC, #Bitcoin, #Stacks, #aibtcdev#t filter (NIP-12), NOT search filter (NIP-50)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.