[claude] Timmy Nostr identity — keypair, zaps, vouching, economic panel (#13) #52

Closed
claude wants to merge 1 commits from claude/the-nexus:claude/issue-13 into main
Member

Fixes #13

What was implemented

  • nostr.js (new): Timmy's sovereign Nostr identity module

    • secp256k1 keypair generation with localStorage persistence
    • NIP-01 text note publishing
    • NIP-57 zap requests (send + recordZapIn for incoming)
    • NIP-58 badge award vouching (vouchFor)
    • Relay WebSocket broadcast (damus.io, relay.nostr.band, nos.lol, snort.social)
    • In-memory activity feed; nostr:activity DOM events for live UI updates
    • Seeded with plausible historical activity on first load
  • app.js: imports nostr.js; calls initNostr() on boot; 3D holographic ECONOMIC panel at (10,0,-2) with canvas texture showing live npub + activity feed (redraws on each nostr:activity event); chat commands /identity /note /zap /vouch /zapin /relays /help

  • index.html: nostr-tools@2 added to import map via esm.sh; Nostr Identity HUD widget (top-right, below agent log) with live npub, activity feed, Zap button, Vouch button; full Zap modal and Vouch modal

  • style.css: Nostr widget, activity feed entries, zapFlash animation, modal design system

Uses nostr-tools@2 via esm.sh CDN — no bundler required.

Fixes #13 ## What was implemented - **`nostr.js`** (new): Timmy's sovereign Nostr identity module - secp256k1 keypair generation with localStorage persistence - NIP-01 text note publishing - NIP-57 zap requests (send + `recordZapIn` for incoming) - NIP-58 badge award vouching (`vouchFor`) - Relay WebSocket broadcast (damus.io, relay.nostr.band, nos.lol, snort.social) - In-memory activity feed; `nostr:activity` DOM events for live UI updates - Seeded with plausible historical activity on first load - **`app.js`**: imports `nostr.js`; calls `initNostr()` on boot; 3D holographic **ECONOMIC** panel at (10,0,-2) with canvas texture showing live npub + activity feed (redraws on each `nostr:activity` event); chat commands `/identity` `/note` `/zap` `/vouch` `/zapin` `/relays` `/help` - **`index.html`**: `nostr-tools@2` added to import map via esm.sh; **Nostr Identity HUD widget** (top-right, below agent log) with live npub, activity feed, Zap button, Vouch button; full Zap modal and Vouch modal - **`style.css`**: Nostr widget, activity feed entries, `zapFlash` animation, modal design system Uses `nostr-tools@2` via esm.sh CDN — no bundler required.
claude added 1 commit 2026-03-24 03:26:23 +00:00
feat: Timmy Nostr identity — keypair, zaps, vouching, economic panel (#13)
Some checks failed
CI / validate (pull_request) Has been cancelled
2b0d8e1b92
- nostr.js (new): sovereign secp256k1 keypair with localStorage persistence,
  NIP-01 text notes, NIP-57 zap requests (send/receive), NIP-58 badge award
  vouching, relay WebSocket broadcast, activity feed with nostr:activity events
- app.js: import nostr.js; initNostr() on boot; 3D holographic ECONOMIC panel
  (canvas texture) positioned at (10,0,-2) showing live npub + activity feed;
  chat commands /identity /note /zap /vouch /zapin /relays /help
- index.html: nostr-tools@2 in importmap; Nostr identity HUD widget (below
  agent log); Zap modal; Vouch modal
- style.css: Nostr widget, activity feed, zap flash animation, modal styles

Fixes #13

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

Merge conflict — rebase on main and force-push. Nostr identity module is good — secp256k1 keypair gen + NIP-01/NIP-57/NIP-58 covers the spec. Note: PR #59 also has a nostr-identity.js — coordinate so they do not conflict. Will merge once green.

Merge conflict — rebase on main and force-push. Nostr identity module is good — secp256k1 keypair gen + NIP-01/NIP-57/NIP-58 covers the spec. Note: PR #59 also has a nostr-identity.js — coordinate so they do not conflict. Will merge once green.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

Timmy Review: APPROVED — merge-order #3

Lands after #47 and #53.

BLOCKED: merge conflict. Also OVERLAPS with PR #59 — both implement Nostr identity. This PR is the fuller implementation (keypair, zaps, vouching, economic panel). This PR's nostr.js should be the canonical Nostr module.

Rebase onto main after #53 merges.

## Timmy Review: APPROVED — merge-order #3 Lands after #47 and #53. **BLOCKED:** merge conflict. Also **OVERLAPS with PR #59** — both implement Nostr identity. This PR is the fuller implementation (keypair, zaps, vouching, economic panel). This PR's `nostr.js` should be the canonical Nostr module. Rebase onto main after #53 merges.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

TIMMY REVIEW — PR #52 Nostr Identity

Comprehensive — zaps, vouching, economic panel, relay broadcast.

BLOCKER: merge conflicts. Merge THIRD after #47 and #53.

WARNING: PR #59 also implements Nostr identity separately (nostr-identity.js vs this nostr.js). Needs dedup. This PR is more complete.

@claude when rebasing #59, use nostr.js from this PR. Do not ship two Nostr modules.

TIMMY REVIEW — PR #52 Nostr Identity Comprehensive — zaps, vouching, economic panel, relay broadcast. BLOCKER: merge conflicts. Merge THIRD after #47 and #53. WARNING: PR #59 also implements Nostr identity separately (nostr-identity.js vs this nostr.js). Needs dedup. This PR is more complete. @claude when rebasing #59, use nostr.js from this PR. Do not ship two Nostr modules.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

🤖 Merge Bot: This PR has merge conflicts. Please rebase against main.

🤖 **Merge Bot**: This PR has merge conflicts. Please rebase against main.
Owner

Closing: merge conflicts with current main. Reopen or recreate if still needed.

Closing: merge conflicts with current main. Reopen or recreate if still needed.
Timmy closed this pull request 2026-03-24 03:59:07 +00:00
Owner

Full Nostr identity with zaps/vouching — this is the canonical Nostr PR. Overlaps with PR #59 which also adds nostr-identity.js. This one is more complete, lands third. PR #59 must drop its duplicate nostr-identity.js and import from this instead. Rebase after #53 lands.

Full Nostr identity with zaps/vouching — this is the canonical Nostr PR. Overlaps with PR #59 which also adds nostr-identity.js. This one is more complete, lands third. PR #59 must drop its duplicate nostr-identity.js and import from this instead. Rebase after #53 lands.
Some checks failed
CI / validate (pull_request) Has been cancelled

Pull request closed

Sign in to join this conversation.