Back to Home

Browser Support

Installation and usage instructions for NostrKey across different browsers

Chrome / Chromium-based Browsers Available

Supported Browsers: Chrome, Edge, Brave, Opera, Vivaldi, Arc

Installation from Chrome Web Store

  1. Visit NostrKey on the Chrome Web Store
  2. Click Add to Chrome
  3. Click Add extension in the confirmation dialog
  4. The NostrKey icon will appear in your browser toolbar

Manual Installation (Developer Mode)

  1. Download the latest release from GitHub Releases
  2. Extract the ZIP file
  3. Open your browser and navigate to:
    • Chrome: chrome://extensions/
    • Edge: edge://extensions/
    • Brave: brave://extensions/
    • Opera: opera://extensions/
  4. Enable Developer mode (toggle in top-right corner)
  5. Click Load unpacked
  6. Select the extracted chrome folder
  7. The extension is now installed

Usage

Troubleshooting

Extension not appearing:

  • Ensure Developer mode is enabled
  • Check that you selected the correct folder (should contain manifest.json)
  • Try restarting your browser

Permission requests not showing:

  • Check that the extension is enabled in chrome://extensions/
  • Verify the website supports NIP-07
  • Check browser console for errors

Safari (macOS & iOS) Available

Supported Platforms: macOS 11+, iOS 15+

Installation from App Store

Coming soon to the Mac App Store

Manual Installation (macOS)

  1. Download the latest release from GitHub Releases
  2. Open the .dmg file
  3. Drag NostrKey to your Applications folder
  4. Open NostrKey from Applications
  5. In Safari, go to Safari → Settings → Extensions
  6. Enable NostrKey
  7. Grant necessary permissions

Manual Installation (iOS)

  1. Install via TestFlight (link coming soon)
  2. Open Settings → Safari → Extensions
  3. Enable NostrKey
  4. Grant necessary permissions

Usage

Permission Prompts

Unlike Chrome (which grants extensions access to all sites automatically), Safari asks you to approve each new website individually. When you visit a Nostr app for the first time, Safari will show a prompt with three options:

We recommend "Always Allow on Every Website." This sounds broad, but NostrKey has its own permission system — every time a site tries to read your public key or sign an event, you still get an in-app approval prompt. Safari's setting only controls whether the extension loads on a page; it does not bypass NostrKey's own security.

Changing this later

Troubleshooting

Extension not showing in Safari:

  • Check Safari → Settings → Extensions
  • Ensure NostrKey is checked/enabled
  • Try quitting and reopening Safari

iOS extension not appearing:

  • Go to Settings → Safari → Extensions
  • Make sure NostrKey is toggled on
  • Restart Safari

Nostr apps not detecting NostrKey:

  • This is usually caused by Safari's per-site permission setting. Open Safari → Settings → Extensions → NostrKey and set "Allow on" to Always Allow on Every Website.
  • On iOS: Settings → Safari → Extensions → NostrKey → set to "All Websites".
  • After changing the setting, reload the page.

Firefox Planned

Firefox support is on our roadmap. Follow our GitHub repository for updates.

⚙️ Getting Started

First-Time Setup

  1. Click the NostrKey icon in your browser toolbar
  2. Click Settings or Full Settings to open the configuration page
  3. Create a profile — New Local for a local key, or New Bunker for remote signing
  4. Add your key, configure relays, and visit a Nostr web app — you're ready

⚠️ Never Share Your Private Key: NostrKey will never ask for it outside the extension

🖥️ App Settings

These settings apply to the entire extension, across all profiles.

Master Password

Encrypts all your private keys at rest with a single password. Found in Settings → Security.

There is no password recovery. If you lose your master password, you lose access to your keys. Always keep a backup of your nsec before enabling encryption.

Cross-Device Sync

Toggle in Settings → Sync across devices. When enabled, profile data syncs via your browser account.

nostr: Protocol Handler

Redirect nostr: links to a web client. Found in Settings → nostr: Links.

Frame Protection

Toggle Block cross-origin frames in Settings to prevent other sites from embedding pages that could access NostrKey.

Encrypted Vault

Store encrypted markdown documents on Nostr relays via NIP-78. Access from Vault tab → Open Vault.

API Keys

Store API keys for external services. Access from Vault tab → Manage API Keys.

Manage Nostr Keys

View, copy, export, and import Nostr account keys. Access from Vault tab → Manage Nostr Keys.

👤 Profile Settings

These settings are specific to each Nostr profile (identity). Switch profiles using the dropdown at the top of Settings.

Keys

Each local profile holds a private key (nsec) and derives a public key (npub).

Relays

Each profile has its own relay list. Relays are used for vault sync, API key sync, and suggested to Nostr apps via NIP-07.

App Permissions

Control what each web app can do with your key. Permissions are per-app, per-profile.

Covers: reading your public key, signing events (by kind), encrypting/decrypting messages (NIP-04, NIP-44), and reading your relay list.

nsecBunker (Remote Signing)

Bunker profiles connect to an external NIP-46 signer. Your private key stays on the bunker server and never touches this browser.

📋 General

Security Best Practices

Multiple Profiles

NostrKey supports multiple Nostr identities. Each profile has its own key, relays, and permissions. Switch between them using the profile dropdown in the sidebar or Settings.

Clear Data

Found at the bottom of Settings. This permanently deletes all profiles, keys, and data. Make sure you have backups before using this.

🆘 Common Issues

"Extension cannot access this page"

Some browsers restrict extensions on certain pages (like chrome:// or about: pages). This is normal browser security.

"Failed to connect to relay"

Stale relays in existing profiles: Public Nostr relays sometimes go offline permanently. If you see WebSocket errors like ERR_NAME_NOT_RESOLVED or Unexpected response code: 404, a relay in your profile's list has gone down. Go to Settings → Relays and delete any relays that are no longer responding. New profiles ship with an updated relay list, but existing profiles keep whatever relays were configured when they were created.

"Invalid key format"

Data not syncing between devices

📞 Support & Community

Issues & Bug Reports

GitHub Issues

Feature Requests

GitHub Discussions

Documentation

docs/

Website

nostrkey.com

🔒 Privacy & Security

NostrKey is committed to your privacy: