If you use Amber already, then I highly recommend pairing it with Keychat for all Nostr web apps. Keychat uses NIP-07 like a browser extension would, but when paired with Amber it uses NIP-55 to reach out to Amber to get the signature. Both NIP-07 and NIP-55 are very reliable, so I have never experienced an issue with signing in Keychat. Meanwhile, NIP-46 is very spotty, and it is hard to determine why. It seems like it works ok if you can initially get logged in using it. The problem is that it can take several tries before you can successfully log in. Apps that present you with a QR code to scan a connection string seem to work better than ones where you have to manually paste in the bunker string from your signer app, but that means you are using that client dev's preferred relay for passing messages back and forth between the client and the signer, rather than the relay you prefer to use. It's almost as if the client only looks for the signed connection request for a very short time, and if it doesn't see it on the relay in time then login fails and you have to try again. Highly annoying.

Replies (4)

ZharlieW's avatar
ZharlieW 1 month ago
Yes, the biggest issue with NIP-46 is that it relies on relays for command interactions, and network connection problems can increase the number of failures.
Thank u for your insights from a user's perspective. However, from my perspective, I need to create a solution that is as universal as possible, since I cannot assume that the users of my PWA have a specific app like Keychat installed. My question is therefore aimed at finding out how I can best support the different standards (NIP-07/55/46) directly in the web app to ensure broad compatibility.
Keychat is just one of many options for NIP-07 signing. Alby, nos2x, and a couple others are out there, as well. NIP-07 is the most universally adopted signing standard for all Nostr web apps. If you are building a PWA, then order of priority would probably be NIP-07, then NIP-46, and finally NIP-55 since it is Android specific.
That order of priority changes drastically if you are building a native Android app, though. Then you'd better have NIP-55 working out the gate or go home. Add NIP-46 when you can get around to it, and no need to bother with NIP-07 since the app isn't operating in a browser.