{
  "publisher": "relayhop",
  "publisher_npub": "366aad5d389c4abe4af00d04d8b70446cd59fd4285662fc836730429ab269ec4",
  "catalog_version": "2.0",
  "updated_at": "2026-05-06",
  "tipjars": {
    "lightning": "jeffchu@coinos.io",
    "base_usdc": "0x20BeFfad24499E9b3d45dD0971B1D6AFB0AE925D",
    "eth_mainnet": "0xE60544C5248897B4AB8Bee08d4999095523C7E14",
    "bitcoin": "1BQxStx7FxoHnP7yyLzZ1Xz1MoUYhKKj5N"
  },
  "services": [
    {
      "id": "tipjar",
      "url": "https://cesf-7d-tipjar.relayhop.workers.dev",
      "desc": "Nostr profile lookup (kind:0)",
      "price_sats": 0,
      "paid": false
    },
    {
      "id": "zapstats",
      "url": "https://cesf-7d-zapstats.relayhop.workers.dev",
      "desc": "Zap analytics (kind:9735)",
      "price_sats": 0,
      "paid": false
    },
    {
      "id": "nip05",
      "url": "https://cesf-7d-nip05.relayhop.workers.dev",
      "desc": "Paid NIP-05 identity hosting",
      "price_sats": 500,
      "paid": true
    },
    {
      "id": "paywall",
      "url": "https://cesf-7d-paywall.relayhop.workers.dev",
      "desc": "HTTP 402 LN paywall middleware",
      "price_sats": 21,
      "paid": true
    },
    {
      "id": "auditapi",
      "url": "https://cesf-7d-auditapi.relayhop.workers.dev",
      "desc": "Automated Nostr profile audit API",
      "price_sats": 200,
      "paid": true
    },
    {
      "id": "rss",
      "url": "https://cesf-7d-rss.relayhop.workers.dev/feed.xml",
      "desc": "RSS feed of relayhop's Nostr content",
      "price_sats": 0,
      "paid": false
    },
    {
      "id": "webhook",
      "url": "https://cesf-7d-webhook.relayhop.workers.dev",
      "desc": "Nostr → webhook bridge",
      "price_sats": 50,
      "paid": true
    },
    {
      "id": "broadcast",
      "url": "https://cesf-7d-broadcast.relayhop.workers.dev",
      "desc": "Paid 12-relay Nostr multi-broadcaster",
      "price_sats": 30,
      "paid": true
    },
    {
      "id": "catalog",
      "url": "https://cesf-7d-catalog.relayhop.workers.dev/services.json",
      "desc": "This directory (machine-readable)",
      "price_sats": 0,
      "paid": false
    },
    {
      "id": "sse",
      "url": "https://cesf-7d-sse.relayhop.workers.dev",
      "desc": "Server-Sent Events live Nostr stream",
      "price_sats": 100,
      "paid": true
    },
    {
      "id": "badges",
      "url": "https://cesf-7d-badges.relayhop.workers.dev",
      "desc": "SVG badges for embed in README/blog",
      "price_sats": 0,
      "paid": false
    },
    {
      "id": "ipfs",
      "url": "https://cesf-7d-ipfs.relayhop.workers.dev",
      "desc": "IPFS gateway with multi-source fallback",
      "price_sats": 0,
      "paid": false
    },
    {
      "id": "ots",
      "url": "https://cesf-7d-ots.relayhop.workers.dev",
      "desc": "OpenTimestamps notarization (Bitcoin-anchored)",
      "price_sats": 50,
      "paid": true
    },
    {
      "id": "bip21",
      "url": "https://cesf-7d-bip21.relayhop.workers.dev",
      "desc": "BIP-21 unified payment URI generator",
      "price_sats": 0,
      "paid": false
    },
    {
      "id": "webfinger",
      "url": "https://cesf-7d-webfinger.relayhop.workers.dev",
      "desc": "WebFinger (Mastodon-style identity)",
      "price_sats": 0,
      "paid": false
    },
    {
      "id": "dash",
      "url": "https://cesf-7d-dash.relayhop.workers.dev",
      "desc": "Human-readable HTML services dashboard",
      "price_sats": 0,
      "paid": false
    },
    {
      "id": "qr",
      "url": "https://cesf-7d-qr.relayhop.workers.dev",
      "desc": "QR code SVG generator for tipjars",
      "price_sats": 0,
      "paid": false
    },
    {
      "id": "credits",
      "url": "https://cesf-7d-credits.relayhop.workers.dev",
      "desc": "Pre-paid credit bundle (1000 sats / 50 calls)",
      "price_sats": 1000,
      "paid": true
    },
    {
      "id": "l402",
      "url": "https://cesf-7d-l402.relayhop.workers.dev",
      "desc": "L402 macaroon paywall (capability tokens)",
      "price_sats": 100,
      "paid": true
    },
    {
      "id": "search",
      "url": "https://cesf-7d-search.relayhop.workers.dev",
      "desc": "Nostr search index API",
      "price_sats": 25,
      "paid": true
    }
  ],
  "nostr_offerings": [
    {
      "id": "kind30402:profile-audit",
      "desc": "Manual Nostr profile audit (DM delivery)",
      "price_sats": 500,
      "contact": "DM relayhop on Nostr"
    },
    {
      "id": "kind30402:gh-action-template",
      "desc": "Custom GitHub Action workflow",
      "price_sats": 1000,
      "contact": "DM relayhop on Nostr"
    },
    {
      "id": "kind30402:nip32-label",
      "desc": "Paid event labeling (NIP-32)",
      "price_sats": 100,
      "contact": "DM relayhop on Nostr"
    },
    {
      "id": "kind30311:open-qa",
      "desc": "Paid Q&A 17:00-18:00 UTC+8 daily",
      "price_sats": 50,
      "contact": "Reply on Nostr kind:1 thread"
    },
    {
      "id": "kind1:paid-ama",
      "desc": "Paid AMA — 50 sats/question",
      "price_sats": 50,
      "contact": "Reply or DM on Nostr"
    },
    {
      "id": "kind31990:nip90-dvm",
      "desc": "NIP-90 DVM service info advertised",
      "price_sats": 21,
      "contact": "kind:5xxx job request via Nostr"
    }
  ],
  "written_content": [
    {
      "platform": "matters.town",
      "language": "zh-Hant",
      "url": "https://matters.town/@relayhop",
      "articles": 3
    },
    {
      "platform": "habla.news",
      "language": "en+zh-Hant",
      "url": "https://habla.news/u/relayhop",
      "articles": 2
    },
    {
      "platform": "dune.com",
      "language": "en",
      "url": "https://dune.com/relayhop",
      "queries": 1
    },
    {
      "platform": "primal.net",
      "language": "any",
      "url": "https://primal.net/p/366aad5d389c4abe4af00d04d8b70446cd59fd4285662fc836730429ab269ec4"
    }
  ],
  "totals": {
    "http_services": 20,
    "nostr_offerings": 6,
    "distinct_mechanisms": 30
  }
}