{
  "name": "Nostr Agent Onboarding",
  "site": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/",
  "snapshot": "2026-10-10",
  "start": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/start.md",
  "llms_txt": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/llms.txt",
  "llms_core": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/llms-core.txt",
  "llms_full": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/llms-full.txt",
  "nsite": {
    "kind": 15128,
    "npub": "npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe",
    "pubkey": "6f9f9da110d485c9d3f760269041a51e41bef47350249d02237a903213f561e0",
    "relay": "wss://relay.nsite.lol"
  },
  "documents": [
    {
      "title": "Overview of the synthesis",
      "description": "What the synthesis is built from, its reading order, the key disagreements, and the one-paragraph version of Nostr.",
      "section": "core",
      "core": true,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/00-overview.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/00-overview.html",
      "bytes": 6434,
      "sha256": "2613fffeda72368fed4088da0613945cdaeb938af55e71c1e146292df3eafedf"
    },
    {
      "title": "01 \u00b7 What Nostr is",
      "description": "Events, kinds and kind classes, relays, NIPs, what Nostr is not, why not ActivityPub/SSB/Pubky/Bluesky, vocabulary.",
      "section": "core",
      "core": true,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/01-what-nostr-is.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/01-what-nostr-is.html",
      "bytes": 14209,
      "sha256": "bb93b4a9a930debf80a62bddfafb3bc09dd48f79d9648d33a8847c1b1314be59"
    },
    {
      "title": "02 \u00b7 How Nostr should work",
      "description": "The routing problem, the outbox model and its limits, relay hints, spam, no-global, the local relay, the failure model.",
      "section": "core",
      "core": true,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/02-how-it-should-work.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/02-how-it-should-work.html",
      "bytes": 16540,
      "sha256": "454dec1894f2dba3e8e08575e03df09ca9af2b0fd7686fa1e0c7f6a236d7725f"
    },
    {
      "title": "03 \u00b7 How to develop for Nostr",
      "description": "Build pieces not platforms, the dev loop, tooling, onboarding, keys and signing, fault tolerance, anti-patterns, definition of done.",
      "section": "core",
      "core": true,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/03-how-to-develop.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/03-how-to-develop.html",
      "bytes": 16017,
      "sha256": "7718359c195e955ebc6985038516445c76377e17a3977d8312c978c796c284dd"
    },
    {
      "title": "04 \u00b7 How to design on Nostr",
      "description": "Schema then class then routing then failure model; kind allocation, privacy, communities, value-for-value, trust, arbitrating principles.",
      "section": "core",
      "core": true,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/04-how-to-design.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/04-how-to-design.html",
      "bytes": 14833,
      "sha256": "513e7505325dac4bf05824575435434e4e249b3ff436ed5de1cf1b5d843209d4"
    },
    {
      "title": "05 \u00b7 The current frontier (late 2026)",
      "description": "Relay feeds, Blossom/nsites/Zapstore, signers, key rotation, provable time, Nostr as network identity, the AI convergence, open problems.",
      "section": "core",
      "core": true,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/05-current-frontier.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/core/05-current-frontier.html",
      "bytes": 9235,
      "sha256": "7846506fcedea6b6c55b809a62eb8acdae6e835801e3d178e4039797da9a80d0"
    },
    {
      "title": "Design synthesis",
      "description": "The codified design rules: relay-feed vs outbox vs gossip, per-kind routing, kind taxonomy and decision rule, philosophy.",
      "section": "design",
      "core": true,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/design/design-synthesis.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/design/design-synthesis.html",
      "bytes": 14197,
      "sha256": "d418ec3a869c0ed4d3e0563c37aeacd5fa027790acc5b89c862fcb389488e6cb"
    },
    {
      "title": "Kind cheatsheet",
      "description": "30-second recipe for picking or evaluating an event kind, plus the common tag list.",
      "section": "design",
      "core": true,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/design/kind-cheatsheet.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/design/kind-cheatsheet.html",
      "bytes": 7314,
      "sha256": "e9f21f678264c2bdbb9fe00da6b84acd70b14e9d63e5ee9eddf8e989512308d6"
    },
    {
      "title": "Known issues and measured gotchas",
      "description": "Relay/Blossom/nak quirks found in practice: CORS, Khatru eviction, NIP-34 a-tag rejection, signer relay rot, the nsite trap set.",
      "section": "design",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/design/known-issues.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/design/known-issues.html",
      "bytes": 31827,
      "sha256": "56173ba572a16ddd1bb154e9c0a5f79624e2db0608ace4dd6197b9f6002608c5"
    },
    {
      "title": "Pattern \u00b7 Signer login (NIP-07 / NIP-46 / NIP-55)",
      "description": "The three-keys model, per-method checklists, current wire formats, relay probe results, library bugs, definition of done.",
      "section": "patterns",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/signer-login.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/signer-login.html",
      "bytes": 26549,
      "sha256": "a63214b6d340b2b0f9c3916c277f3d85cf4cfbc3e2ea2ed5e9ca171221cfbaab"
    },
    {
      "title": "Pattern \u00b7 Go baseline: fiatjaf.com/nostr",
      "description": "Why go-nostr/khatru/eventstore moved into fiatjaf.com/nostr, the package map, API changes, the toolchain trap, what not to use stock.",
      "section": "patterns",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/go-client-baseline.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/go-client-baseline.html",
      "bytes": 11237,
      "sha256": "6beee21f45a0f0eb9c9b1efe0d120053451c2d49ac507031ebf7f418ad39a535"
    },
    {
      "title": "Pattern \u00b7 Testing a Nostr project",
      "description": "Which relay to test against, the four altitudes, deterministic keys and time, fixture worlds, Nostr-specific failure modes.",
      "section": "patterns",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/testing.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/testing.html",
      "bytes": 12551,
      "sha256": "28b797ac4994aa4666bf3954b709368dac67fd539f44bd358e159b4fb9263a9c"
    },
    {
      "title": "Pattern \u00b7 Publishing an nsite (NIP-5A)",
      "description": "Kind 15128/35128/5128, manifest tags, aggregate hash, gateway resolution, Blossom content-type measurements, identity rule, definition of done.",
      "section": "patterns",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/nsite-publishing.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/nsite-publishing.html",
      "bytes": 27118,
      "sha256": "1159041a32df7fd730af64ed8910fb5de5c3e39c15d515c2f27f45d10535716c"
    },
    {
      "title": "Pattern \u00b7 Publishing an Android app to Zapstore",
      "description": "The zsp CLI, NIP-82 event triplet 32267/30063/3063, cert linking, local sandbox first, gotchas.",
      "section": "patterns",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/zapstore-publishing.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/zapstore-publishing.html",
      "bytes": 21382,
      "sha256": "164bfc878860b6e7c0e547a35972e0358bb167d97ca067340eb415d8cdaaa052"
    },
    {
      "title": "Pattern \u00b7 GRASP repo as structural layer",
      "description": "Use a NIP-34/GRASP git repo as the structure for any curated collection; federation via submodules.",
      "section": "patterns",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/grasp-as-structural-layer.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/grasp-as-structural-layer.html",
      "bytes": 6942,
      "sha256": "14e8b466351288ef140cc26bcaa254db16b7172de50677f4220ad5cae47edacd"
    },
    {
      "title": "Pattern \u00b7 Going public",
      "description": "Mirror locally built events, Blossom blobs, GRASP repos and nsites to public infrastructure.",
      "section": "patterns",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/going-public.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/going-public.html",
      "bytes": 8980,
      "sha256": "cb9b5e670aa7d00f727e6d32a81440b0a9de1a14233bd4463a83b15e5a23fac3"
    },
    {
      "title": "Pattern \u00b7 OpenTimestamps Merkle extension",
      "description": "Stamp once over a Merkle root and derive per-leaf OTS proofs that verify with stock `ots verify`.",
      "section": "patterns",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/merkle-ots-extension.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/patterns/merkle-ots-extension.html",
      "bytes": 8586,
      "sha256": "ffaac075b4fa9454e296e1d809069e70aa92aa2acd92e9f67549447defcd7ad6"
    },
    {
      "title": "Source \u00b7 NIP-01 (full text)",
      "description": "The basic protocol: event structure, serialization, kinds, client/relay messages. Vendored, MIT.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/nip-01.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/nip-01.html",
      "bytes": 14179,
      "sha256": "1acd63c383c12109bfd5f48e703f791e1821900b0e5684eb04e4cb9ef2c29170"
    },
    {
      "title": "Source \u00b7 NIPs kind registry",
      "description": "The kind table and message types from the NIPs README (vendored). Check here before allocating a kind.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/nips-readme-kinds.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/nips-readme-kinds.html",
      "bytes": 17647,
      "sha256": "bc0bf7bd71c0282923041fc852622aaf272d0074660f474bab7650a40cf1578a"
    },
    {
      "title": "Source \u00b7 The outbox model (NIP-65)",
      "description": "Outbox/inbox mechanics, routing rules, and what outbox does not solve.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/outbox-model.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/outbox-model.html",
      "bytes": 4480,
      "sha256": "a4f09bb6e4686a089b7a81b36480cc32db01b35f74edc98a897d4e1d712f9aa6"
    },
    {
      "title": "Source \u00b7 Blossom",
      "description": "Content-addressed blob storage (BUDs), server behaviour measurements, usage.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/blossom.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/blossom.html",
      "bytes": 11416,
      "sha256": "9fa71ebfc8a4d6b3ad6b7b4a6f517a6b97255838b985c597ca7f90c4e8aa6521"
    },
    {
      "title": "Source \u00b7 Zapstore / NIP-82",
      "description": "App distribution on Nostr: the 32267/30063/3063 schema, the zsp CLI, cert linking, whitelisting.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/zapstore.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/zapstore.html",
      "bytes": 7698,
      "sha256": "8097f9047bc144de704e95b5b22f98e42675896d3c4ba7bb18bb61ff7127d5eb"
    },
    {
      "title": "Source \u00b7 FIPS",
      "description": "Mesh routing with Nostr keypairs as node identity; discovery and NAT traversal over relays.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/fips.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/fips.html",
      "bytes": 9744,
      "sha256": "71ce5a010631b4da4dddfde9f264be2389b4dfb4a973bc97ba6b414764c6dd01"
    },
    {
      "title": "Source \u00b7 fiatjaf: a vision for content discovery",
      "description": "fiatjaf's essay on relay usage and content discovery, summarised with link.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/fiatjaf-vision.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/fiatjaf-vision.html",
      "bytes": 3010,
      "sha256": "9e6d3186204cbba597e2f78d8a121ab73422950742a184d70cd680ddfbb70ae1"
    },
    {
      "title": "Source \u00b7 Hodlbod: Building Nostr",
      "description": "Pointer to and summary of the book Building Nostr.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/hodlbod-book.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/hodlbod-book.html",
      "bytes": 3527,
      "sha256": "aa1a7074bd244988dc031e914446548a0c587f44f11575f62e74687dec1cd011"
    },
    {
      "title": "Source \u00b7 nostrdesign.org principles",
      "description": "The Nostr Design guiding principles, summarised.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/nostr-design-principles.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/nostr-design-principles.html",
      "bytes": 2104,
      "sha256": "b244a900b60115a0b66b9770133cd949cf1be4c853709e64293b97b39dc7ffdd"
    },
    {
      "title": "Source \u00b7 OpenSats: advancements in Nostr clients",
      "description": "The OpenSats client report, summary and quotes.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/opensats-advancements.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/opensats-advancements.html",
      "bytes": 3151,
      "sha256": "456aaf8490819ce832d9d57c6d0b5abbda11b24fe340af7876e7d646caf666e3"
    },
    {
      "title": "Source \u00b7 Nostr Rising podcast",
      "description": "Episodes and themes of the Nostr Rising series.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/nostr-rising.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/nostr-rising.html",
      "bytes": 3183,
      "sha256": "46b370602d305054b51fcd5a8d0ce45c2934712218a44d8f9b0a30249f139f49"
    },
    {
      "title": "Source \u00b7 Videos and podcasts",
      "description": "Pointers to talks by fiatjaf, Hodlbod, Pablo, Dilger and others.",
      "section": "sources",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/videos.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/sources/videos.html",
      "bytes": 2727,
      "sha256": "c2c87b18cd1325a992f6f76aeff7add77f29e38f2773fd98a3ab4d2897ccd28d"
    },
    {
      "title": "Voice \u00b7 fiatjaf (distillation)",
      "description": "The creator's positions: relay-centric, anti-super-peer, censorship-resistance as emergent client behaviour.",
      "section": "voices",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/fiatjaf/README.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/fiatjaf/README.html",
      "bytes": 6179,
      "sha256": "a47ff4b7957f32566f1363deac0de6d0a124dae9fa23837fd2c51451801ca235"
    },
    {
      "title": "Voice \u00b7 fiatjaf: essays (annotated)",
      "description": "Annotated bibliography of fiatjaf's web essays.",
      "section": "voices",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/fiatjaf/essays.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/fiatjaf/essays.html",
      "bytes": 40455,
      "sha256": "c5c8bd91f1610cf0ed72d15cfe0638d4e8f87c1106c6d4c2f22924253420382f"
    },
    {
      "title": "Voice \u00b7 fiatjaf: on-Nostr publications",
      "description": "His long-form articles and sampled notes from his relays.",
      "section": "voices",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/fiatjaf/on-nostr.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/fiatjaf/on-nostr.html",
      "bytes": 30516,
      "sha256": "2b908f5c40558f3d585c45f40be9219b857426bf2e03821f619992ff2f9c82e1"
    },
    {
      "title": "Voice \u00b7 No Solutions podcast (distillation)",
      "description": "Gigi & Pablo Fernandez: no-global, rug-pull resistance, trade-offs out loud, the local relay, Nostr as AI substrate.",
      "section": "voices",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/no-solutions/README.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/no-solutions/README.html",
      "bytes": 4932,
      "sha256": "0e747b0c16a1832fcb398f97822f92491038f504e428b79ea5100ba091aa7a25"
    },
    {
      "title": "Voice \u00b7 No Solutions: episodes",
      "description": "Full episode table and transcript notes.",
      "section": "voices",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/no-solutions/episodes.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/no-solutions/episodes.html",
      "bytes": 49263,
      "sha256": "0593c56c81851647a2dfd0996d465259495991af5fc51edb3b4d4e90ef067a50"
    },
    {
      "title": "Voice \u00b7 Constant (distillation)",
      "description": "Teach the paradigm, relays for curation, identity is not the key, TEPP, OpenTimestamps, the subjective web.",
      "section": "voices",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/constant/README.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/docs/voices/constant/README.html",
      "bytes": 7109,
      "sha256": "ae8f03796eae91c797a392df15ed052c824d51385728cd089dcdd273e174a099"
    },
    {
      "title": "Example \u00b7 ping-relay.ts",
      "description": "Connect to a relay with nostr-tools and read a few kind 1 events.",
      "section": "examples",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/ping-relay.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/ping-relay.html",
      "bytes": 1124,
      "sha256": "65d5f12e7db97c152e68b8b3d272d5bd5b65f9ff8cfefe7c609a03dbfb8f5361"
    },
    {
      "title": "Example \u00b7 fetch-profile.ts",
      "description": "Fetch a kind 0 profile.",
      "section": "examples",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/fetch-profile.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/fetch-profile.html",
      "bytes": 1217,
      "sha256": "7c1ff54d4d72e0ca00247087e37f4afd71b19bb33b89cff4092beaf8d7ded9ba"
    },
    {
      "title": "Example \u00b7 fetch-grasp-repo.ts",
      "description": "Fetch a NIP-34 repository announcement from a GRASP relay.",
      "section": "examples",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/fetch-grasp-repo.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/fetch-grasp-repo.html",
      "bytes": 2031,
      "sha256": "ed04903be381c3fe75809744e984e1d15bf5ddf0215d6b0fde2858088c49883f"
    },
    {
      "title": "Example \u00b7 blossom-upload.ts",
      "description": "Upload a blob to a Blossom server with a signed kind 24242 auth event.",
      "section": "examples",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/blossom-upload.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/blossom-upload.html",
      "bytes": 3619,
      "sha256": "2881e87f45ed601fbd10a7654845279e8bd30bd6d6fa473d60a15f73536a56a3"
    },
    {
      "title": "Example \u00b7 publish-wrap-with-auth.ts",
      "description": "Publish a pre-signed event to a relay that demands NIP-42 AUTH, without re-signing it.",
      "section": "examples",
      "core": false,
      "md_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/publish-wrap-with-auth.md",
      "html_url": "https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/publish-wrap-with-auth.html",
      "bytes": 4827,
      "sha256": "d9335afbf9ac5d88019bfd021124456e35bf48551a8ecb89a669fed0c9bacfb9"
    }
  ]
}
