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.
ContextVM
_@contextvm.org
npub1dvmc...3jdm
ContextVM is a decentralized protocol that enables Model Context Protocol (MCP) servers and clients to communicate over the Nostr network. It uses Nostr as a secure, distributed transport layer—leveraging cryptographic keys for identity, decentralized discovery, and Bitcoin-powered micropayments.
Rather than relying on centralized infrastructure like domains, OAuth, or cloud hosting, ContextVM allows anyone to run or access services using only Nostr and a internet-connected device. It transforms any computational service into a discoverable, accessible, and monetizable resource—while preserving privacy, security, and user sovereignty.
Hey Nostr! We're excited to share that we're working on getting more eyes on ContextVM and its development. We just published our first post on Hacker News. If you're on the platform, we'd love for you to check it out, share your thoughts, or help spread the word. Every bit helps, so please join us in growing ContextVM! 🚀
https://news.ycombinator.com/item?id=47151294
Now that payments are in place, we are going to work on:
- CEP-19 for ephemeral gift wraps:
and
- CEP-17 for servers relay list:
Both CEPs are quite minimal but yet beneficial for the ecosystem. CEP-19 provides better privacy guarantees, as servers and clients will be able to use ephemeral gift wraps for encrypted communications. Currently, they use regular gift wraps, which are regular events, and even if the events inside are ephemeral, they are wrapped in a regular envelope. CEP-17 defines how servers can announce relay lists (NIP-65) to improve discoverability.
Simple but powerful! LG!🚀
After this iteration we will come back to CEP-15 introducing common tool schemas, which is a bigger one

GitHub
Issues · ContextVM/contextvm-docs
ContextVM documentation and specification. Alternative link: https://contextvm.github.io/contextvm-docs/ - Issues · ContextVM/contextvm-docs
GitHub
Issues · ContextVM/contextvm-docs
ContextVM documentation and specification. Alternative link: https://contextvm.github.io/contextvm-docs/ - Issues · ContextVM/contextvm-docs
GitHub
[CEP-15] Common Tool Schemas · Issue #15 · ContextVM/contextvm-docs
Preamble Title: Common Tool Schemas Authors: ContextVM-org Status: Draft Abstract This CEP establishes a standard for defining and discovering comm...
We've just released a new version of our SDK, now CEP-8 implementation is now complete, end to end, we’ve added the missing piece for LLM aware spending
CEP-8 gives us the wire protocol for paid MCP capabilities, servers request payment, clients settle, both sides get explicit confirmation. What was missing was a clean way to make consent programmable. This release adds a single paymentPolicy hook at the client boundary, a little yet powerful new addition. Your host environment decides whether a charge proceeds: a deterministic budget, a per-tool allowlist, a terminal prompt, or a full LLM-based policy engine. One hook, any pattern.
Google's AP2 addresses a similar problem, but it's an ambitious multi-actor framework involving Shopping Agents, Credential Providers, and cryptographic Mandates passed across multiple parties, quite complex. Our take is different, CEP-8 provides the payment rails, Nostr anchors every request to a cryptographic identity at the transport level, and consent is a composable local primitive. Simpler to integrate, and versatile enough to fit whatever your host needs to do.
This our take on agentic payments, simple, versatile, composable, no vendor lock ins
After a few days experimenting and receiving feedback around CEP‑8 payments, we enhanced their SDK implementation, making payments more reliable and consistent. We’ve just released a new feature that supports additional use cases, such as servers with prepaid balances, top‑up accounts, or separate payment management. This feature lets you waive a payment via the server’s resolve price callback. With this update, payment processing is far more powerful 🚀
Docs and skills have been updated accordingly. Happy building :)
Docs:
Skills: npx cvmi add --skill payments, or npx skills add contextvm/cvmi --skill payments
Docs: ContextVM Documentation
Payments (CEP-8)
Learn how to add payment handling to your ContextVM servers and clients using CEP-8
Get it fresh in your inbox every two weeks!
View quoted note →
GM Nostr!
Our newsletter, The ContextVM World 🌍, is now live on Substack:
While ContextVM is built on Nostr and will continue to publish natively on Nostr, our goal is to reach a larger audience outside of Nostr to have more builders leveraging our protocol!
Feel free to subscribe to our Substack and to share our newsletter with the world!

The ContextVM World 🌍 | Substack
Your biweekly appointment with ContextVM, MCP, and Nostr. Click to read The ContextVM World 🌍, a Substack publication. Launched 3 months ago.
The second issue of "The ContextVM World" is out! Hope you enjoy it 💛
View article →
Thanks so much to openSats for this opportunity! We'll keep pushing the boundaries of this new paradigm 💛
View quoted note →
Protocols over Platforms is the mantra at the core of CVM
Use Protocols, Not Services
The Internet is almost anonymous and privacy-preserving by design. I mean, unless some administrator actively tries to track you, there is no built...
These are badges are real, you can check them here as well: https://nostrsigil.com/badges/naddr1qvzqqqr48ypzpl0zzdglhjrqfsnaelea2plcaxc4gw8nh5zqj09rl4tu66ekckxsqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hsqyrvv4kk7mnpv3jj6mr9vajkuernaqgdnx
View quoted note →
🍋 Introducing Lemonade Legends, our newest teaching project that demonstrate how to use CEP-8 in a tangible and fun way!
Do you want your lemonade legend badge? https://lemonade.contextvm.org
This is a server that mints nostr badges with dynamic pricing: 21 sats on day 0, +21 sats each day after. A live experiment in paid capabilities, SQLite accountability, and dual APIs (humans via UI, agents via MCP). The idea behind this project was to create a new and fun educational resource for the CVM ecosystem. You can read our blog post here: https://contextvm.org/blog/lemonade-legends or in nostr.
What we did for this project:
✨ Server + Svelte app, both open source
✨ Step-by-step blog post walking through the code
✨ Copy-paste ready patterns for your own paid tools
Dive in → https://contextvm.org/blog/lemonade-legends
Server → github.com/ContextVM/lemonade-legends
Site → github.com/ContextVM/lemonade-legends-site
What will you build with CEP-8? 💛
#lemonadelegends #contextvm #cep8 #nostr #bitcoin #lightning #opensource
View article →
Just pushed a new payment processor for our SDK based on ZAPS!⚡️ It only requires an LN address to be used, it couldn't be easier⚡⚡️
With this new payment processor, our SDK now supports three payment processors based on Lightning BOLT11: NWC, LNbits, and now ZAPS⚡ To use it, simply update to the latest contextvm SDK.
The only consideration regarding this payment method is that ZAPS can be faked by the provider of your LN address. If you trust the provider of the configured Lightning address, there is no problem, it could even be your own node. However, if you don’t trust the provider, the ZAP receipt alone is not sufficient to prove settlement. This is not a new issue; it has been discussed and is already covered in an appendix in nip-57
Hope you enjoy!⚡️⚡️⚡️
With this new payment processor, our SDK now supports three payment processors based on Lightning BOLT11: NWC, LNbits, and now ZAPS⚡ To use it, simply update to the latest contextvm SDK.
The only consideration regarding this payment method is that ZAPS can be faked by the provider of your LN address. If you trust the provider of the configured Lightning address, there is no problem, it could even be your own node. However, if you don’t trust the provider, the ZAP receipt alone is not sufficient to prove settlement. This is not a new issue; it has been discussed and is already covered in an appendix in nip-57
Hope you enjoy!⚡️⚡️⚡️This is why CVM.
In an agent-mediated world, the shipped feature set matters less than what an agent can discover and compose at runtime. Your real product becomes your callable surface area: reliability, clear schemas, predictable behavior, and the ability to snap into workflows you didn’t design.
That shift makes distribution the new battleground. If discovery collapses into a handful of registries and default tool lists, the ecosystem recentralizes fast, no matter how open the API spec looks.
You can already see the gravity well: MCP’s mainstream path tends to reintroduce old control points, registries anchored to domains, OAuth-based access, and platform-shaped “approved” directories. They’re convenient, but they harden into gatekeeping, and single points of failure.
ContextVM is built to route around that. It runs MCP over Nostr so services are addressed by public keys, routed over relays, and announced publicly without permission. Discovery becomes a network primitive instead of a platform feature. Relays act as decentralized repositories, and curation becomes competitive and plural rather than owned.
We’ve just added payments in a way that composes cleanly with autonomous, per-call usage. If agents can swap tools mid-workflow, pricing has to be as modular as the capabilities themselves, without dragging builders back into accounts, gatekeepers, and permissioned land.
ContextVM’s wager is simple: if agents are going to assemble the future on the fly, the underlying rails for identity, discovery, and payment must be open, permissionless, and censorship-resistant by default.
View quoted note →
It takes you ~20 LOC to enable payments in your server. NWC + CVM = 🤯
The code:
View quoted note →
The code: GitHub
dummy-paid-server/index.ts at main · ContextVM/dummy-paid-server
Contribute to ContextVM/dummy-paid-server development by creating an account on GitHub.
Pro tip: get the CVM skills for payments `npx cvmi add --skill payments -y` Ask your agent to build something profitable, use an NWC connect string, and start monetizing. Quite easy.
Additionally, there is an LNBits backend available in the SDK, and the skills come with documentation on how to build your custom payment rails if you need.
Let's build! 🚀
View quoted note →
Payments Have Arrived! 🚀
ContextVM now supports payments with CEP-8! Your servers can finally become digital lemonade stands, paid, permissionless services that anyone can run and consume without asking for permission.
This release packs everything you need. The new version of the SDK have everything you need, even ships with Lightning BOLT11 integrations (NWC and LNbits), the ContextVM site now supports payment discovery, cvmi and skills has been updated, and the docs cover the full flow. Want to see it in action? The dummy demo server (https://github.com/ContextVM/dummy-paid-server) shows you exactly how to price and monetize a capability.
Looking forward to hear your thoughts and see what you are building!
Read the docs:
Build a stand. Price a capability. Let value flow.
If you have any question just ask
View article →
ContextVM Documentation
CEP-8 Capability Pricing and Payment Flow
Pricing mechanism and payment processing for ContextVM capabilities
Payments are coming imminently 🚀
Just shipped some clarity improvements to CEP-8 🎯
We are pretty close to getting this done; we just shipped some clarification to the payments spec so some concepts are less ambiguous. The spec now has well-defined PMI (payment method identifier) boundaries, clarifiying what goes in `pay_req`. We've added a recommended PMI registry with precise payload semantics, plus naming conventions to keep things unambiguous as the ecosystem grows.
Also new: optional direct payments for bearer assets. When both parties support it, you can skip the roundtrip, just attach `["direct_payment", "<pmi>", "<payload>"]` to your request and you're done. Good for cashu 🥜
The ongoing implementation remains unchanged, this is all documentation and specification hardening.
Current spec:
SDK progress: github.com/ContextVM/sdk/pull/24
Feedback welcome!
View quoted note →
GitHub
contextvm-docs/src/content/docs/spec/ceps/cep-8.md at ed71abec7bd93ba1082e67dfc92f0b0bcf618a72 · ContextVM/contextvm-docs
ContextVM documentation and specification. Alternative link: https://contextvm.github.io/contextvm-docs/ - ContextVM/contextvm-docs