NIP-40
期限切れタイムスタンプ
expiration
タグの値(Unixタイムスタンプ)でイベントの有効期限を表すことにしよう、という提案。
期限が切れたイベントはリレーから削除されるべき(SHOULD)
仕様tag: expiration
values:
- [UNIX timestamp in seconds(UNIXタイムスタンプ(秒))]: required(必須)
イベント例.json{
"pubkey": "<pub-key>",
"created_at": 1000000000,
"kind": 1,
"tags": [
["expiration", "1600000000"]
],
"content": "This message will expire at the specified timestamp and be deleted by relays.\n",
"id": "<event-id>"
}
クライアントの挙動
クライアントは、
NIP-11の
supported_nips
を使ってリレーがこのNIPをサポートしているか調べるべき(SHOULD)であり、このNIPをサポートしないリレーに対して有効期限つきイベントを送信すべきでない(SHOULD NOT)。
クライアントは期限切れイベントを無視すべき(SHOULD)。
リレーの挙動
リレーは、期限が切れたイベントを即座に削除しなくてもよく(MAY NOT)、無期限に保存しておいてもよい(MAY)。
リレーは、期限が切れたイベントをクライアントに送信すべきではない(SHOULD)。(保存していたとしても)
リレーは、発行時点で既に期限が切れているイベントを無視すべき(SHOULD)。
期限切れタイムスタンプは、一時イベント(cf.
NIP-16)の扱いには影響を与えない。
使用例
一時的な告知
期間限定サービス
注意: 以下の理由により、期限付きメッセージをセキュリティの目的で使うことはできない
イベントはリレーを通してどこからでもアクセスできる
リレーが期限切れのイベントをストレージから削除するとは限らない