In the first version of Keychat, we also adopted the method of replacing curve25519 in the Signal protocol with secp256k1 from Nostr. However, we later realized that this approach was not optimal. Making such changes to libsignal is a risk point and adds complexity. The current practice in Keychat reuses libsignal with almost no modifications. Just as a phone number is the ID for Signal App users, a Nostr public key is the ID for Keychat users.

Below is the QR code for…