Files
smirk-backend-core/examples/paid-relay/README.md
T
jwinterm d96f457b69 docs(examples): operator cookbook — six deployment recipes + premium-relay spec
Add ready-to-run .env + README recipes (personal, public-free, friends,
paid-access, paid-relay, community) and the premium-relay design overview,
with audit fixes to the config template and spec:

- Drop the inert INSTANCE_ID knob (config never read it) and document the real
  per-node id, which is derived from ADMIN_PUBLIC_URL.
- Warn that a placeholder PUBLIC_API_URL is rejected at boot in production
  (Nostr identity is on by default); soften the recipe "boots today" status.
- Remove dead template vars: BTC/LTC Core-RPC settings and the non-existent
  PUBLIC_EXPOSE_FEATURES (replaced with the real per-field landing switches).
- Mark ALTCHA_HMAC_KEY conditional in PoW-off recipes; blank placeholder
  payment creds so a recipe doesn't ship a key that fails validation.
- Fix premium-relay spec drift: the migration creates no premium_until index,
  disabled endpoints return 400/200 (not 404), and neutralize operator voice.
2026-07-02 19:47:46 -04:00

1.4 KiB

paid-relay — free wallet, paid Nostr posting (the flagship)

A free wallet (open + PoW) plus a paid premium tier for general Nostr posting to your relay. Wallet-functional events — encrypted DMs, tips, swap coordination — stay free for registered users; premium unlocks general posting. Recurring revenue tied to a real service. Implements the premium-relay feature.

  • Config: .env.example — RELAY_WRITE_POLICY=premium-post, PREMIUM_ENABLED=true, tiered PREMIUM_PLANS (a built-in discount curve), and the PAYMENT_* processor block (reused from pay-to-register; BTCPay-compatible).
  • Free vs paid: the relay is free for what makes the wallet work; you pay to use it as your everyday relay. Reads stay open (v1); premium gates writes.
  • Money: you sell access to your relay (a fee), non-custodial + pull-model — never hold funds. PAYMENT_CONFIRMATIONS >= 1; validation rejects the unsafe combos.
  • Content: running a relay means hosting user content — a DMCA designated agent, a CSAM-reporting process, and acceptable-use terms apply. See ../LEGAL_AND_OPS.md.
  • Resources: the relay runs beside the wallet backend + LWS, so keep the size / retention / connection / rate caps (in .env.example and the nostr-rs-relay config under deploy/relay); move to RELAY_MODE=external on its own host if load climbs.