Skip to main content
Glama

nostr-auth-agents

LLMコーディングエージェント向けのNostrサインイン — 認証のみ、ウォレット不要、ブラウザ拡張機能不要、リレーアカウント不要。

エージェント(Claude Code、OpenCode、OpenClaw、Codex、Cursorなど)は「Sign in with Nostr」チャレンジまたはイベントテンプレートを受け取ります。このリポジトリは、ローカルのマスターシークレットから派生したsecp256k1(BIP-340 schnorr)キーでそれに署名し、オプションで署名をサービスコールバックに送信します。

npmランタイム依存関係ゼロ:純粋なBigInt secp256k1/schnorr + node:crypto。クリーンなクローンから起動します。

メソッド

メソッド

ステータス

ノート

NIP-07 サインイン(チャレンジイベント署名)

✅ v1.0.0

LNURL-auth UXをミラーリング

NIP-98 HTTP認証(Authorization: Nostr <event>

🔜 予定

NIP-42 リレーAUTH(websocket)

🔜 予定

NIP-05 識別子解決

🔜 予定

Related MCP server: Alby Bitcoin Payments MCP Server

使用方法

# Sign a classic kind-22242 sign-in challenge and submit it
node nostr_auth.js nip07 --challenge "<hex>" \
  --relay "wss://relay.example.com" \
  --domain example.com \
  --callback "https://site.example.com/verify"

# Dry-run: sign but don't submit (inspect first)
node nostr_auth.js nip07 --challenge "<hex>" --dry-run --json

# Sign an arbitrary event template (what window.nostr.signEvent would do)
node nostr_auth.js nip07 '{"kind":22242,"tags":[["challenge","<hex>"]],"content":""}'

# Print the derived identity (hex pubkey + npub)
node nostr_auth.js nip07 pubkey --domain example.com

進行ログはstderrに出力されます。結果(JSON)はstdoutに出力されます。終了コード:0 受け入れ、1 クライアントエラー、2 使用方法、3 サーバーERROR4 JSON以外のコールバック応答。

キー管理

  • 初回実行時に、~/.config/nostr-auth/master.key(モード0600)に32バイトのマスターシークレットを生成します。

  • サービスごとのアイデンティティ:linkingPriv = HMAC-SHA256(master, serviceDomain)。同じドメイン→同じnpub、異なるドメイン→異なるnpub(プライバシー)。

  • --single-keyはすべてのサービスで1つのアイデンティティを共有します。

  • --generateはマスターシークレットを上書きします。パスは--keyfile/--keyoutまたはNOSTR_AUTH_KEYFILE環境変数で上書きできます。

プロトコル(NIP-07スタイル)

  1. チャレンジ→イベント(デフォルトではkind 22242)にchallengeタグとオプションのrelayタグが含まれます。

  2. NIP-01 id:sha256(JSON.stringify([0, pubkey, created_at, kind, tags, content]))

  3. BIP-340 schnorrで生の32バイトidに署名→64バイトの16進sig

  4. コールバックに{"event": {...}}をPOST→{"status":"OK"} / {"status":"ERROR","reason":"..."}

エージェント向けの完全なドキュメントはSKILL.mdを参照してください。

MCPサーバー

依存関係ゼロのstdio MCPサーバー(mcp/server.js)で、nostr_nip07_sign / nostr_nip07_pubkeyツールを公開しています:

{
  "mcpServers": {
    "nostr-auth": { "command": "node", "args": ["mcp/server.js"] }
  }
}

Claude Code(.claude-plugin/)、Codex、Cursor、およびskills.shの検出可能性(skills.sh.json)用のプラグインマニフェストが含まれています。プラットフォームごとの配布状況についてはPUBLISHING.mdを参照してください。

エージェントスキルとしてのインストール(プラットフォーム別)

  • Claude Code / 任意のMCPクライアント:リポジトリをスキルディレクトリに置き、SKILL.md + .mcp.jsonを使用します。

  • OpenClaw / ClawHubskills/nostr-auth/は自律バンドルです(SKILL.md + scripts/nostr_auth.js、npm依存関係ゼロ)。

  • skills.sh (Vercel)npx skills add dyegolara/nostr-auth-agents

  • npmnpm i -g nostr-authnostr-auth nip07 ...

セルフテスト(オフライン、無料)

npm ci
npm test

ローカルのモック「Sign in with Nostr」サービス(mock_server.js)は、チャレンジ→署名→送信→検証のラウンドトリップ、リプレイ拒否、ドライラン安全性、ドメインごとのアイデンティティ安定性、およびポータブルスキルバンドルを検証します。

プロジェクト構成

nostr_auth.js        CLI (bin "nostr-auth")
lib/                 key mgmt, BIP-340 schnorr, NIP-01 events, NIP-07 flow
mcp/server.js        zero-dep MCP server (stdio)
mock_server.js       local sign-in mock for tests
skills/nostr-auth/   portable OpenClaw/ClawHub skill bundle
contrib/anthropics/  educational skill variant for anthropics/skills
test/                vitest suite

ライセンス

MIT — LICENSEを参照してください。認証のみ:このプロジェクトは資金を保持せず、ノートを公開せず、独自にリレーに接続することはありません。

A
license - permissive license
-
quality - not tested
-
maintenance - not tested

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dyegolara/nostr-auth-agents'

If you have feedback or need assistance with the MCP directory API, please join our Discord server