Remote apps (NIP-46)
What NIP-46 is
NIP-46 lets a Nostr app use Symudol as its signer through Nostr relays. The app can run somewhere else, such as on another device. Requests and answers travel as encrypted messages over the relays, and your private key stays on the phone.
What works today
NIP-46 support is at an early stage. In the current development version:
- You can connect a remote app and approve or reject the connection.
- A connected app can get your public key, check that Symudol is reachable, and ask which relays it uses, without asking you.
- Requests to sign, encrypt or decrypt are not completed yet. Symudol has no screen to review them, so they time out after 60 seconds and the app receives "Request timed out".
For signing on the same phone, use NIP-55 requests instead.
Open Remote Signer
- Open the Settings tab.
- Tap Remote Signer (NIP-46).
If you have no connections, you see No remote signer connections. Tap New connection, or the + button at the top, to start one.
The New NIP-46 Connection sheet has two tabs. Use the one that matches what your app supports.
Start from Symudol (bunker://)
Use this when the app asks you for a bunker:// address.
- Open the Generate bunker:// tab.
- Tap Generate bunker:// token.
- Tap Copy. You see "bunker:// token copied".
- Paste the token into the remote app.
While it waits, Symudol shows "Waiting for client to connect…". The connection appears in the list as Pending.
The token uses two relays: wss://relay.damus.io and wss://nos.lol.
Start from the app (nostrconnect://)
Use this when the app shows you a nostrconnect:// link or QR code.
- Copy the
nostrconnect://link from the app. If the app shows only a QR code, scan it with another app to get the link. - Open the Import nostrconnect:// tab.
- Paste the link into the nostrconnect:// URI field, or tap the paste icon.
- Tap Import and connect.
Symudol uses the relays listed in the link.
Symudol cannot scan QR codes itself, and it does not show a QR code for bunker:// tokens.
Approve a connection
When an app connects, Symudol opens Remote Signer Request.
At the top, a banner reminds you: "Identity unverified — client name, URL, and image are unauthenticated metadata and cannot be trusted." Any app can claim any name.
The screen shows:
- Requesting client: the name the app gave, or Unknown client, its web address if it gave one, and its Client pubkey.
- Relays: the relays the connection uses.
- Requested permissions: what the app asked to do, if it said. Sensitive permissions, such as decryption, are marked with a lock.
Tap Approve to accept the connection, or Reject to refuse it. If you do nothing for 2 minutes, the connection is rejected.
In the current development version, approving does not save the requested permissions.
Manage connections
The Remote Signer (NIP-46) screen lists your connections. Each one shows:
- The app's name, or the start of its public key.
- Active or Pending.
- Its web address, if it gave one.
- How many relays it uses.
- When it was last used.
To end a connection:
- Tap Revoke on the connection.
- Confirm with Revoke.
The app can no longer send requests to Symudol through that connection.
Things to know
- Symudol answers remote requests only while it is running.
- After the app restarts, saved connections reconnect once you open Remote Signer (NIP-46) again.
- If the vault is locked, remote requests are refused with "Unlock Symudol and select an identity before handling this NIP-46 request."
- Remote requests use the active identity. See Accounts and profile.