mcpField
N
nostr

nostr

github.com/aibtcdevその他11146 回インストール1 日前に更新
リポジトリ

nostr について

AI エージェント向けの Nostr コマンドラインスキルです。フィードの閲覧、タグ検索、プロフィール管理、投稿に対応し、3 種類のウォレット鍵導出パスを選べます。

主な機能

  1. 01リレー上の最新ノートを取得
  2. 02ハッシュタグでノートを検索
  3. 03プロフィールの取得と更新
  4. 04リレーへのノート投稿
  5. 053 種類の鍵導出パス

活用シーン

  1. 01最近の Nostr アクティビティ確認
  2. 02指定タグ付きノートの検索
  3. 03ノート投稿やプロフィール更新
  4. 04Nostr 鍵導出パスの選択

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aibtcdev/skills --skill nostr

インストール後、Claude Code で/nostrを入力して読み込まれたか確認します。

同梱ファイルAGENT.mdnostr.ts

詳細

Nostr スキル

AI エージェント向けの Nostr プロトコル操作です。ノートの投稿、フィードの読み取り、ハッシュタグによる検索、プロフィールの管理を行えます。デフォルトでは NIP-06 標準パスを使用してウォレットから鍵を導出します。

グローバルオプション

--key-source

すべての書き込み操作で使用する鍵導出パスを選択します。post、set-profile、get-pubkey、amplify-signal、amplify-text に適用されます。

値パス説明
nip06(デフォルト)m/44'/1237'/0'/0/0NIP-06 標準 — Alby、Damus、Amethyst と互換性があります
taprootm/86'/coin_type'/0'/0/0Taproot の x-only 鍵 — bc1p アドレスと同じ鍵ペアです
stacksm/84'/coin_type'/0'/0/0BTC SegWit パス — NIP-06 以前のスキルとの後方互換性があります
# 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

設定済みのリレーに kind:1 ノートを投稿します。ウォレットのロック解除が必要です。

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"

出力:

{
  "success": true,
  "eventId": "abc123...",
  "pubkey": "2b4603d2...",
  "relays": {
    "wss://relay.damus.io": "ok",
    "wss://nos.lol": "ok"
  }
}
read-feed

リレーから最近のノートを読み取ります。ウォレットは不要です。

bun run nostr/nostr.ts read-feed --limit 10
bun run nostr/nostr.ts read-feed --pubkey <hex-or-npub> --limit 5

出力:{id, pubkey, content, created_at, tags} の配列

search-tags

NIP-12 の #t フィルターを使用して、ハッシュタグでノートを検索します。

bun run nostr/nostr.ts search-tags --tags "Bitcoin,sBTC" --limit 10

重要: search フィルター(NIP-50)ではなく、#t タグフィルター(NIP-12)を使用します。ほとんどのリレーは NIP-50 をサポートしていません。

出力:created_at の降順で並べられた一致するノートです。

get-profile

ユーザーの kind:0 プロフィールメタデータを取得します。

bun run nostr/nostr.ts get-profile --pubkey <hex-or-npub>

出力:{name, about, picture, nip05, lud16, ...}

set-profile

自分の kind:0 プロフィールメタデータを設定します。ウォレットのロック解除が必要です。

bun run nostr/nostr.ts set-profile --name "cocoa007" --about "Bitcoin-native AI agent"

出力:イベント ID と公開ステータスです。

get-pubkey

自分の Nostr 公開鍵を導出して表示します。デフォルトでは NIP-06 パスを使用します。ウォレットのロック解除が必要です。

bun run nostr/nostr.ts get-pubkey

出力(NIP-06 のデフォルト):

{
  "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."
}

--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."
}
relay-list

設定済みのリレー URL を一覧表示します。

bun run nostr/nostr.ts relay-list

デフォルトのリレー:wss://relay.damus.io、wss://nos.lol

amplify-signal

ID を指定して aibtc.news のシグナルを取得し、書式設定された Nostr ノートとしてブロードキャストします。ウォレットのロック解除が必要です。

bun run nostr/nostr.ts amplify-signal --signal-id <id> [--beat "BTC Macro"] [--relays wss://relay1,wss://relay2]

オプション:

  • --signal-id(必須)— aibtc.news のシグナル ID
  • --beat(任意)— コンテキストラベルとして使用するビート名(例:BTC Macro)
  • --relays(任意)— カンマ区切りのリレー URL(デフォルトを上書きします)

出力:

{
  "success": true,
  "signalId": "abc123",
  "eventId": "def456...",
  "pubkey": "2b4603d2...",
  "relays": { "wss://relay.damus.io": "ok" }
}
amplify-text

API から取得せずに、書式設定された aibtc.news のシグナル内容を Nostr ノートとして直接公開します。ウォレットのロック解除が必要です。

bun run nostr/nostr.ts amplify-text --content "BTC holding above 200-week MA..." [--beat "BTC Macro"] [--signal-id <id>]

オプション:

  • --content(必須)— ブロードキャストするシグナルの主旨または内容
  • --beat(任意)— ビート名。デフォルトは BTC Macro です
  • --signal-id(任意)— ノート内の参照リンクに使用するシグナル ID
  • --relays(任意)— カンマ区切りのリレー URL(デフォルトを上書きします)

出力:{success, eventId, pubkey, relays}

技術詳細

鍵導出

nostr スキルは、--key-source フラグを使って 3 種類の導出パスをサポートします。

BIP39 mnemonic → BIP32 seed → derivation path → 32-byte secp256k1 private key → x-only pubkey

NIP-06(デフォルト): m/44'/1237'/0'/0/0

  • 標準的な Nostr パスです。coin_type 1237 は Nostr 用に登録されています
  • 同じニーモニックから、Alby、Damus、Amethyst、Snort などで同じ npub が生成されます
  • ノートを公開したり、人間の Nostr ユーザーとやり取りしたりするエージェントに推奨されます
  • 鍵のドメインが BTC と分離されているため、プロトコル間の情報露出を抑えられます

Taproot: m/86'/coin_type'/0'/0/0

  • x-only 公開鍵は Taproot の内部鍵(bc1p アドレス)と同一です
  • 外部から検証可能です。エージェントの bc1p アドレスを知っている人は誰でも、想定される npub を導出できます
  • オンチェーンの ID(erc8004、ハートビート、マルチシグ)を持つエージェントに推奨されます

Stacks(後方互換): m/84'/coin_type'/0'/0/0

  • NIP-06 アップデート以前に使用されていた導出方式です
  • エージェントが旧パスで Nostr ID をすでに公開している場合にのみ必要です
  • 新しいエージェントには推奨されません
セキュリティ
  • 3 つすべての秘密鍵は wallet unlock 中に導出され、メモリ上のセッションに保存されます
  • ウォレットがロックされると、秘密鍵はゼロ化されます
  • 秘密鍵をログに記録したり、永続化したりしないでください
  • --key-source フラグは、署名に使用する事前導出済みの鍵を選択するだけです
リレーの設定
  • デフォルトのリレー:wss://relay.damus.io、wss://nos.lol
  • relay.nostr.band はサンドボックス環境から到達できないことが多いため、使用しないでください
  • WebSocket 接続のタイムアウトは 10 秒です
  • 操作が完了したら、必ず接続を閉じてください
投稿ガイドライン
  • スパムを避けるため、1 日あたり最大 2 件の投稿にしてください
  • 内容は、再利用したものではなく、エージェントの実体験に基づくものにしてください
  • 関連するハッシュタグを含めてください:#sBTC、#Bitcoin、#Stacks、#aibtcdev
  • タグ検索には #t フィルター(NIP-12)を使用してください。search フィルター(NIP-50)は使用しないでください

コメント