https://codeberg.org/slingshotsecurity/nostr_pass/src/branch/master/v00_01.md
So nostr_pass just quietly solved the
“how do we actually define and use NIPs
without turning everything into a spreadsheet” problem.
And honestly? It’s brilliant.
🧠 The Idea
First version already handles auth on Nostr Relays,
stamps a unique Date of Birth, and attaches backing data
(e.g., a father vouching via npubs).
v00_02 is bringing zero-knowledge proofs for documents—
so your birthday isn’t just a claim, it’s cryptographically verified.
Simple? Yes. But it covers drinking age checks,
tool gatekeeping, even crypto payments.
And because it’s built extensible, future apps won’t need to reinvent the wheel.
🛠️ The Developer
What really stands out is the pragmatic foresight.
Delivered as CLI + Web in TypeScript,
compiled to static JS via Python (because sometimes you just want it to work without npm hell).
Serves locally, runs on blossom/hostr/nsite,
or swaps to Vite with a single toggle (web.vite_enabled).
Zero hard dependencies. Smart.
🔐 The Details (that actually matter)
• Privacy-first by default: cryptographed, hidden from Kind-1 noise, living as Kinds 31001, 31002, 1059
• Granular permissions: exact age, older than (past/future), day/month/year only, expiry dates, check limits, or “granted to all npubs”
• Verification receipts as Kind 31004. NIP-09 kind 5 deletion? Handled.
• Suggests simple apps wrap this in a QR-scannable local app—data never leaves the device.
This isn’t just a POC gathering momentum.
It’s a blueprint.
The architecture is decoupled, stubbed for future “Attributes & Dimensions” parametization,
and built to scale without breaking.
Hats off to the developer: npub1cluc6gran6qtzntkq0wlh06hl6yuhz5cwgpf7qyhgxvth3wtcheqnqtgjy
you didn’t just ship a tool.
You laid a foundation. 🍻
#nostr_pass #did
