Shawn

Shawn's avatar
Shawn
_@shawnyeager.com
npub1clk6...pup9
Working toward a future built on Bitcoin. Helping founders on the same mission. Hosting trustrevolution.co. Building trustatlas.org.
Working on hugostr β€” a CLI tool that publishes Hugo blog posts to nostr as kind:30023 events. It uses NIP-46 (remote signing) so users can sign events with their phone (Amber, Primal, et al). The flow and where I'm stuck 1. User runs hugostr publish content/post.md 2. CLI displays a QR code with nostrconnect:// URI 3. User scans with Amber, approves the connection 4. CLI shows "Connected!" βœ… 5. CLI shows "Requesting signature..." then hangs forever ❌ 6. Amber never shows a signing prompt Technical details - Using nostr-tools library (v2.19.4) with BunkerSigner - Relay: wss://relay.nsec.app - The initial NIP-46 handshake completes successfully - When calling bunkerSigner.signEvent(), it should: 1. Publish a kind:24133 event with encrypted sign_event request 2. Amber receives it, prompts user, sends back signed event 3. But step 2 never happens - Amber doesn't see the request What I've tried 1. nostr-tools BunkerSigner - connection works, signing hangs 2. NDK's NDKNip46Signer - same issue 3. Checked relay connectivity - pool.publish() works in isolation 4. Added reconnection logic after connection - no change Suspected causes 1. Pool/WebSocket connection state gets corrupted after the initial handshake 2. Subscription filter issue (Amber uses since = now()) 3. Something specific to how nostr-tools manages the post-connection subscription What would help - Anyone who has successfully used NIP-46 client-initiated flow (nostrconnect://) from Node.js with Amber - A working reference implementation to compare against - Insight into common NIP-46 pitfalls Halp? #asknostr