ドメイン認証(NIP-05)をしてみよう
NIP-05では、ドメインを用いた同一性証明を行うことが可能です。一部クライアントでは、認証に成功した場合に認証マークのようなものがつきます。
必要なファイルを作成する
注意
NIP-05関連ファイルはドメイン直下(サブドメイン可)に配置する必要があります。
OK: https://<domain>/.well-known/nostr.json
NG: https://<domain>/...route/.well-known/nostr.json
GitHub Pagesを使用する場合
テンプレートリポジトリを利用すると楽です。
NIP-05関連ファイルはドメイン直下に配置する必要があるため、リポジトリ名は<GitHub-UserName>.github.ioに設定する必要があります。
nostr.jsonの作成
ほとんどのフロントエンドフレームワークでは、public/に.well-known/nostr.jsonを配置することで<DOMAIN>/.well-known/nostr.jsonにアクセスできるようになるはずです。
.well-known/nostr.json:
{
"names": {
"あなたの名前": "あなたの公開鍵(hex形式)"
}
}
名前の形式について
"あなたの名前" は a-z 0-9 - _ . の文字のみ使用可能で大文字小文字を区別しません。
公開鍵の形式について
Nostrの公開鍵にはnpub1...の形式(bech32)とhex形式の2種類があります。NIP-05ではhex形式を使用します。
npub1...形式の公開鍵からhexに変換するには、このページを参照してください。
名前を省略表示したい
基本、クライアントでは名前@ドメインの形式で表示されますが、名前の部分を省略することができます。
省略するには、nostr.jsonで名前を_に設定してください。
CORSの設定
Webサーバーで以下のヘッダーを返すように設定してください:
/.well-known/nostr.json
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET
Content-Type: application/json
プロフィールに設定する
ファイルを作成したら、クライアントのプロフィール設定画面でNIP-05識別子を設定します。
設定する値は以下の形式です:
<名前>@<ドメイン>
(任意) 複数のユーザーを設定する
1つのドメインで複数のユーザーを設定することも可能です:
{
"names": {
"alice": "<pubkey>",
"bob": "<pubkey>",
"charlie": "<pubkey>"
}
}
(任意) リレーヒントを追加する
アカウントが存在するリレーを記述することができます。これはユーザーには表示されないことが多く、クライアントが内部的にアカウント情報を探すために使用されます。
nostr.jsonにrelaysフィールドを追加します:
{
"names": {
"alice": "aaaaaaaaaa",
"bob": "bbbbbbbbbb"
},
"relays": {
"aaaaaaaaaa": [
"wss://relay.damus.io",
"wss://nos.lol"
],
"bbbbbbbbbb": [
"wss://yabu.me",
"wss://relay.damus.io"
]
}
}