[claude] Timmy Nostr identity — keypair, profile, relay presence (#856) #1325
Reference in New Issue
Block a user
Delete Branch "claude/issue-856"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #856
Summary
Implements Timmys full Nostr identity stack in
src/infrastructure/nostr/:nsec/npubencoding (NIP-19)schnorr_sign/schnorr_verify)websockets) that publishes NIP-01["EVENT", …]to one or many relays concurrently, with graceful degradationNostrIdentityManagerpublishes Kind 0 (profile metadata) and Kind 31990 (NIP-89/NIP-90 capability card) to configured relaysConfig additions to
config.py:NOSTR_PRIVKEY,NOSTR_PUBKEY,NOSTR_RELAYS,NOSTR_NIP05,NOSTR_PROFILE_NAME,NOSTR_PROFILE_ABOUT,NOSTR_PROFILE_PICTURE.All operations degrade gracefully when keys/relays are not configured.
Tests
647 unit tests pass. New tests cover keypair round-trips, Schnorr sign/verify, event ID hashing, and the full identity announce lifecycle with mocked relay.