NIP-55: Android Signer Application
NIP-55 defines how Android applications can request signing operations from a dedicated signer app, allowing users to keep their private keys in one secure location while using multiple Nostr clients.
How It Works
NIP-55 uses Android’s content provider interface to expose signing operations. A signer app registers as a content provider, and other Nostr apps can request signatures without ever accessing the private key directly.
The flow:
- Client app calls the signer’s content provider
- Signer shows approval UI to the user
- User approves or denies the request
- Signer returns the signature (or rejection) to the client
Key Operations
- get_public_key - Retrieve the user’s public key (call once during initial connection)
- sign_event - Sign a Nostr event
- nip04_encrypt/decrypt - Encrypt or decrypt NIP-04 messages
- nip44_encrypt/decrypt - Encrypt or decrypt NIP-44 messages
Connection Initiation
A common implementation mistake is calling get_public_key repeatedly from background processes. The spec recommends calling it only once during initial connection setup, then caching the result.
Primary sources:
Mentioned in:
See also: