リアクション・リポストのタグ周りの挙動
リアクション(kind:7 , NIP-25) や リポスト(kind:6, NIP-18) においてeタグはその対象となるイベントを指し示すために使われます。しかし、いくつかのクライアントでは、複数のeタグを含めることがあります。 リアクションでは最後のeタグとpタグを使うことになっています。
リポストでは仕様上は未定義となっています。
以下は、仕様は未定義であったときの調査です(2023年5月ごろ):
結論
Damusとの互換性を考慮するなら、リアクション先として最後のeタグ、pタグを使うこと
そうでないと、リアクション先として誤った投稿を使うことになる
他のeタグはリアクション先ではないため、無視することになるはず
(追記) リアクションに関してはNIP-25の最新仕様でこのことが明言された 最後のpタグ以外で自分が含まれる場合の対応
Damusは元の投稿のpタグを含めるため、メンションされた人全員が通知を受け取ることになる
考えられる対応
無視する
Damusの挙動との互換性を優先するならマーカーに基づいて自分がメンションされた投稿がリポスト/リアクションされたと表示することもできる(仕様ではNIP-10をkind:1に使うことが想定されていると考えられる) リアクションで複数のeとpタグを含めるクライアント
そのため、元々のeタグに付いていたrootやreply等のmarkerやrelayを引き継ぐ
通知先もメンションされた人全員に通知が飛ぶ
リアクション先のイベントのIDは元々のタグの後、つまり最後に追加される
リアクションで単一のeタグを含めるクライアント
リアクションを受け取ったときの各クライアントの対応
Damus
自分の投稿ではないが、メンションされている場合は「タグ付けされた投稿に○○がリアクションしました」と表示する
Amethyst
TODO
Iris
Snort
TODO
Nostr Client Behaviors