On NIP-46 it's more complicated. Amber already batches, but there's high overhead. NIP-44 size limit was blocking us but now it's not. We can fix with a new `batch()` rpc that works like: `batch([["nip44.decrypt", pubkey1, ciphertext1], ["nip44.decrypt", pubkey1, ciphertext1], ...etc])`. The signer interface in your code should still use granular methods but should batch calls in the same event loop (or with a short delay) as a matter of transport.
Look at how Ditto Extension does it. It batches the requests into a single dialog (see "Show 31 more" in the pic). This is inspired by Amber. The NIP-07 interface is perfect, but signers must do this.
You guys should try it! I think you'll enjoy: https://armada.buzz/ And if any of y'all can figure out how to hack or disrupt it I'll pay you Bitcoin, up to $1,000 depending on the severity of your find. Email: [email protected]