nostrstack-nostr

Resolve Nostr identifiers, events, and mentions into canonical IDs with relay caching.

Updated Dec 31, 2025
One-click install
npx skills add https://github.com/joelklabo/markdowntown-cli --skill nostrstack-nostr
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: nostrstack-nostr
Source: https://github.com/joelklabo/markdowntown-cli/tree/main/codex/skills/nostrstack-nostr
Command: npx skills add https://github.com/joelklabo/markdowntown-cli --skill nostrstack-nostr

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill standardizes parsing and resolution of Nostr identifiers, events, and inline mentions so UI and API endpoints reliably fetch and present canonical, cache-backed data for /nostr/:id.

Core Features & Use Cases

  • Identifier normalization: Accepts optional nostr: prefixes and multiple bech32 and hex types (note, nevent, naddr, npub, nprofile) and normalizes them to canonical IDs.
  • NIP-05 identity resolution: Performs safe NIP-05 lookups by fetching .well-known/nostr.json with enforced max bytes, timeouts, and caching.
  • Relay fetching and caching: Merges relays from request and config, enforces relay caps and per-relay timeouts, and surfaces cached API-backed profiles/events for UI rendering.

Quick Start

Use the nostrstack-nostr skill to normalize a nostr identifier, perform NIP-05 and relay-backed lookups with configured timeouts and cache rules, and return a safe representation for display at /nostr/:id.

Frequently Asked Questions about nostrstack-nostr

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I resolve Nostr identifiers like npub, nevent, and naddr into canonical IDs?

Nostr identifier resolution normalizes optional nostr: prefixes and bech32 types (note, nevent, naddr, npub, nprofile) alongside 64-character hex IDs into canonical IDs for UI and API rendering.

How does NIP-05 identity lookup work with safe HTTP constraints?

NIP-05 identity resolution fetches .well-known/nostr.json with enforced maximum byte limits, strict timeouts, and caching to safely verify Nostr identities without risking unbounded responses.

What is the best way to handle relay fetching and caching for Nostr events?

Relay fetching merges relays from request and config, enforces relay caps and per-relay timeouts, and surfaces cached API-backed profiles and events to optimize UI rendering at /nostr/:id endpoints.

Can I use Nostr bech32 identifiers with mixed relay lists in my API?

Yes, the resolution process merges relays from both request parameters and configuration, enforces relay caps, and applies per-relay timeouts to safely fetch and cache Nostr data.

What are the limitations of parsing Nostr mentions for display endpoints?

Parsing Nostr mentions enforces strict cache TTLs, relay caps, and safe rendering/linking behavior to prevent unbounded relay fetches, ensuring /nostr/:id endpoints remain responsive and secure.

Why does my Nostr event resolution fail with unmerged relay configurations?

Nostr event resolution requires merging relays from request and config while enforcing per-relay timeouts and relay caps; failing to merge lists or exceeding caps causes incomplete or failed fetches.