Verification, Trust & Privacy
Prove what matters, hide what doesn't — age, professional status, reputation, and anti-fraud without surveillance.
An e-commerce operator under the UK Online Safety Act and similar laws
Age-gate a shop without ever storing a date of birth
Collecting IDs and birthdates creates a honeypot, breaks privacy laws, and scares away customers.
Customers prove they are over 18 with a zero-knowledge proof; the shop stores no personal data and supports its compliance obligations.
Workflow
- A trusted verifier issues a Signet credential carrying a range proof bound to the customer's pubkey — proving an age band, not a birthdate.
- On checkout, drop-in signet-verify shows a verification prompt the customer approves in their Signet app.
- The site checks the proof and confirms the issuing verifier's status before accepting.
- Use jurisdiction-kit to look up the customer country's digital-consent age and whether cross-border data restrictions apply.
- Nothing identifying is retained — only a cryptographic pass/fail and the verifier's confirmation status.
Built with
ZK range proof
NIP-VA
BIP-340
A finance team that authorises payments over phone and video calls
Stop CEO-voice fraud on phone and video calls
Voice and video are now trivially faked, so 'it sounded like the CFO' is no longer proof of anything.
Both sides of a call speak a rotating word that only genuine members can know, with a silent duress signal built in.
Workflow
- Set up a canary-kit verification group; each member derives words locally from a shared secret with no network round-trip.
- On a call, each party speaks the current directional word — caller and recipient words differ, so a replay can't pass.
- Words rotate on a schedule (seconds for live calls, longer for standing groups), so a captured word expires fast.
- Every member also has a unique duress word; speaking it verifies as valid to the attacker but silently raises an alarm.
- Optional liveness heartbeats give each member a verifiable check-in token your app can treat as a dead-man's switch.
Built with
HMAC-SHA256
time-based rotation
NIP-44
NIP-17
A family or a field-ops team that needs to verify each other remotely
A family safe-word system that survives coercion
A spoken safe-word can be forced out of someone; a panic button can be taken away.
Members verify each other with rotating words, can signal duress invisibly, and share location only with the trusted group.
Workflow
- Create a canary-kit group with the family preset (weekly rotation); the group secret is generated at creation and distributed end-to-end encrypted to each member.
- Each member's Nostr signing key for the group is derived from their nsec-tree identity, while their app shows the current verification word.
- Under threat, a member speaks or sends their personal duress word — it looks valid but flags the rest of the group.
- Encrypted beacons let members share location and timestamp with the group only — AES-256-GCM under the group key, sent as ephemeral kind 20078 events.
- Removing a member generates a fresh group secret in one call; once it is redistributed over Nostr, the removed member can no longer verify.
Built with
NIP-44
NIP-17
kind 30078/20078
NIP-40
A moderation circle on a community platform
Report abuse without exposing the reporters
Named moderators get targeted and retaliated against, so people stop flagging bad actors.
A circle issues a collective trust signal where each contribution is provably from a member but no individual is identifiable.
Workflow
- Form a trust circle of moderator pubkeys with nostr-veil.
- Each moderator signs their assessment with an LSAG ring signature proving 'a member of this circle contributed' — and nothing more.
- Linkable key images stop any one member from voting twice, while keeping them anonymous.
- nostr-veil aggregates the contributions into a NIP-85 assertion; a veil-threshold tag records 'N of M' so veil-aware clients render 'vouched by 3 of 5'.
- Human-readable endorsements or vouches can ride alongside as revocable kind 31000 attestations.
Built with
LSAG
NIP-85
kind 30382-30385
secp256k1
A professional marketplace that needs to prove its providers are real and licensed
A 'verified solicitor' badge that no platform owns
Centralised verification locks providers into one platform and creates a database of sensitive credentials to breach.
Providers carry portable, revocable proof of professional status that any client or app can check independently.
Workflow
- A registered verifier issues a tiered Signet credential as a kind 31000 attestation for the provider's pubkey.
- jurisdiction-kit supplies the recognised professional bodies and their public registers to check the verifier against.
- Clients compute the provider's Signet Score (0-200) and tier from on-relay events to gate who can offer regulated services.
- Revocation works by supersession — a replacement event with a supersedes tag marks the old credential replaced — and time-bounded credentials expire automatically via the NIP-40 expiration tag.
- Because every record is a signed Nostr event, the reputation is portable across every client, not trapped in one marketplace.
Built with
kind 31000
NIP-VA
NIP-40
BIP-340
A newsroom verifying a sensitive source
Corroborate a whistleblower source without a byline
Editors need to signal that a source is credible without naming who vouched or exposing the source's identity.
A reader sees 'verified by N of M trusted journalists' as a cryptographic fact, with no editor identifiable and the source pseudonymous.
Workflow
- The newsroom forms a circle of journalist keys; the source operates under an unlinkable nsec-tree persona.
- Each editor who has independently checked the source signs a ring-signed corroboration with ring-sig.
- nostr-veil aggregates those into a threshold NIP-85 assertion attached to the source's pubkey.
- A revocable kind 31000 vouch can carry a human-readable note alongside the cryptographic proof.
- Each editor signs under a dedicated circle key derived with nsec-tree from their master seed, so even a compromised circle key never links back to their public byline — and the ring signature hides which editor signed at all.
Built with
LSAG
NIP-85
kind 31000
secp256k1
A borrower, trader, or applicant facing a threshold check
Clear a threshold check without revealing the figure
Proving 'balance over X' or 'score over Y' normally means handing over the exact, private value.
The holder proves the value sits in or above a range; the verifier learns only pass or fail.
Workflow
- The holder creates a Pedersen-commitment range proof with range-proof, binding it to their pubkey so others can't reuse it.
- They publish it via bray's privacy-publish-proof tool as a kind 30078 event, or present the serialised proof directly to a counterparty.
- The verifier checks the proof against the stated bound — the committed value never appears.
- Agents generate and check these proofs through bray's privacy tools (privacy-prove-range, privacy-verify-range) as part of a larger negotiation.
- The live ForgeSworn demos let you try a range proof end to end in the browser.
Built with
Pedersen commitment
ZK range proof
kind 30078
secp256k1
An operator of a decentralised P2P marketplace
Reputation that travels with the trader, not the platform
Reputation locked inside one platform can't move with the trader and dies if the platform does.
Every trade leaves signed, portable feedback, and community standing is computed from open events — owned by no one.
Workflow
- After each trade, both parties publish a kind 31000 endorsement — bilateral, queryable, and individually revocable.
- A moderation circle periodically scores vendors anonymously with nostr-veil, deduplicated by LSAG key image.
- Before trading, a buyer sees both peer endorsements and the threshold trust signal for the seller.
- Signet tiers gate high-value categories to verified sellers only via policy checks.
- For big trades the seller can attach a range proof of sufficient balance; payment settles via a toll-booth-gated Lightning flow — pay-to-proceed, not custodial escrow.
Built with
kind 31000
NIP-85
LSAG
L402
Someone living with a controlling partner or family member — anyone who could be forced to unlock their phone and open the app
A safety net for the people you trust — that still holds when your phone is taken
A location-sharing safety app becomes a weapon the moment it is compelled: an abuser forces the phone open and reads everyone's exact position, demands you 'share now', or calls in a cloned voice pretending to be someone you trust. And simply not sharing is itself a tell.
The safety net survives the phone being taken. A duress unlock opens a real, empty-looking app; turning sharing off silently alarms your circle instead of just going quiet; a caller is verified as genuinely themselves, not a deepfake; and an SOS reaches the people you trust without the person beside you ever knowing.
Workflow
- Members join a circle by reading each other their spoken words aloud, in order — canary-kit's per-member verification tokens — so a cloned voice or an impostor cannot join the group or fake a check-in.
- The circle's keys, roles, and roster live in covey-kit; every beacon, duress signal, and SOS rides roost-kit as a NIP-59 gift wrap to a rotating personal inbox, so a relay sees only opaque, uncorrelatable traffic.
- A compelled unlock opens the decoy: flock encrypts the entire state into one blob that carries no marker of what it is, wipes the real state, and reboots as a genuinely fresh install — a working app with nothing to find. The true unlock phrase restores it later.
- Withholding is built to be indistinguishable from sharing — a coerced 'stop sharing' silently alarms the circle rather than going dark, and a place you have marked private never beacons at all — so no observer can read your safety from your silence.
- Every layer reuses canary-kit and spoken-token — no bespoke cryptography — so the duress vocabulary, group lifecycle, and NIP-44/NIP-59 transport are the same audited primitives that verify identity.
Built with
Nostr
NIP-44
NIP-59
AES-256-GCM
PBKDF2