{"id":"4c6b911f2b04dfa50e35887a1778cf84310353112fa29d9c51b303ecffbae24c","pubkey":"2b39b4ffe62933df970e19366c22c1e092f953f83fcfed754e0f04d5a3b459f9","created_at":1766512418,"kind":30817,"tags":[["d","nip-40"],["title","NIP-40: Expiration Timestamp"],["summary","The expiration tag, a timestamp after which relays and clients should treat an event as gone."],["s","draft"],["t","nostr"],["t","nip"],["alt","A specification: NIP-40: Expiration Timestamp"],["client","openspecs-import"],["published_at","1670166871"],["proxy","https://github.com/nostr-protocol/nips/blob/656cecc7c0a815b6a2b218d3b5d6f078b3f4dbab/40.md","web"],["x","1e88a08583391084fc95b842932119555cb270988612261fbb78017e84a0dc78"]],"content":"NIP-40\n======\n\nExpiration Timestamp\n--------------------\n\n`draft` `optional` `relay`\n\nThe `expiration` tag enables users to specify a unix timestamp at which the message SHOULD be considered expired (by relays and clients) and SHOULD be deleted by relays.\n\n#### Spec\n\n```\ntag: expiration\nvalues:\n - [UNIX timestamp in seconds]: required\n```\n\n#### Example\n\n```json\n{\n  \"pubkey\": \"<pub-key>\",\n  \"created_at\": 1000000000,\n  \"kind\": 1,\n  \"tags\": [\n    [\"expiration\", \"1600000000\"]\n  ],\n  \"content\": \"This message will expire at the specified timestamp and be deleted by relays.\\n\",\n  \"id\": \"<event-id>\"\n}\n```\n\nNote: The timestamp should be in the same format as the created_at timestamp and should be interpreted as the time at which the message should be deleted by relays.\n\nClient Behavior\n---------------\n\nClients SHOULD use the `supported_nips` field to learn if a relay supports this NIP. Clients SHOULD NOT send expiration events to relays that do not support this NIP.\n\nClients SHOULD ignore events that have expired.\n\nRelay Behavior\n--------------\n\nRelays MAY NOT delete expired messages immediately on expiration and MAY persist them indefinitely.\nRelays SHOULD NOT send expired events to clients, even if they are stored.\nRelays SHOULD drop any events that are published to them if they are expired.\nAn expiration timestamp does not affect storage of ephemeral events.\n\nSuggested Use Cases\n-------------------\n\n* Temporary announcements - This tag can be used to make temporary announcements. For example, an event organizer could use this tag to post announcements about an upcoming event.\n* Limited-time offers - This tag can be used by businesses to make limited-time offers that expire after a certain amount of time. For example, a business could use this tag to make a special offer that is only available for a limited time.\n\n#### Warning\nThe events could be downloaded by third parties as they are publicly accessible all the time on the relays.\nSo don't consider expiring messages as a security feature for your conversations or other uses.\n","sig":"5f88979b642b9572a298bb0dc03d59f0f4dadbd816e855f072c9579a3c28c89f9bb2ba2276d80a6bcf7326ab954c8b1f5c1aa8595b3e98b36a67548432c04a67"}