Skip to content
@forgesworn

forgesworn

Open-source Nostr infrastructure — identity, privacy, payments, and developer tools

ForgeSworn

Open-source building blocks for sovereign commerce, identity, and trust.

  • Machine-payable APIs and Lightning payment gating
  • Lightning bearer notes: an LNURLcash mint and a crash-safe wallet
  • Deterministic Nostr identities and encrypted access control
  • Family wardship on the family's own keys, enforced on-device
  • Encrypted, content-addressed storage that outlives its host
  • Video rooms and live streams signalled over Nostr relays, no operator in the middle
  • Privacy-preserving trust and anonymous reputation
  • Spoken verification, anti-deepfake, and coercion resistance
  • Fair meeting points and spatial coordination
  • Coercion-resistant location sharing and phone-to-phone offline mesh
  • AI agent tooling for sovereign Nostr interaction
  • Cryptographic primitives: ring signatures, range proofs, Shamir secret sharing
  • Nostr protocol extensions and conformance testing
  • Build infrastructure: reproducible, hardened npm publishing

Built on Nostr, Lightning, and zero-trust cryptography. Every repo works standalone or as a composable part of the ecosystem.

ForgeSworn Ecosystem - hexagonal architecture diagram showing crypto core, identity, agents, L402 payments, trust, compliance, and spatial categories

Visual guides: Ecosystem overview | L402 pipeline | Identity stack

Start Here

  • toll-booth: Gate any HTTP API behind Lightning payments. Add toll-booth-announce, 402-announce, 402-indexer, and 402-pub for discovery. Add toll-booth-mcp for analytics and toll-booth-dvm for NIP-90 exposure. Use toll-booth-rs for Rust.
  • 402-mcp: Let AI agents discover, pay for, and consume paid APIs. Pair with toll-booth and 402-pub.
  • bray: Give AI agents a sovereign Nostr identity. 253 tools across 28 groups covering identity, social, payments, dispatch, trust, moderation, privacy, spells, and encrypted access. Built on nsec-tree for identity derivation and dominion for encrypted access.
  • nostr-veil: Privacy-preserving Web of Trust. Anonymous trust assertions using LSAG ring signatures over NIP-85. Built on ring-sig.
  • rendezvous-kit: Build fair meeting-point or spatial apps. Add geohash-kit and rendezvous-mcp.
  • flock: A coercion-resistant friend-finder that walks you the last half-mile to a moving friend by ear — location end-to-end encrypted over Nostr, and a decoy unlock if the phone is taken. Built on flock-kit, covey-kit, roost-kit, keystore-kit, and an offline mesh-kit / capacitor-mesh-ble stack.
  • spoken-token: Add human-speakable rotating verification codes. Pair with canary-kit.
  • nsec-tree: Derive deterministic, unlinkable Nostr sub-identities from one master secret. Use it when one seed needs separate identities for roles, apps, bots, or privacy boundaries. Add nsec-tree-cli for an offline-first CLI. Used by bray, heartwood, and signet.
  • heartwood: Keyless NIP-46 bridge for hardware Nostr signers. Connects Nostr relays to a USB-tethered heartwood-esp32 token or heartwood-ledger app — the bridge holds no seed, no PIN, no plaintext; every operation happens on the device. Per-client kind permissions enforced on-device, unlimited unlinkable personas from one mnemonic via nsec-tree. Rust
  • bark: NIP-07 Nostr signer backed by NIP-46 remote signing. Self-sovereign keys, derived personas with heartwood.
  • canary-kit: Build spoken verification, duress detection, or privacy-preserving identity flows. Add ring-sig, range-proof, and shamir-words.
  • signet: Decentralised identity verification for Nostr. 4 verification tiers, ZKP age proofs, Signet Score (0-200). Built on nostr-attestations and range-proof. Drop it into a website with signet-verify (one script tag, one function call).
  • dominion: Encrypted access control with epoch-based key rotation. Tiered audiences, HKDF content keys, Shamir secret sharing. Used by bray.
  • nostr-attestations: One Nostr event kind for all attestations (NIP-VA, kind 31000). Credentials, endorsements, vouches, provenance, licensing, and trust.
  • jurisdiction-kit: Work with jurisdiction and professional-registry data. Pair with canary-kit or signet for identity-sensitive flows.
  • nip-drafts: 37 Nostr protocol extensions covering service coordination, trust, payments, disputes, key hierarchy, resource curation, and encrypted access. Classified as upstream, ecosystem, or incubating.
  • anvil: Ship JS/TS libraries with reproducible, hardened npm releases. Multi-runner byte-identical build attestation, OIDC trusted publishing, SLSA provenance, secret scanning, exports-map checks. Pure bash, auditable in under thirty minutes. Used by 24+ repos in this org.

Common Flows

  • toll-booth -> toll-booth-announce -> 402-announce -> 402-indexer -> 402-pub -> 402-mcp: Gate an API, announce it on Nostr, index it, publish a directory, let AI agents consume it.
  • toll-booth -> toll-booth-mcp: Monitor a toll-booth with analytics dashboards and widget UIs.
  • geohash-kit -> rendezvous-kit -> rendezvous-mcp: Encode spatial data, compute fair meeting points, expose to AI agents.
  • nsec-tree -> heartwood-esp32 -> heartwood -> bark: Keys on a hardware token, relayed by the keyless bridge via NIP-46 over Nostr relays, used from the browser via NIP-07.
  • nsec-tree -> heartwood-esp32 -> sapwood: Microcontroller signing token on ESP32-S3, configured via a web management UI.
  • nsec-tree -> heartwood-ledger -> heartwood: The same signer running as a Ledger embedded app, keys in the secure element (emulator-proven).
  • heartwood -> cambium: Android NIP-55 signing with no keys on the phone — every request proxied to the hardware signer.
  • nsec-tree -> bray -> dominion: Derive sub-identities, give them to an AI agent, gate content access by tier and epoch.
  • nsec-tree -> spoken-token / canary-kit: Derive purpose-specific Nostr identities, attach spoken verification or higher-trust identity flows.
  • ring-sig -> nostr-veil: Anonymous trust assertions -- prove group membership without revealing who endorsed.
  • nostr-attestations -> signet -> signet-verify: Protocol plus drop-in SDK so any website can age-gate or identity-gate in one script tag.
  • nostr-attestations -> signet -> canary-kit / jurisdiction-kit: Issue verifiable attestations, verify identities with tiers and ZKP age proofs, add jurisdiction context.
  • spoken-token -> canary-kit -> ring-sig / range-proof / shamir-words: Spoken verification, privacy-preserving proofs, human-recoverable secret handling.
  • shamir-core -> shamir-words -> nsec-tree-cli: Core secret sharing, BIP-39 word output, offline identity recovery.
  • covey-kit -> roost-kit -> flock-kit: Build an encrypted circle, deliver each member's position as a NIP-59 gift wrap, and guide people to each other by sound and vibration.
  • mesh-kit -> mesh-nostr-kit / capacitor-mesh-ble: Run an authenticated, encrypted, in-order channel over any transport — a Bluetooth mesh between phones, a Nostr relay, or both bridged so someone out of range still hears it.
  • nwc-lnd-bridge -> nwc-kit -> toll-booth / 402-mcp: Front any LND node as an NWC wallet, connect to it with a bounded client, and let it fund a toll booth or an agent's payments.
  • moneyer -> notecase: Strike Lightning bearer notes at a mint, then hold, split, merge and melt them in a wallet built so no crash or lying mint can lose one.
  • wildbloom -> wildbloom-node -> forgesworn-link: Publish encrypted, hash-addressed files, keep them on your own node, and mirror between nodes over a direct QUIC path or an opaque relay.
  • kithmoot -> kithmoot-android: A conference-room protocol over Nostr, implemented twice from the published wire contract so no single codebase is load-bearing.

Payments / L402

Make APIs payable, discoverable, and consumable by people and agents. Reach Lightning wallets you do not hold, and mint or carry bearer notes.

Start with toll-booth to put a Lightning paywall in front of an API. Add announcement and indexing repos for discovery, then 402-mcp when the client is an AI agent.

Repository What it does
toll-booth Any API becomes a Lightning toll booth in one line. L402 middleware for Express, Hono, Deno, Bun, and Workers.
toll-booth-rs L402 payment middleware for Rust. Gates any HTTP API behind Lightning payments. Rust
402-announce Announce HTTP 402 services on Nostr for decentralised discovery using kind 31402 parameterised replaceable events.
402-mcp MCP client for AI agents to discover, pay for, and consume L402 and x402 APIs.
402-pub 402.pub ecosystem landing page and live directory for Lightning-paid APIs.
toll-booth-announce Bridge between toll-booth and 402-announce so a toll-booth service can be announced on Nostr.
toll-booth-dvm Expose any toll-booth-gated API as a NIP-90 Data Vending Machine on Nostr.
toll-booth-mcp MCP server with read-only analytics and widget UIs for toll-booth deployments.
402-indexer Nostr-native crawler that discovers L402 and x402 paid APIs and publishes kind 31402 events.
payment-methods Specifications for HTTP Payment Authentication methods (Lightning, Cashu, Session).
aperture-phoenixd Use Phoenixd as the Lightning backend for Aperture, with no LND required. Go
aperture-announce Announce Aperture L402 services on Nostr for decentralised discovery. Go
farrier-kit Lightning payment primitives without running a node: BOLT-11 decoding, preimage verification, LNURL-pay resolution. Browser and Node from one codebase, with language-neutral conformance vectors.
nwc-kit Small NIP-47 wallet client with NIP-44 v2, signed capability discovery, authenticated responses, and bounded requests. nwc-kit.forgesworn.dev
nwc-lnd-bridge Minimal NIP-47 wallet service in front of an LND node. Invoice-only by default, with the method allowlist enforced before a request reaches LND, so the connection URI cannot spend.
moneyer LNURLcash (LUD-25) mint that strikes Lightning bearer notes. Independent implementation with cln and lnd funding sources, SQLite, a crash-safe melt discipline, and the public conformance grader in its own test suite.
notecase LNURLcash (LUD-25) wallet for Lightning bearer notes: receive, hold, split, merge, send and melt notes whose secret is the money. Built so no crash, timeout or lying mint can lose one; CLI and web surface, NWC-assisted minting and melting.

Spatial / Meeting

Build location-aware workflows and fair meeting-point tools.

Start with rendezvous-kit for meeting-point logic. Use geohash-kit for geospatial primitives and Nostr location filters. Use rendezvous-mcp when you want that flow exposed to agents.

Repository What it does
geohash-kit Zero-dependency geohash toolkit for encoding, decoding, polygon coverage, and Nostr location filters.
rendezvous-kit Find fair meeting points for N participants with isochrone intersection, venue search, and fairness scoring.
rendezvous-mcp MCP server for AI-driven fair meeting-point discovery.

Safety, Location & Offline Mesh

Coordinate and stay safe on open protocols, with location that belongs to the person it describes — and keeps working when the network doesn't.

flock stackflock is the app: a coercion-resistant friend-finder that guides you the last half-mile to a moving friend by voice, sound, and vibration, with the phone still in your pocket. Location is end-to-end encrypted over Nostr, shared only as precisely and as briefly as its owner chooses, held by no server — and a compelled unlock opens a decoy, not the real thing. Under it: flock-kit is the pure guidance-and-safety core, covey-kit holds the encrypted circles, roost-kit moves everything as NIP-59 gift wraps, keystore-kit guards the on-device key — and when the signal drops, mesh-kit, mesh-nostr-kit, and capacitor-mesh-ble carry the same encrypted frames phone-to-phone over a Bluetooth mesh.

Repository What it does
flock Coercion-resistant friend-finder. Guides you to a moving friend by ear and vibration; location end-to-end encrypted over Nostr, shared at the precision and for the time you choose; a decoy unlock under duress.
flock-kit Framework-free guidance and location-safety core: radar state machine, heading engine, honest degradation, precision tiers, and consented live-session rules.
covey-kit Private circles for Nostr: derived per-circle keys, roles, word-code invites, personal inboxes, and convergent membership state.
roost-kit Nostr transport for private circles: NIP-59 gift wraps, relay fan-out, rotating inboxes, and a pre-signed offline outbox.
keystore-kit Browser key-at-rest. Protect one secret behind a PIN, a WebAuthn-PRF biometric, or a grace window; pluggable storage and an irreversible burn. Zero runtime dependencies.
mesh-kit Transport-agnostic encrypted offline-mesh substrate. A Noise_XX secure channel, store-and-forward reliability, and deterministic sims — carries opaque frames without knowing the application.
mesh-nostr-kit Nostr relay transport for opaque mesh-kit frames, so a mesh reaches anyone still holding a relay path.
capacitor-mesh-ble Bluetooth LE mesh transport for Capacitor apps: discovery, GATT links, chunking, dedup, and multi-hop relay — phone-to-phone with no network.
kintrinsic Libre, self-hosted digital wardship. A guardian grants scoped, revocable screen-time, app, content and comms clauses to a child's devices, signed with the family's own keys and enforced on-device: an Android Device Owner ward app, a Linux warden, a guardian app and a Nostr wire contract, with no platform account in the middle. Rust Kotlin

Storage / Data

Keep your files alive across machines you control: encrypted, content-addressed Blossom storage that is reachable without depending on one host.

Start with wildbloom to publish; run wildbloom-node to hold and mirror; build your own on shelter-kit; join nodes over forgesworn-link when Tor is not an option.

Repository What it does
wildbloom Local-first encrypted publishing over Nostr and Blossom: files that outlive their host. Publishes to standard Blossom servers over HTTPS or optional Tor, with BitTorrent as an extra lane. wildbloom.forgesworn.dev
wildbloom-node Self-hosted Blossom storage node. Owner, friend and guest retention tiers over one deduplicated store; Tor is optional or run behind your own HTTPS; verified BUD-04 mirror and exact-hash repair. Rust
shelter-kit Transport-neutral Blossom storage core in Rust: unbound router, BUD authorisation, content-addressed streaming store, owner/friend/guest retention and verified mirror-and-repair. A library, not a daemon. Rust
forgesworn-link Wide-area transport lane for ForgeSworn storage: two authorised nodes find a route, try a direct QUIC path and fall back to an opaque relay, on standard Rust crates and nobody's endpoint IDs. Rust

Live / Real-time

Video rooms and live streams whose signalling rides Nostr relays, with media device to device and no operator in the middle.

Repository What it does
kithmoot Multi-device conference rooms over Nostr: a town hall nobody owns. A room is a secret held by whoever has the link, and a person rather than a device is the unit that joins, so a phone and a laptop appear as one participant. Mesh WebRTC, Kindred-gated access tiers, and the relays, STUN and TURN the room names itself. kithmoot.forgesworn.dev
kithmoot-android Native Kotlin implementation of the KithMoot protocol: the second, independent implementation, written against the published interop vectors, and the proof that the protocol is infrastructure rather than a product. Kotlin
relayswarm Peer-assisted HLS live-stream distribution with WebRTC signalling over Nostr relays instead of a dedicated tracker, so there is no signalling service for anyone to seize. Segments verified by hash, plain HLS as the floor.
relayswarm-kit Swift implementation of RelaySwarm signalling for macOS and iOS: presence and NIP-44-encrypted SDP exchange over Nostr relays, a minimal Nostr client, throwaway per-session keys, and WebRTC data channels via libdatachannel. Swift

Identity Primitives

Composable libraries for deterministic identity derivation, spoken verification, and encrypted access control.

Start with nsec-tree for deterministic unlinkable Nostr identities, spoken-token for human-speakable rotating codes, dominion for tiered encrypted access, or canary-kit for full spoken-verification flows with duress detection and group sync.

Repository What it does
nsec-tree Deterministic Nostr sub-identity derivation. One master secret, unlimited unlinkable identities.
nsec-tree-cli Offline-first CLI for nsec-tree with derivation, proofs, and Shamir recovery.
nsec-tree-py Python port of nsec-tree. Conformant deterministic sub-identity derivation, interop-tested against the TypeScript implementation. Python
spoken-token TOTP, but you say it out loud. Derive time-rotating, human-speakable verification tokens from a shared secret.
canary-kit Deepfake-proof identity verification with per-member spoken words, silent duress detection, encrypted group sync, and an open protocol.
dominion Epoch-based encrypted access control. Your content. Your keys. Your rules. HKDF content keys per tier/epoch, AES-256-GCM, Shamir secret sharing, tiered audiences.

Signers and Identity Apps

Running signers, hardware variants, and decentralised-identity applications built on the primitives above.

Signer stack -- the keys live on a hardware signer (heartwood-esp32 token or heartwood-ledger secure-element app), heartwood is the keyless bridge that connects the device to Nostr relays, bark (browser, NIP-07) and cambium (Android, NIP-55) are the clients that sign through it, and sapwood is the web management UI.

Signet stack -- signet is the verification protocol, My Signet is the user app, and signet-verify is the drop-in SDK for any website.

Repository What it does
heartwood Keyless NIP-46 bridge for hardware Nostr signers. Relay-mediated (no open ports), per-client permissions enforced on-device, unlimited unlinkable personas via nsec-tree. Rust
heartwood-esp32 nsec-tree signing token for Heltec WiFi LoRa 32 V3/V4 (ESP32-S3). On-device button approval, up to 8 master identities. Rust
heartwood-ledger Heartwood signer as a Ledger embedded app — NIP-46, NIP-44, and nsec-tree personas on the secure element. Emulator-proven prototype. Rust
bark NIP-07 Nostr signer backed by NIP-46 remote signing. No user keys stored; derived personas with Heartwood.
cambium Android NIP-55 signer that holds no keys — every request proxied to a Heartwood hardware signer over NIP-46. Kotlin
sapwood Web management UI for the Heartwood ESP32 signer.
signet Decentralised identity verification for Nostr. 4 verification tiers, ZKP age proofs, Signet Score (0-200), professional verifier anti-corruption, verifier delegation.
signet-verify Drop-in age verification SDK for websites. One script tag, one function call.

AI Agents

Give AI agents sovereign Nostr identities with trust-aware tooling.

Repository What it does
bray Trust-aware Nostr MCP for AI and humans. 253 tools across 28 groups: identity, social, trust, dispatch, relay, marketplace, safety, privacy, and encrypted access. NIP-A7 Spell casting. Three trust dimensions: Verification (Signet), Proximity (WoT), and Access (Dominion).

Trust / Privacy

Privacy-preserving trust and verifiable attestations.

Repository What it does
nostr-veil Anonymous trust assertions for Nostr. LSAG ring signatures over NIP-85 so endorsements are verifiable but contributors are unidentifiable. Solves the Trust Trilemma.
nostr-attestations One Nostr event kind for all attestations -- credentials, endorsements, vouches, provenance, licensing, and trust. NIP-VA (kind 31000).
nostr-anon-vote Anonymous voting on Nostr with LSAG ring signatures -- double-vote prevention without revealing identity. Built on ring-sig.

Cryptographic Primitives

Standalone cryptographic building blocks used across the ecosystem.

Repository What it does
ring-sig SAG and LSAG ring signatures on secp256k1 for proving group membership without revealing identity.
range-proof Pedersen commitment range proofs on secp256k1 for proving a value is in range without revealing it.
private-equality Socialist Millionaires' Protocol over Ristretto255 for deciding whether two parties hold the same secret, revealing only one bit.
shamir-core Shamir's Secret Sharing over GF(256) with core utilities. Backend for shamir-words.
shamir-words Split secrets into human-readable BIP-39 word shares using Shamir's Secret Sharing. Built on shamir-core.

Compliance

Work with jurisdiction and professional-registry intelligence for regulated or identity-sensitive flows.

Repository What it does
jurisdiction-kit Professional body registries and jurisdiction intelligence for 28 countries, including compliance, data protection, and mutual recognition contexts.

Protocol / Standards

Nostr protocol extensions and conformance testing.

Repository What it does
nip-drafts 37 Nostr protocol extensions: service coordination, trust, payments, disputes, key hierarchy, resource curation, paid APIs, and encrypted access. Classified as upstream, ecosystem, or incubating. Each NIP is independent.
trott-conformance Protocol conformance test suite. Lifecycle fixtures for TROTT task kinds.
gopherkind Signed gopherholes served from Nostr relays (kind 31436), with Gopher, Gemini, HTTP and CLI readers. gopherkind.com
gopherkind-protocol-py Independent Python implementation of the Gopherkind kind 31436 grammar, interop-validated against the language-neutral fixture. Python

Tooling / Build Infrastructure

Infrastructure that underpins how the other repos are built and published.

Repository What it does
anvil Hardened npm publishing GitHub Action. Multi-runner byte-identical build attestation, OIDC trusted publishing, SLSA provenance, secret scanning, exports-map checks, frozen-vector gates. Pure bash, auditable in under thirty minutes. Used by 24+ repos in this org.

Popular repositories Loading

  1. nostr-veil nostr-veil Public

    Prove Nostr trust without exposing who vouches for you. Privacy-preserving Web of Trust: LSAG ring signatures behind NIP-85 assertions.

    TypeScript 4 1

  2. ring-sig ring-sig Public

    SAG and LSAG ring signatures on secp256k1 — prove group membership without revealing identity

    TypeScript 3 1

  3. toll-booth toll-booth Public

    Any API becomes a Lightning toll booth in one line. L402 middleware for Express, Hono, Deno, Bun, and Workers.

    TypeScript 2

  4. canary-kit canary-kit Public

    Deepfake-proof identity verification. Per-member spoken words, silent duress detection, encrypted group sync. Open protocol.

    TypeScript 2 1

  5. nostr-attestations nostr-attestations Public

    One Nostr event kind for all attestations — credentials, endorsements, vouches, provenance, licensing, and trust. NIP-VA (kind 31000).

    TypeScript 2

  6. signet signet Public

    Decentralised identity verification protocol for Nostr

    TypeScript 1

Repositories

Showing 10 of 73 repositories

Top languages

Loading…

Most used topics

Loading…