#

p2p

(51 articles)

Services without DNS: an identity-first model using Nostr - Now with punch-able Proof of Concept

![image](https://image.nostr.build/75966e88f99debffe0bd09a67eddf60caa94ce58b4654f88097a810f7d08c60d.png) ## Services without DNS: an identity-first model using NCC This project demonstrates a working proof of concept for running and discovering services without relying on DNS. Instead of names and registrars, services are anchored to cryptographic identities and published over Nostr using signed, immutable records. The result is a system where ownership, reachability, and trust are decoupled, verifiable, and client-resolved. DNS becomes optional, not foundational. > *This work is a proof of concept and reference implementation. The specifications, libraries, and sidecar are under active development and should not yet be considered production-hardened. The goal is to validate the model, explore client and relay behaviour, and provide a concrete basis for further review and iteration.* Although this project is demonstrated using Nostr relays, the model is **service-agnostic**. NCC-02 and NCC-05 apply to any networked service, including APIs, web services, media endpoints, **and full web applications**. Relays provide the discovery and distribution backbone. The service itself does not need to be a relay, or even Nostr-aware, to participate. This includes standard web apps. A web application can be discovered, resolved, and reached via NCC records, with clients resolving identity and endpoints independently of DNS. --- ### The components #### NCC-02 – Identity-bound service ownership NCC-02 defines how a Nostr identity asserts ownership of a service. An NCC-02 record is a signed Nostr event that binds: * a service identifier using the `d` tag, * to a controlling npub, * with optional descriptive metadata. This record answers a single question: **who owns this service?** Because the event is signed by the service key, ownership is cryptographically verifiable. Any client can confirm that the service belongs to that identity without relying on DNS, registries, or central authorities. Key properties: * Services exist as identities, not hostnames * Only the private key holder can update or revoke the record * Multiple services can exist under one identity, distinguished by `d` * Updates are expressed as new signed events, not mutable records NCC-02 does not describe where a service runs or how to reach it. It is purely the ownership anchor. --- #### Service record attestations Service record attestations extend NCC-02 by allowing **other identities** to make signed statements *about* a service, without changing ownership. An attestation is a separate Nostr event that references an NCC-02 service record and asserts some claim about it. Critically: * The attester does not control the service * The attestation does not modify or replace the NCC-02 record * The claim stands on the reputation of the signer Ownership remains singular. Claims about the service can be plural. Attestations are intentionally generic and client-interpreted. They can represent: * operational responsibility * observed availability * validation or compliance checks * authorisation assertions The NCC system does not interpret or enforce these claims. Clients decide: * which attesters they trust * how many attestations matter * how to handle conflicting or missing attestations Attestations provide **evidence**, not authority. They replace central trust anchors with explicit, signed statements evaluated client-side. --- #### NCC-05 – Cryptographic location resolution NCC-05 defines how a service publishes **where it can be reached**, independently of DNS. An NCC-05 record is associated with an NCC-02 service and contains one or more **locators**, each describing a concrete endpoint: * IPv4 * IPv6 * Tor onion services Locators may be public or encrypted using NIP-44, allowing private endpoints to be published safely. Key properties: * Endpoints are cryptographically bound to the service identity * Multiple locators can coexist in parallel * Endpoints can rotate without changing identity * Clients resolve locations by following identities, not names NCC-05 does not proxy traffic, establish tunnels, or provide anonymity by itself. It is strictly a location description and resolution mechanism. --- ### Potential service patterns NCC-05 enables a range of service models beyond simple dynamic IP resolution: * **Private and invite-only services** Encrypted locators allow endpoints to be shared only with authorised pubkeys. * **Paid or subscription services** Access to locators can be gated behind one-off payments or ongoing zap-based subscriptions, with npubs removed from records or endpoints rotated as needed for easy user management. * **Ephemeral services** Short-lived APIs, temporary collaboration endpoints, or time-boxed access using tight TTLs. * **Peer-to-peer rendezvous** Two peers discover each other’s endpoints without public signalling, registrars, or coordination servers. * **Agent and automation backchannels** Bots or agents briefly exposing private control or callback endpoints. * **Web apps without DNS** Standard web applications reachable via IP or onion, discovered and resolved through identity-bound records instead of hostnames. * **Onion-only and censorship-resistant services** Services that never publish a public endpoint and rely entirely on private resolution. * **Infrastructure mobility and failover** Moving services between hosts or networks, or publishing multiple locators with deterministic priority. Relays act only as the distribution backbone. The services themselves can be arbitrary protocols and do not need to be Nostr-aware. --- ![image](https://image.nostr.build/c5e8bff6098c3911966e026e5433512101bf3aae68075c9cb917a029782bd7e3.png) #### NCC-06 – Sidecar and operational control plane NCC-06 operationalises NCC-02 and NCC-05. The sidecar is a local daemon that: * monitors services across IPv4, IPv6, and Tor * detects meaningful changes in endpoints, certificates, or metadata * publishes updated NCC-02 and NCC-05 records when required * sends encrypted admin notifications using NIP-44 * supports secure remote administration via NIP-46 The sidecar does **not** forward traffic and is **not** a proxy. It acts as a publisher, monitor, and control plane that keeps service records accurate and current. Because service identity is decoupled from network location, the sidecar enables rapid **endpoint and metadata rotation** under a stable identity. Services can move hosts, rotate IPs or onion addresses, update TLS fingerprints, or change publication relays and have the new state published within minutes. Changing the service’s npub creates a new identity and is treated as a distinct service. ![image](https://image.nostr.build/d793df163b2112a9576675909fe67c59ad9fded025f28a4ed1699fa3b1d18ccc.png) --- ### The client’s role This model only works because the client is an active participant rather than a passive resolver. The reference client shows how a client discovers NCC-02 service records, verifies ownership, and then resolves NCC-05 locator records to determine where a service can actually be reached. When locators are private, the client handles decryption using NIP-44 and decides which endpoints it is authorised to see. The client is also responsible for correlating service records, locator records, and any attestations into a single, coherent view of a service. Trust is not implicit. Each client applies its own policy about which attestations to accept, which identities to trust, and when to fail closed. Endpoint selection is likewise a client decision. The client chooses between multiple locators deterministically, respecting priority, expiry, and freshness, and automatically follows changes as new records are published. When endpoints rotate or infrastructure moves, the client converges on the new state without manual reconfiguration. Connections are made directly to the resolved service endpoints. Where required, the client can route traffic to onion services using a local bridge, allowing standard web applications and browsers to participate without special network configuration. In this architecture, relays act purely as the distribution layer and the sidecar keeps service records accurate over time. The client is where meaning is enforced. What to trust, where to connect, and how to react to change are all resolved locally, without any global authority. ![image](https://image.nostr.build/7ab4475701d776d2dc1648dc93935d0ae469af7129929f5172b2f2f2f87c766e.png) --- ### How it fits together * **NCC-02** answers: Who owns this service? * **Attestations** answer: What do others claim about it? * **NCC-05** answers: Where can it be reached? * **NCC-06** keeps all of the above accurate over time All components use: * immutable, signed Nostr events * client-side resolution * no DNS, PKI, or naming authorities --- ### Why this matters DNS-based service discovery couples identity, location, and trust into a brittle hierarchy. NCC separates these concerns: * identity is cryptographic * location is declarative and rotatable * trust is explicit and plural * resolution is client-driven This makes services more portable, harder to censor, easier to migrate, and independently verifiable. DNS becomes optional, not foundational. --- ### Code and references * Proof-of-concept client [https://github.com/imattau/ncc-client](https://github.com/imattau/ncc-client) * NCC-06 sidecar and library [https://github.com/imattau/ncc-06](https://github.com/imattau/ncc-06) * NCC-02 spec and library [https://github.com/imattau/ncc-02](https://github.com/imattau/ncc-02) * NCC-05 spec and library [https://github.com/imattau/ncc-05](https://github.com/imattau/ncc-05) NPM Libraries used: `ncc-02-js`, `ncc-05-js` #nostr #builders #privacy #p2p #tor #dns #decentralization #nostrdevs #ncc #npm #js

Plebeian Market: #NIP-99Pivot Drops Soon

GM Plebs☕ BitFest was a great time, staging is bleeding bugs, and we’re finally flipping the NIP-99 switch.🥳 *** ### **BitFest Recap** BitFest was an absolute lovefest. Nothing beats hanging out with a room full of psychopaths who actually believe we’re building the future on Nostr & Bitcoin. From some serious “oh ya I emailed with Satoshi” OGs to Nostr PV god nostr:nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq37amnwvaz7tmwdaehgu3dwfjkccte9ejx2un9ddex7umn9ekk2tcqyqlhwrt96wnkf2w9edgr4cfruchvwkv26q6asdhz4qg08pm6w3djg3c8m4j to our own Plebeian royalty [Yojimble (aka Jimble Jumble](https://plebeian.market/p/yojimble@getalby.com) ) who set up the cutest farmer’s market stall in the art hall—jams, marmalades, chutney, tallow. Peak P2P from nostr:nprofile1qyt8wumn8ghj7ct5d3shxtnwdaehgu3wd3skueqpp4mhxue69uhkummn9ekx7mqqyr08t6ca0fnz0qr63hlslvehel8338n7ntu2kc3f76y0ver3pscpgwspfha 🤝 ![](https://blossom.primal.net/9831310a1b20801398cf0b845cad173c58fd6a9e6901f15b73ba40920ca3e752.jpg) nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqyg8wumn8ghj7mn0wd68ytnvv9hxgqpqa3um269aaf3u5cy37kuykrrrnsg2pyv7za06pxjduv25lq5sdujsm29hmv got up and told our whole chaotic story:\ **Pivot or perish**—that’s been Plebeian Market for three straight years. First version → Auctions → Lightning login → WordPress plugin → Nostr → and now the FINAL 🤞 pivot to NIP-99. Many of you have been riding shotgun since day one, cheering, breaking staging…or production :| and roasting us when we deserved it. We love you. Seriously. Thank you for sticking with the chaos. 🫂💜🧡 But as you can guess this will not be the *final-final* version of Plebeian Market… Auctions will be the next \**yuge*\* feature we’ll add …soon-ish. *** ### Why NIP-99 Makes Buyers & Sellers Happy [![](https://substackcdn.com/image/fetch/$s_!V44c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44583d31-3a16-46fb-a0bb-3f03ff3b110f_1600x1600.png)](https://substackcdn.com/image/fetch/$s_!V44c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44583d31-3a16-46fb-a0bb-3f03ff3b110f_1600x1600.png) ***In short: faster shopping, fatter earnings, less junk.*** *** ### Dev Update – Relaunch Is Days Away The dev team is in full crunch mode. Messaging fixed. Shipping fixed. Ladybugs are crying lol. We flip the switch next week (unless major issues arise). Next week I’ll drop a dead-simple how-to video. Plus a migration tool the devs built that moves your current NIP-15 listings to NIP-99 with a few clicks. **Shop owners:** you’ll just have to hit “publish” again and tweak a couple fields like shipping options. Takes a few minutes, then your stall is future-proof forever. *** ### This Week’s Feature Products [![](https://substackcdn.com/image/fetch/$s_!20O2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9347d984-8d8c-47ca-a88d-b6b9969948a1_6912x3456.jpeg)](https://substackcdn.com/image/fetch/$s_!20O2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9347d984-8d8c-47ca-a88d-b6b9969948a1_6912x3456.jpeg) #### Bitcoin Trading Cards – Factory-Sealed Deck nostr:nprofile1qythwumn8ghj7cm9d3kxzu3wdehhxarj9emkjmn9qy2hwumn8ghj7etyv4hzumn0wd68ytnvv9hxgqpqq7why7lw8kq9ufr43ps75ngz3vhx5duqt7xmgklcq3dljqqfjegqqywxew just dropped an unopened deck. These aren’t just cardboard—they’re Bitcoin culture in physical form. Series 1 & 2 are already collector cult classics: holographic foils, serialized parallels, Warriors vs. Villains lore, rare chase cards people hunt like Pokémon on steroids. 10k+ strong community trading, grading (PSA slabs exist), and flexing binders on Nostr. Rip it with the boys or seal it forever—your call. [Crack or Hodl ](https://plebeian.market/products/tigs@nostr.land/bitcoin-trading-cards-a63capoieh)🎴 #### Oak & Chain – Proof of Wood New artisan nostr:nprofile1qy28wumn8ghj7mn0wd68ytnvxqc8qtn0wfnszxthwden5te0dehhxarj9ekx2cm5w4exjene9ehx2aqqyr3x3c8kdadzkk2aucjfhfe0hhmvl8jv6r7plw83jxywj7e29mkcw34j0cz in the marketplace! Hand-built driftwood mirrors that look like they survived a shipwreck and came out richer and wooden-cover notebooks that smell like forest and freedom. Real proof-of-work (and proof-of-wood). If your walls or desk need sovereign swagger, this is it. [Shop the Stall](https://plebeian.market/p/e268e0f66f5a2b595de6249ba72fbdf6cf9e4cd0fc1fb8f19188e97b2a2eed87) 🪵 #### VCA Vintage Gold Necklace w/ Giant Swarovski Crystal Heavy gold + massive crystal drop. Quiet luxury that says “I bought this with Lightning, cope.” [Bling in Sats](https://plebeian.market/products/30018:6a656fe4be6545c656c255a57ce8476c8ad66d1e9c707a3684e8a2fa02e7e10b:vca-vintage-necklace-spiebajjc3) 💎 *** ### Final Love Bomb To everyone who’s been here through every pivot, every meltdown, every staging smash, thank you.💜🧡\ We’re so damn excited to finally ship this thing and watch plebs start slinging goods, art, jams, wood, and weird vintage bling for Bitcoin again. Plebeian is about to get loud. Got ideas or feedback? Hit us up on [Nostr ](https://primal.net/p/npub1market6g3zl4mxwx5ugw56hfg0f7dy7jnnw8t380788mvdyrnwuqgep7hd)or [Telegram!](https://t.me/PlebeianMarket) Stay sovereign,\ Bekka & the Plebeian Team 💜 **Follow us on**[** Nostr**](https://primal.net/p/npub1market6g3zl4mxwx5ugw56hfg0f7dy7jnnw8t380788mvdyrnwuqgep7hd) *** 🤣 Bitcoin Changes You [![](https://substackcdn.com/image/fetch/$s_!qh05!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64d3be4-bddd-4090-a77a-3af211ca89d9_998x1636.jpeg)](https://primal.net/e/nevent1qqsq5aye8gdaj5hdt2m9xj5ava8jlzty5snklpvxc44vj0uztlpcjcsja4p09) Share this newsletter on Nostr to spread the pleb love! *issued: 925574*