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.

69open-source projects
11focus areas
36npm packages
Use it

Apps for people

Install one and it is yours. There is no account to make and no company holding your data, so nothing can be sold, subpoenaed or lost in a breach.

Products ↓
Build with it

Libraries for developers

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.

Ecosystem ↓
Implement it

Protocols for anyone

Published wire contracts and conformance suites, so a second implementation is always possible and no single codebase is load-bearing.

Protocol / Standards ↓

Things you can run right now

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.

Web app · Android

KithMoot

A town hall nobody owns.

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.

Ride-hailing · Dispatch

DonkeyRide

The whole fare is the driver’s.

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.

Web app · Self-hosted node

Wildbloom

Files that outlive their host.

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.

Wallet · Mint

notecase & moneyer

Money you can hand over like a banknote.

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.

Hardware · Browser · Android

Heartwood signers

Keys that never touch the internet.

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.

MCP server · CLI

Bray

Give an AI agent a name of its own.

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.

Web app · SDK

My Signet

Prove you’re over 18, not your birthday.

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.

Android · Linux

Kintrinsic

Screen-time on your family’s own keys.

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.

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.

  • 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.

How the money pieces fit

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.

npx @forgesworn/toll-booth demo

Try it: a full Lightning-paywalled API on localhost in one command, or pay 21 sats for a joke on the live demo.

17 projects · 9 on npm All stacks ↑

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.

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.

npm install @forgesworn/toll-booth

toll-booth-rs

Rust

L402 payment middleware for Rust. Gates any HTTP API behind Lightning payments, with trusted-proxy IP handling and zeroised key material.

402-announce

npm

Announce HTTP 402 services on Nostr for decentralised discovery using kind 31402.

402-mcp

npm

MCP client for AI agents to discover, pay for, and consume L402 and x402 APIs.

402-pub

Live directory at 402.pub for Lightning-paid APIs.

toll-booth-announce

npm

Bridge between toll-booth and 402-announce for Nostr service announcements.

toll-booth-dvm

npm

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.

toll-booth-mcp

MCP server with read-only analytics and widget UIs for toll-booth deployments. Credential-class fields are redacted before anything reaches the LLM context.

402-indexer

Nostr-native crawler that discovers L402 and x402 paid APIs.

payment-methods

Specifications for HTTP Payment Authentication methods (Lightning, Cashu, Session).

aperture-phoenixd

Go

Phoenixd backend for Aperture. No LND required.

aperture-announce

Go

Announce Aperture L402 services on Nostr for decentralised discovery.

farrier-kit

npm

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.

nwc-kit

npm

Small NIP-47 wallet client with NIP-44 v2, signed capability discovery, authenticated responses, and bounded requests.

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

npm

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

npm

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.

Typical flowtoll-booth toll-booth-announce
21 projects · 10 on npm All 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.

nsec-tree

npm

Deterministic Nostr sub-identity derivation. One master secret, unlimited unlinkable identities.

npm install nsec-tree

heartwood

Rust

Keyless NIP-46 bridge daemon for hardware Nostr signers (ESP32 or Ledger). Keys live on the device and never touch the networked computer.

heartwood-esp32

Rust

nsec-tree signing token for Heltec WiFi LoRa 32 V3/V4 (ESP32-S3). On-device button approval, up to 8 master identities.

heartwood-ledger

Rust

Heartwood signer as a Ledger embedded app. NIP-46, NIP-44, and nsec-tree personas on the secure element — emulator-proven prototype.

bark

NIP-07 browser extension backed by NIP-46 remote signing. No user keys stored; derived personas with Heartwood.

cambium

Kotlin

Android NIP-55 signer that holds no keys. Every request is proxied to a Heartwood hardware signer over NIP-46.

sapwood

Browser-based device manager for Heartwood. Web Serial and HTTP bridge, firmware updates, policy management.

nsec-tree-cli

npm

Offline-first CLI for nsec-tree with derivation, proofs, and Shamir recovery.

nsec-tree-py

Python

Python port of nsec-tree. Conformant deterministic sub-identity derivation, interop-tested against the TypeScript implementation.

spoken-token

npm

Derive time-rotating, human-speakable verification tokens from a shared secret.

canary-kit

npm

Deepfake-proof identity verification with per-member spoken words, silent duress detection, encrypted group sync.

signet

npm

Decentralised identity verification for Nostr. 4 verification tiers, ZKP age proofs, Signet Score (0-200).

signet-credentials

npm

Publish, fetch, parse, and validate Signet credential events on Nostr.

signet-login

npm

Drop-in login SDK for Nostr-aware websites with NIP-07, bunker URI, and Signet redirect/QR flows.

signet-protocol-rs

Rust

Rust implementation of the Signet identity protocol on Nostr.

signet-verify

npm

Drop-in age verification SDK for websites. One script tag, one function call.

dominion

npm

Epoch-based encrypted access control. HKDF content keys, AES-256-GCM, Shamir secret sharing, tiered audiences.

covey-kit

Private circle primitives 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 a secret with a PIN, WebAuthn-PRF, or a grace window; pluggable storage and burn. Curve-agnostic, pure Web Crypto, zero runtime deps.

kintrinsic

Rustnpm

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.

Typical flownsec-tree heartwood bark
4 projects All stacks ↑

Files that outlive the server they started on.

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

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-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.

shelter-kit

Rust

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.

forgesworn-link

Rust

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.

Typical flowshelter-kit wildbloom-node
4 projects All stacks ↑

Calls and streams with nobody in the middle.

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

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-android

Kotlin

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.

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

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.

Typical flowkithmoot kithmoot-android
5 projects · 3 on npm All stacks ↑

Find each other without being tracked.

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

rendezvous-kit

npm

Find fair meeting points for N participants with isochrone intersection, venue search, and fairness scoring.

npm install rendezvous-kit

geohash-kit

npm

Zero-dependency geohash toolkit for encoding, decoding, polygon coverage, and Nostr location filters.

rendezvous-mcp

npm

MCP server for AI-driven fair meeting-point discovery.

flock-kit

Framework-free location-safety and trusted-circle primitives: the honest radar guidance core, heading engine, cue grammar, and consented live-session rules.

capacitor-mesh-ble

Configurable Bluetooth LE mesh transport for Capacitor apps — discovery, GATT, chunking, dedup, and multi-hop relay over an encrypted phone-to-phone mesh.

Typical flowgeohash-kit rendezvous-kit rendezvous-mcp
1 project · 1 on npm All stacks ↑

An AI agent with a name, a wallet and a web of trust.

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

bray

npm

Trust-aware Nostr MCP server for AI agents and humans. Verification, proximity, and access woven into every interaction.

npm install nostr-bray
3 projects · 3 on npm All stacks ↑

Prove what matters, hide the rest.

Privacy-preserving trust and verifiable attestations.

nostr-attestations

npm

One Nostr event kind for all attestations. NIP-VA (kind 31000).

npm install nostr-attestations

nostr-veil

npm

Anonymous trust assertions for Nostr. LSAG ring signatures over NIP-85.

nostr-anon-vote

npm

Anonymous voting on Nostr with LSAG ring signatures — double-vote prevention without revealing identity.

5 projects · 5 on npm All stacks ↑

The maths under everything else.

Standalone cryptographic building blocks used across the ecosystem.

ring-sig

npm

SAG and LSAG ring signatures on secp256k1 for anonymous group membership proofs.

npm install @forgesworn/ring-sig

range-proof

npm

Pedersen commitment range proofs on secp256k1 for proving a value is in range without revealing it.

private-equality

npm

Socialist Millionaires' Protocol over Ristretto255 — decide whether two parties hold the same secret, revealing only one bit.

shamir-core

npm

Shamir's Secret Sharing over GF(256) with core utilities.

shamir-words

npm

Split secrets into human-readable BIP-39 word shares using Shamir's Secret Sharing.

Typical flowshamir-core shamir-words
1 project · 1 on npm All stacks ↑

Know which rules apply where.

Work with jurisdiction and professional-registry intelligence.

jurisdiction-kit

npm

Professional body registries and jurisdiction intelligence for 28 countries.

npm install jurisdiction-kit
6 projects · 1 on npm All stacks ↑

Specs anyone can implement twice.

Nostr protocol extensions and conformance testing.

nip-drafts

36 Nostr protocol extensions for service coordination, trust, payments, disputes, key hierarchy, resource curation, and paid API discovery.

trott-conformance

Protocol conformance test suite. Lifecycle fixtures for TROTT task kinds.

mesh-kit

Transport-agnostic encrypted offline-mesh substrate — a MeshTransport interface, a Noise_XX SecureChannel, reliability and reconciliation, with deterministic in-memory sims.

mesh-nostr-kit

Nostr relay transport for opaque mesh-kit frames.

gopherkind

npm

Signed gopherholes served from Nostr relays (kind 31436), with Gopher, Gemini, HTTP and CLI readers.

gopherkind-protocol-py

Python

Independent Python implementation of the Gopherkind kind 31436 grammar, interop-validated against the language-neutral fixture published by gopherkind.

Typical flowmesh-kit mesh-nostr-kit
2 projects All stacks ↑

Ship it so nobody can tamper with it in transit.

Ship, harden, and demonstrate ForgeSworn libraries.

anvil

Supply-chain-hardened release tool for JS/TS libraries with reproducible-build attestation and OIDC trusted publishing.

forgesworn-demos

Interactive demos for the ForgeSworn crypto toolkit, including range-proof, shamir-words, and ring-sig.

Pick a block and start

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.