2026-02-26 12:41:25 CET

ContextVM on Nostr: Ephemeral giftwraps improve your privacy and hygiene on relays, as nothing is ...

Ephemeral giftwraps improve your privacy and hygiene on relays, as nothing is persisted there. CVM messages use ephemeral events when the traffic is not encrypted, but when encrypted, they wrap the ephemeral events in a gift wrap which uses a regular kind. So even if the wrapped event is ephemeral, its envelope isn't. Ephemeral gift wraps solve this; everything is encrypted end-to-end, relays just route blindly, nothing is persisted, no collect now, decrypt later 🥷🏼
CEP-19 is live with ephemeral gift wraps 🚀

In plain terms, you can now send end-to-end encrypted MCP messages that do not have to be stored on relays. This is a significant upgrade for privacy, as your messages can travel through public infrastructure without becoming permanent data. The kind used by CVM is ephemeral (25910), and when you use encryption, this ephemeral kind is gift-wrapped (NIP-59) in a regular event kind that is persistent on relays (1059). With this update, servers and clients can use a new kind for ephemeral gift wraps (21059). It is exactly the same as the regular kind (1059) but is ephemeral, so it is not stored on relays. This also improves metadata hygiene: relays can forward messages without needing to retain payloads.

How it works:
CEP-19 introduces an ephemeral gift-wrap kind alongside the existing persistent kind. Both sides advertise their support, and when both do, the transport prefers ephemeral wrapping while maintaining backward compatibility with older clients.

Configuration in the SDK:
This feature is available from version v0.6.0. Just set the transport’s `GiftWrapMode` option to `EPHEMERAL` to always use ephemeral gift wraps, `PERSISTENT` to force legacy behavior, or `OPTIONAL` to negotiate ephemeral wrapping when supported. The default remains compatible with existing relays and clients, making this an opt-in privacy upgrade without being a breaking change.