nosister is an Issuer-Specified Expiry (ISE) Nostr relay: publishers can set their own event lifetime using an ["expiration","<unix>"] tag, and the relay also honors issuer delete events.
EVENT, REQ, and CLOSE commands over WebSocket.1, 20, 6, 7, 3, 10002, 14, 5, 9734, 9735, 30023, 30000, 30402.So: relay storage is broader than what the homepage feed displays.
Non-standard note: ISE is a nosister relay policy built on top of the standard NIP-40 expiration tag handling.
"expiration".Date.parse fallback.events.expires_at; if not, expires_at is NULL.deleted_at IS NULL and (expires_at IS NULL OR expires_at > NOW()).expires_at stays NULL (archival by default).expires_at becomes NULL.{
"kind": 1,
"content": "Hello from nosister with 24h expiry",
"tags": [["expiration", "1735862400"]]
}
{
"kind": 1,
"content": "Longer-lived note (~30 days)",
"tags": [["expiration", "1738368000"]]
}
["expiration", "..."], current relay behavior is indefinite retention unless later deleted by issuer (kind 5) or removed by operator action.
NOTICE and socket close.NOTICE + OK false.deleted_at in storage.expires_at semantics.OK: sent for each EVENT publish attempt (accepted or rejected).NOTICE: sent for malformed commands, policy violations, or rate-limit rejections.EOSE: sent after stored historical events are replayed to a new subscription.GET /policy → retention policy object (mode, summary, fields).GET /relay-info (and / with Accept: application/nostr+json) → relay metadata, supported NIPs, retention summary.GET /health → status + DB up/down + retention mode.wss://relay.nosister.com to your relay set.["expiration", "<unix>"] in tags).["OK","<eventid>",true,""] on acceptance.wscat -c wss://relay.nosister.com
["EVENT",{
"id":"<event-id>",
"pubkey":"<hex-pubkey>",
"created_at":1735776000,
"kind":1,
"tags":[["expiration","1735862400"]],
"content":"hello nosister",
"sig":"<signature>"
}]
["OK","<event-id>",true,""]
Any client that can publish to normal relays can use nosister. ISE is opt-in: add an expiration tag when you want timed expiry.
wss://relay.nosister.com.REQ with the tracked kind list and since = now - 30 minutes.EVENT / EOSE stream behavior).The UI can optionally hide content but still shows metadata.