Your keys. Your identity.
Signstr is a NIP-46 remote signer for Nostr. It turns your iPhone into a dedicated signing device — your private keys stay on your phone, protected by Face ID, while you use any Nostr client on any device.
- Open Signstr and create or import a Nostr identity
- Scan a QR code from any NIP-46 compatible client (Coracle, Primal, noStrudel, etc.)
- The client sends signing requests to your phone over Nostr relays
- Safe events sign automatically. Sensitive events require your approval and Face ID
Your nsec never leaves your device. The client never sees your private key.
- Multiple identities — manage several Nostr identities from one app
- Smart auto-approve — metadata, contact lists, and relay auth sign silently; notes and DMs require approval
- Per-identity policies — configure which event types each identity auto-approves
- Face ID — every sensitive signing request requires biometric authentication
- Connection persistence — connections survive app restarts with automatic relay reconnection
- Event history — full audit trail of every signed event per identity
- NIP-44 encryption — all communication is end-to-end encrypted
Any app that supports NIP-46 remote signing, including:
No accounts. No analytics. No tracking. No servers. Signstr communicates only with Nostr relays specified by your connected apps.
- NIP-46 remote signing protocol
- NIP-44 encrypted communication
- Schnorr signatures (BIP-340)
- Keys stored in iOS Keychain
- Face ID via LocalAuthentication framework
- Clone this repository
- Open
Signstr.xcodeprojin Xcode 15+ - Build and run on an iOS 17+ device
Every claim we make is verifiable in the source:
| Claim | Where to verify |
|---|---|
| Keys never leave your device | IdentityManager.swift — nsec stored in iOS Keychain, signing via SchnorrSigner.sign() |
| No analytics or tracking | Search the repo — only network calls are WebSocket connections to Nostr relays |
| NIP-44 encryption | NIP44.swift — passes all official spec test vectors |
| Face ID for sensitive signing | NIP46Service.swift — LAContext.evaluatePolicy gate on non-safe event kinds |
| Open source NIP-46 | NIP46Service.swift — standard protocol implementation |
[Choose: AGPLv3 / MIT]
- Website: signstr.com
- App Store: [link after approval]
- Nostr: [your npub]
Built by Gridmark Technologies Ltd