Changes for version 1.002000 - 2026-09-08

  • Review fixes: validate all recognized group metadata fields and timeline references, reject conflicting flags and empty group identifiers, and allow edit_metadata to describe supported kinds and LiveKit support. Explicit empty wallet encryption advertisements no longer imply NIP-04. Execute the actual metadata, pin, and PaymentTargets POD examples in tests.
  • Update the documented NIP conformance target to c3fd9af1 (2026-09-04).
  • Add Net::Nostr::PaymentTargets for NIP-A3 kind 10133 lists, strict target parsing, and URI rendering for known and future payment types.
  • Document and test NIP-51 favorite follow sets (kind 10011) and NIP-46 unsupported-method error replies without restricting future method names.
  • Allow NIP-22 comments on kind 1 notes.
  • Parse and serialize optional NIP-67 EOSE hint arrays, preserving unknown strings and rejecting malformed hint values.
  • Add NIP-47 extension discovery and Info::extensions/supports_extension. Discovery builders and parsers now reject malformed token lists and duplicate or malformed discovery tags; existing notification APIs remain.
  • Add NIP-29 invite suffixes, banner/parent/ordered child metadata, and update_pin_list/pinned_events/pins_from_event helpers with strict validation.
  • Tighten Filter validation to reject trailing newlines in identifiers, integer fields, and tag filter names, and reject non-ASCII digits in kinds, since, until, and limit. This also applies to filters parsed from REQ, COUNT, and NEG-OPEN messages.

Modules

NIP-78 Arbitrary Custom App Data
NIP-89 recommended application handlers
NIP-23 long-form content
NIP-58 Badges
NIP-19 bech32-encoded entities
strict Nostr/Blossom server-list integration helpers
NIP-52 Calendar Events
NIP-99 classified listings
NIP-22 comment threading
Core Perl tooling for the Nostr protocol
NIP-09 event deletion requests
NIP-17 private direct messages
NIP-44 versioned encrypted payloads
Nostr protocol event object
NIP-73 External Content IDs
NIP-94 File Metadata events
Nostr event filter for subscriptions and queries
NIP-02 follow list management
NIP-59 gift wrap encryption
NIP-34 git collaboration over Nostr
NIP-29 relay-based groups
NIP-98 HTTP auth
Mapping Nostr keys to DNS-based internet identifiers
Secp256k1 keypair management for Nostr
NIP-49 private key encryption
NIP-32 Labeling
NIP-51 lists and sets
NIP-53 Live Activities
NIP-92 Media Attachments
NIP-27 text note references
Nostr protocol message serialization and parsing
NIP-24 Extra Metadata Fields and Tags
NIP-87 Ecash Mint Discoverability
NIP-77 negentropy set reconciliation
NIP-61 nutzaps (Cashu ecash payments)
NIP-A3 payment target lists
NIP-25 reactions
NIP-43 Relay Access Metadata and Requests
NIP-86 relay management API
NIP-11 relay information document
NIP-65 relay list metadata
NIP-66 Relay Discovery and Liveness Monitoring
NIP-46 Nostr Remote Signing
NIP-56 Reporting
NIP-18 reposts and generic reposts
NIP-10 text note threading
NIP-03 OpenTimestamps attestations for events
NIP-35 Torrents
NIP-60 Cashu wallet state management
NIP-47 Nostr Wallet Connect
NIP-54 Wiki
NIP-57 Lightning Zaps

Provides

in lib/Net/Nostr/RemoteSigning.pm
in lib/Net/Nostr/RemoteSigning.pm
in lib/Net/Nostr/RemoteSigning.pm
in lib/Net/Nostr/RemoteSigning.pm
in lib/Net/Nostr/RemoteSigning.pm
in lib/Net/Nostr/RemoteSigning.pm
in lib/Net/Nostr/WalletConnect.pm
in lib/Net/Nostr/WalletConnect.pm
in lib/Net/Nostr/WalletConnect.pm
in lib/Net/Nostr/WalletConnect.pm
in lib/Net/Nostr/_ConstructorArgs.pm
in lib/Net/Nostr/_URI.pm