About freeport-nostr
freeport-nostr is a Nostr-based peer-to-peer marketplace where users publish trade intents and personal agents discover and negotiate matches, with people confirming final deals. It combines decentralized markets with reputation features and optional safeguards, without a central matching operator.
Key features
- 01Topic-scoped trade markets
- 02Agent-assisted discovery and negotiation
- 03Peer-rated reputation and deal receipts
- 04Self-custodial Lightning payments and escrow
- 05Encrypted chat and peer-to-peer calls
Use cases
- 01Finding counterparties for local rides or services
- 02Negotiating a marketplace deal with agent assistance
- 03Confirming a deal with conditional Lightning payments
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://nostr-mcp.trinh.uk/mcpclaude mcp add --transport http ptrinh-freeport-nostr https://nostr-mcp.trinh.uk/mcp{"mcpServers":{"ptrinh-freeport-nostr":{"type":"http","url":"https://nostr-mcp.trinh.uk/mcp"}}}Open in Cursor{"servers":{"ptrinh-freeport-nostr":{"type":"http","url":"https://nostr-mcp.trinh.uk/mcp"}}}Open in VS Code{"mcpServers":{"ptrinh-freeport-nostr":{"type":"http","url":"https://nostr-mcp.trinh.uk/mcp"}}}{"mcpServers":{"ptrinh-freeport-nostr":{"serverUrl":"https://nostr-mcp.trinh.uk/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
6| Parameter | Type | Required | Description |
|---|---|---|---|
| near | object | No | Filter & sort by distance from this point. |
| near.lat | number | Yes | |
| near.lon | number | Yes | |
| near.radiusKm | number | No | |
| side | enum | No | offer = drivers/providers/sellers; request = riders/buyers; any = bothoffer | request | any |
| limit | integer | No | |
| since | integer | No | Only events created at/after this unix-seconds time. |
| until | integer | No | Only events created at/before this unix-seconds time. |
| relays | array | No | Override the relay set for this call (ws/wss URLs, max 10). Defaults to the server relays. |
| topics | array | No | Topic `t` tags to require (category/subcategory/area keys, e.g. "vn_hanoi", "ridesharing"). |
| includeExpired | boolean | No | |
| relaySideGeohash | boolean | No | Also narrow at the relay via a #g cover of the radius. Only effective if posts carry geohash-prefix tags; off by default. |
Details
From the project READMEFreeport
Decentralized P2P marketplace over Nostr. Users broadcast trade intents into topic-scoped markets; personal agents discover counterpart intents and negotiate automatically. Humans confirm final deals. No central operator, no matching server — relays are dumb pub/sub, all logic is client-side.
- App: https://freeport.network (web/PWA) · iOS · Android · Desktop — Mac/Windows/Linux · Offline HTML
- Whitepaper: PDF
- Self-host:
packages/freeport-self-hosted(docker compose up -d), or any desktop install can host the app for your network withfreeport --serve. - Developers: CONTRIBUTING.md — repo layout, stack decisions, quick start, CLI.
Demo (2 minutes)
https://github.com/user-attachments/assets/506c82ac-c5eb-415d-b981-ba14c4f165bc
Also on the landing page.
Why Freeport exists
- It's a research project. How far can pure P2P infrastructure go? Buyers, sellers, riders, drivers meet over Nostr, settle in Lightning or cash. Nothing in between needs permission to exist.
- It's a thesis. A P2P marketplace with a reputation system works. When people own their reputation, the market self-regulates.
- It's a check and balance. A zero-fee exit that answers to no one puts a ceiling on how greedy the big platforms can get.
- It's fun. An open protocol, Claude Code as a pair programmer, no investor deck.
- Nobody profits — including me. No operator, no cut. A protocol, not a platform. Run it or fork it.
- No one will protect you here — that's the point, and the price. No
support line, no refunds, no central authority. Your judgment comes first,
backed by opt-in safeguards no operator runs: a
reputation system (karma, co-signed receipts,
web-of-trust), escrow arbitration
(
examples/arbitrator), ID verification (examples/id-verification), and insurance (examples/insurance-store) priced from reputation. You choose how much of the safety net to use.
What works today
- Everywhere: iOS + Android app stores, web/PWA, desktop installers for
macOS/Windows/Linux with self-update — plus a single-file offline copy:
the whole app in one HTML file that runs from
file://, no install, no server. - Wallet (experimental): built-in self-custodial Bitcoin Lightning +
stablecoin (USDT/USDB) wallet (Breez SDK/Spark).
Keys derive from your Nostr key — one backup covers identity and funds.
Lightning address (
[email protected]), on-chain, QR scan, local-currency balances, and one-tap Pay / Pay QR on confirmed deals. Bring your own wallet over NWC instead if you prefer. Spark is a young trust-minimized L2 — treat it as a spending wallet. - Reputation: peer-rated karma, co-signed deal receipts, proven-deal counts, web-of-trust weighting. Sybil resistance stays open — treat zero-history identities with caution.
- Chat: invite-based 1:1 encrypted chat beyond deals — QR/link invites, replies, emoji reactions, disappearing messages, delivery/read receipts, voice messages, location sharing, in-chat search and Lightning payments. Between updated clients it upgrades to NIP-17 gift wrap, so relays can't even see who talks to whom.
- Calls (experimental): peer-to-peer audio/video calls in chat (WebRTC, end-to-end encrypted, signaling over encrypted DMs — no call server), with screen sharing on web. Optional TURN fallback.
- Zaps & Shops: NIP-57 zap tipping on posts (verifiable receipts), and NIP-15 storefronts — durable seller listings with a conversational "chat with seller" checkout.
- Escrow without a custodian: HODL-invoice conditional payments on confirmed deals — the buyer holds the preimage, the seller can only settle on release, unreleased funds auto-refund. The Lightning protocol enforces the lock; nobody ever holds the money in between.
- Mini-apps (experimental): third-party web apps run inside Freeport with
your portable identity (NIP-07) and wallet (WebLN + Spark/stablecoin) —
sandboxed behind a permission firewall where every sensitive action needs
your approval (architecture & threat model).
A dedicated Apps tab hosts the launcher — a home-screen-style grid
(add any app by URL or QR, drag to rearrange), with the wallet as its first
tile; your apps and their grants travel with the account backup. One
<script>tag makes a page work on web too. Mini-app examples:examples/esim-store— eSIM shop with Spark/stablecoin checkout, live at apps.freeport.network/esim-storeexamples/insurance-store— travel insurance quotes underwritten from npub-derived reputation, with a downloadable PDF certificate, live at apps.freeport.network/insurance-storeexamples/id-verification— a paid identity / licence verification service: submit documents, book a video call, and get a shareable verification link for your profile, live at apps.freeport.network/id-verificationexamples/arbitrator— decentralized dispute arbitration: an escrow with the arbitrator as a conditional key, encrypted evidence (NIP-44), and a fee only charged when a dispute is actually raised — the arbitrator's npub karma is their license, live at apps.freeport.network/arbitrator
- On-device AI (experimental): describe what you need in any language and it drafts your post; incoming chat messages auto-translate. Runs entirely on your device (Apple Intelligence / Android ML Kit + Gemini Nano / Chrome built-in AI) — your words never leave it.
- Notifications & Telegram: content-blind push, plus a Telegram bridge — market feeds in groups, one-tap broadcast of organic posts, personal pings.
- 56 languages, full RTL, in-chat translation.
Non-goals (v1)
Custody (payments stay self-custodial wallet-to-wallet; even escrow is trust-minimized HODL invoices, never a held balance), dispute resolution, vetting, anti-sybil — all deliberately deferred.
Donate
BTC: bc1ps44wjx3wpu4s0xj746gz2lu45nspsm9059d3ym8xz0nrhu4psyasdgwwhx
License & forking
MIT (LICENSE). Freeport exists to be forked: any community can stand up its own market — own name, city, vertical, relays and services — by changing configuration, not architecture. FORKING.md lists every deployment-specific value; CONTRIBUTING.md covers dev setup and style.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.