Nostr 鍵ペア生成・変換(nsec / npub)

Nostrの秘密鍵と公開鍵のペアを作成し、16進数とNIP-19形式(nsec / npub)を相互に変換します。秘密鍵から公開鍵を求めることもできます。鍵はブラウザ内だけで扱い、保存・送信しません。

このページでは、アクセス解析・広告のスクリプトを読み込みません。

秘密鍵(nsec)を知っている人は、そのアカウントで何でも投稿できます。誰にも見せず、信頼できない場所に貼り付けないでください。このページは鍵を保存・送信せず、ページを閉じると消えます。

操作

使い方

  1. 新しく作る場合は「新しく作成」で「鍵ペアを作成」を押します。
  2. 手持ちの鍵を変換する場合は「手持ちの鍵を変換」を選び、入力する鍵の種類(秘密鍵または公開鍵)を選んで、nsec1… / npub1… か64文字の16進数を入力し「変換する」を押します。
  3. 公開鍵(npub と16進数)とnpubのQRコードが表示されます。QRコードはPNGで保存できます。
  4. 秘密鍵は最初は隠しています。「秘密鍵を表示」で表示し、各行のボタンでコピーできます。使い終わったら「すべて消去」を押してください。

注意事項

  • 鍵は保存しません。ページを閉じると消えるため、作成した秘密鍵は安全な場所(パスワード管理ツールなど)に自分で保管してください。失くした秘密鍵は誰にも復元できません。
  • 対応する形式は nsec・npub・64文字の16進数です。note・nprofile・nevent などのNIP-19の他の形式や、ニーモニック(NIP-06)には対応していません。
  • このページではアクセス解析・広告を読み込まず、入力や操作を記録しません。それでも、秘密鍵はなるべく信頼できる自分の端末だけで扱ってください。

計算・変換の仕組み

鍵の計算には監査済みのオープンソースライブラリ @noble/curves(secp256k1、BIP-340のSchnorr)を、NIP-19のbech32変換には @scure/base を使います(どちらもMITライセンス)。

秘密鍵はブラウザの暗号用乱数(crypto.getRandomValues)から作ります。公開鍵はBIP-340の「x座標のみ」の32バイトです。

入力の検証:秘密鍵は1以上かつsecp256k1の位数未満であること、公開鍵は曲線上の点のx座標であること、bech32はチェックサムと接頭辞(nsec / npub)が正しいことを確認します。

QRコードは公開鍵(npub)だけを作成し、秘密鍵のQRコードは作りません。

よくある質問

秘密鍵(nsec)はどこかに送信されますか?

いいえ。計算はすべてブラウザ内で行い、サーバーへの送信、ブラウザへの保存、URLへの記録はしません。

npub と16進数の公開鍵は何が違いますか?

同じ32バイトの値の書き方の違いです。npub はNIP-19で決められた形式で、チェックサムがあるため写し間違いに気付けます。リレーとの通信など内部では16進数が使われます。

「チェックサムが一致しません」と表示されます。

nsec / npub の文字が1文字でも違うか、途中で切れています。コピーし直してください。

他の人に教えてよいのはどちらですか?

公開鍵(npub)です。秘密鍵(nsec)を知られると、そのアカウントで誰でも投稿できてしまいます。

最終更新日: