Next.js app for publishing, discovering, and inspecting Pontmore protocol events on Nostr.
656
Next.js + TypeScript proof of concept for publishing, discovering, and inspecting Pontmore protocol events on Nostr.
The app defaults to these relays:
wss://nos.lolwss://relay.damus.ionpm install
npm run dev
Open http://localhost:3001. Port 3001 is the default for both development and production. Set PORT or pass --port to use another port:
PORT=4100 npm run dev
npm run dev -- --port 4100
npm run build
PORT=4100 npm start
npm start -- --port 4100
Docker also accepts a runtime port override, for example docker run --rm -e PORT=4100 -p 4100:4100 pontmore/nextjs-pontmore.
Build and run the production image locally:
docker build -t pontmore/nextjs-pontmore .
docker run --rm -p 3001:3001 pontmore/nextjs-pontmore
The GitHub Actions workflow in .github/workflows/publish-docker.yml publishes pontmore/nextjs-pontmore to Docker Hub on every push to main.
Required repository secrets:
DOCKER_PONTMORE_OWNERDOCKER_HUB_PONTMORE_PUBLISH_TOKENlocalStorage.30360 addressable PIP-00 agent definition events.30361 addressable PIP-01 escrow descriptor events.The relay WebSocket client is intentionally small and lives in lib/nostr-relays.ts. Server-side cache orchestration lives in lib/server/.
Discovery is aligned with Pontmore protocol revision d9a1eb3 (checked 2026-10-03):
pontmore-capability: tags, and optional marked escrow references. Names and descriptions use kind 0 profiles; relay preferences belong in standard Nostr relay-list events. Commercial terms are outside this capability index.expires_at, and optional service.schema (openapi or asyncapi, HTTPS URL). Includes Lightning hold, custodial, and Cashu mechanisms. Funding, release, refunds, fees, disputes, and recovery are defined by the referenced service schema.This app implements discovery and inspection. It does not fetch service schemas, invoke escrow services, verify service safety, or implement PIP-02 coordination chains or pontmore/swap@1 replay. A capability declaration does not prove implementation or availability. Before an economic action, a full client must validate the current descriptor, fetch and validate its schema with destination/redirect/size safety checks, and bind the exact accepted descriptor event ID in the coordination.
npm test
npm run typecheck
npm run build
Content type
Image
Digest
sha256:b88c5ece3…
Size
77.5 MB
Last updated
3 days ago
docker pull pontmore/nextjs-pontmore