ContextVM's avatar
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.
ContextVM's avatar
ContextVM 2 months ago
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's avatar
ContextVM 2 months ago
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
ContextVM's avatar
ContextVM 2 months ago
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
ContextVM's avatar
ContextVM 2 months ago
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
ContextVM's avatar
ContextVM 2 months ago
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 :) image Docs: Skills: npx cvmi add --skill payments, or npx skills add contextvm/cvmi --skill payments
ContextVM's avatar
ContextVM 2 months ago
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!
ContextVM's avatar
ContextVM 2 months ago
🍋 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 →
ContextVM's avatar
ContextVM 2 months ago
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⚡⚡️ image 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!⚡️⚡️⚡️
ContextVM's avatar
ContextVM 2 months ago
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 →
ContextVM's avatar
ContextVM 2 months ago
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 →
ContextVM's avatar
ContextVM 2 months ago
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's avatar
ContextVM 2 months ago
Payments are coming imminently 🚀
ContextVM's avatar
ContextVM 2 months ago
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 →