Forging and sharing the tools to reclaim your freedom.
ForgeSworn is an open-source workshop. We make apps you can use today and libraries you can build with, on Nostr, Lightning and plain cryptography, so that your identity, money, files, location and conversations answer to you and not to a platform.
Each does one thing, works on its own, and composes with the rest. MIT-licensed, on npm where it makes sense, in Rust, Python, Kotlin and Swift where that is the right tool.
Every one of these is open source, and every one is a real alternative to what you use now: as good or better, and free of cost, free of capture, free to use without permission.
Phone app
flock
Find your people, not their data.
A group locator that walks you the last half-mile to a moving friend by voice, sound and vibration, phone still in your pocket. Location is end-to-end encrypted over Nostr and shared only with who you choose, at the precision you choose, for as long as you choose. Then it is gone.
Video rooms over Nostr. A room is a secret held by whoever has the link, so nobody outside it can tell it exists. Join from a phone and a laptop and the room sees one person with two devices, not two strangers.
No sign-up, no phone number, no card on file: your phone makes its own key. You see the price before you request and you pay the driver directly, in cash, M-Pesa or Lightning. The software never touches the money, so a £17.20 fare is £17.20 to the driver.
Local-first encrypted publishing over Nostr and Blossom: files and posts that stay reachable when any one server goes away. Run your own node, mirror to a friend’s, and keep BitTorrent as an extra lane.
Lightning bearer notes (LNURLcash): the secret is the money, so a note passes from hand to hand with no account on either side. notecase is the wallet, built so no crash, timeout or lying mint can lose a note. moneyer is the mint that strikes them.
A Nostr signer on an ESP32 board with a physical approve button, a keyless bridge that connects it to relays, and clients that sign through it: bark in the browser and cambium on Android. Nothing on the networked computer ever holds a key.
A trust-aware Nostr MCP server: hundreds of tools that let an agent post, pay, verify and unlock encrypted content under a sovereign identity, with verification, web-of-trust and access woven into every call.
Decentralised identity verification for Nostr: four tiers, a Signet Score, and zero-knowledge age proofs. Any website can age-gate or identity-gate with one script tag and never see a date of birth.
Self-hosted digital wardship. A guardian grants scoped, revocable limits on screen time, apps, content and comms to a child’s devices, signed with the family’s keys and enforced on the device. No platform account, and the aim is to hand autonomy back over time.
Also live: 402.pub, a directory of Lightning-paid APIs;
gopherkind.com, gopherholes served from Nostr relays;
and jokes.trotters.dev, where 21 sats buys you a joke from a paywalled API.
Why
Freedom isn’t ours to grant — it’s already yours. We forge the tools to help you reclaim what you’ve lost, keep what you hold, and share them openly: a commons that belongs to everyone. Each is a real alternative to what you use now — as good or better, and free in every sense: free of cost, free of capture, free to use without permission.
The vows we’re held to
Permissionless by design
No one needs our approval, or anyone’s, to run what we make. Walk away any time and take everything — it was always yours.
A real alternative, not a lecture
We win by making something you’d choose anyway. If it only appeals to people who already care about freedom, we built it badly.
Serve the person, not the platform
Every tool answers to the human using it. Safety without surveillance; ownership without a landlord.
Value for value
Your time, talent, or treasure keeps us building. No strings, no backers, no state — no one owns our direction.
Build with the blocks
Eleven stacks, one architecture
Everything above is built from these 69 projects. Each stack solves one problem well, each library works on its own, and they compose. Pick a stack to jump to its projects, or see 32 worked examples of what they build.
Every payment tool hangs off one idea: a constrained connection to a wallet you don’t hold. nwc-kit is that connection, farrier-kit checks it, a bridge turns any node into a wallet, and the L402 tools sell and discover paid APIs on top. Each box links to its project.
← Swipe sideways to see the whole diagram →
Nostr · NWC Lightning · money discovery depends on the connection
The connection is the load-bearing piece; everything else is built on it.
An app reaches a wallet through nwc-kit, with farrier-kit verifying invoices and preimages.
That wallet is either the user’s own over NWC, or an nwc-lnd-bridge fronting a node you run.
On top, toll-booth sells access to an API, 402-announce and 402.pub make it
discoverable, and 402-mcp lets an agent find and pay for it — both ends settling through the same connection.
Get paid per call, in sats, by people or machines.
Make APIs payable, discoverable, and consumable by people and agents. Reach Lightning wallets you do not hold, and mint or carry bearer notes.
Start here
toll-booth
npm
Any API becomes a Lightning toll booth in one line. L402 middleware for Express, Hono, Deno, Bun, and Workers. Payment rails hardened by a full security review in v5.
Expose any toll-booth-gated API as a NIP-90 Data Vending Machine on Nostr. Results are NIP-44-encrypted to the requester; upstream access is fail-closed behind an explicit whitelist.
MCP server with read-only analytics and widget UIs for toll-booth deployments. Credential-class fields are redacted before anything reaches the LLM context.
Lightning payment primitives that work anywhere: BOLT-11 decoding, preimage verification, LNURL-pay resolution. Browser and Node from one codebase, with language-neutral conformance vectors.
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.
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.
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.
Identity / Access21 projects · 10 on npmAll stacks ↑
Your keys, your names, your rules.
Hardware-backed Nostr signing, deterministic identities, spoken verification, encrypted access control, decentralised identity verification, and family wardship on your own keys.
Start here
nsec-tree
npm
Deterministic Nostr sub-identity derivation. One master secret, unlimited unlinkable identities.
Browser key-at-rest — protect a secret with a PIN, WebAuthn-PRF, or a grace window; pluggable storage and burn. Curve-agnostic, pure Web Crypto, zero runtime deps.
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.
Keep your files alive across machines you control: encrypted, content-addressed Blossom storage that is reachable without depending on one host.
Start here
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.
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.
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.
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. The native lane a Tor-less Wildbloom node uses to mirror and repair between machines.
Video rooms and live streams whose signalling rides Nostr relays, with media device to device and no operator in the middle.
Start here
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.
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.
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.
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.
Configurable Bluetooth LE mesh transport for Capacitor apps — discovery, GATT, chunking, dedup, and multi-hop relay over an encrypted phone-to-phone mesh.
Transport-agnostic encrypted offline-mesh substrate — a MeshTransport interface, a Noise_XX SecureChannel, reliability and reconciliation, with deterministic in-memory sims.
Independent Python implementation of the Gopherkind kind 31436 grammar, interop-validated against the language-neutral fixture published by gopherkind.
Every project here is MIT-licensed. Use one, use many, or use them all together. If something we make saves you from a platform, tell us; if it falls short, tell us louder.