Nostr WoT
Extension Features

Identity & Wallet,
Everywhere

A complete Nostr identity provider and Lightning wallet. Manage multiple accounts, sign events, encrypt messages, send zaps, and keep your profile, relays, and mute list in sync — with granular per-site permissions.

What You Get

Identity, wallet, and profile — one extension

Everything you need for Nostr in a single install. No juggling multiple extensions.

NIP-07 Signer

Sign events and encrypt messages (NIP-04 & NIP-44) across any Nostr client

Encrypted Vault

AES-256-GCM encrypted key storage with auto-lock and secure backup

Multi-Account

HD derivation, watch-only, NIP-46 remote signer — switch identities instantly

Lightning Wallet

Built-in wallet for zaps with NWC, LNbits, or one-click quick setup

Profile & Relays

Edit your kind:0 profile and manage NIP-65 relays and your NIP-51 mute list

Granular Permissions

Per-account, per-domain, per-method controls with activity logging

WebLN Provider

Sites can request payments via window.webln with your approval

6 Languages

English, Spanish, Portuguese, German, French, and Italian

NIP-07 Signer API

One signer, available on every Nostr website

Once installed, any Nostr app can call window.nostr to get your public key, sign events, and encrypt messages — without ever touching your private key. Web of Trust queries live in the nostr-wot SDK and Oracle, not the extension.

PrimalCoracleSnortHablaYakihonne+ any NIP-07 app
javascript
// The extension injects window.nostr (NIP-07)
const pubkey = await window.nostr.getPublicKey();
const signed = await window.nostr.signEvent(event);
const ct = await window.nostr.nip44.encrypt(peer, "gm");
Set Up Your Account

Three ways to bring your identity

Pick what fits your needs

Create New Keys

Generate a fresh keypair in seconds. HD-derived and encrypted in the vault from the start.

  • Instant onboarding
  • HD-derived (BIP-32) keys
  • Encrypted at rest
  • Backup your seed anytime

Best for: New users starting fresh on Nostr

Import nsec

Already have keys? Paste your nsec or seed and the extension takes over signing locally.

  • Keys never leave your device
  • Bring your existing identity
  • Signs fully offline
  • Export/re-import anytime

Best for: Existing Nostr users migrating in

Advanced

NIP-46 Remote Signer

Keep keys on a bunker or remote signer. The extension routes signing requests without holding the key.

  • Keys stay on the bunker
  • Nothing sensitive stored locally
  • Works with any NIP-46 signer
  • Add watch-only accounts too
Per-Site Permissions

Not every site gets the same access

Define what each app is allowed to do

How Permission Scopes Work

You
Your grant
Acct
Account
Site
Domain
Call
Method

Allowed

Sign without prompts

Ask

Prompt for approval

Blocked

Reject all requests

Permission Scopes

Grant access as narrowly as you like

Account
100%
Domain
75%
Method
50%
Kind
25%

Scope every grant per account, per site, per method, or per event kind

Approval Modes

Decide how often you get asked

Ask every time

A popup for every request

Prompt

Remember for session

Approve until the browser closes

Auto

Always allow

Trusted site, no prompts

Silent

Revoke anytime

Pull any grant from settings

Instant
Encrypted Vault

Your keys. Encrypted. Local.

The Vault

vaultKey = PBKDF2(password, 210k iters)

Your private keys are sealed with AES-256-GCM using a key derived from your password.

nsecAES-256-GCMencrypted blob🔒

Auto-locks after inactivity — nothing ever leaves your browser

Profile & Relays

Manage your Nostr presence

Relay List (NIP-65)

wss://relay.damus.io
wss://nos.lol
wss://relay.nostr.band
wss://relay.primal.net

Profile (kind:0)

namesatoshi
aboutbuilding on nostr

Mute List (NIP-51)

Muted Pubkeys

Hide accounts via your NIP-51 mute list

Muted Words

Filter out topics and phrases you'd rather not see

Synced Everywhere

Published as an event so compatible clients respect it

Accounts

Switch identities in one click

4

Accounts

12

Approved Sites

Unlocked

Vault Status

<5ms

Sign Latency

Active account: satoshi
Lightning Wallet

Zaps built in. No extra apps needed.

Send sats, receive zaps, and manage your balance without leaving the extension. Three ways to connect:

Quick Setup

Get a wallet in one click — no manual configuration. Good for getting started with zaps fast.

Nostr Wallet Connect

Paste your NWC URI to connect any external Lightning wallet you already use.

LNbits

Connect your LNbits instance with an admin key for direct API access.

WebLN Provider

The extension injects window.webln so Nostr apps can request payments automatically — with your permission.

Auto-approve small payments

Set a threshold in sats. Payments below it get approved automatically — no popup for every zap.

Privacy

Your data, your rules

Local Custody

Private keys are encrypted and never sent anywhere

  • No key ever leaves the vault
  • Only signatures are shared
  • You approve every request
Maximum Privacy

No Tracking

The extension phones home to no one

  • Zero external requests
  • No tracking or analytics
  • Export your data anytime
  • Works completely offline
Get Started

Up and running in minutes

1

Install the extension

Add to Chrome, Brave, Edge, Opera, or Firefox

2

Set up your account

Create new keys, import nsec, add watch-only, or connect via NIP-46

3

Secure your vault

Set a password and an auto-lock timer for your encrypted keys

4

Set site permissions

Choose what each app can sign and approve requests

5

Browse Nostr

Your identity and wallet now follow you everywhere

API for Developers

Build Nostr apps on window.nostr

javascript
1// Check if a NIP-07 signer is available
2if (window.nostr) {
3 // Get the user's public key (with permission)
4 const pubkey = await window.nostr.getPublicKey();
5
6 // Sign a Nostr event — private key never leaves the vault
7 const signed = await window.nostr.signEvent({
8 kind: 1,
9 created_at: Math.floor(Date.now() / 1000),
10 tags: [],
11 content: "Hello from a NIP-07 app",
12 });
13
14 // Encrypt / decrypt DMs (NIP-04 and NIP-44)
15 const nip44Cipher = await window.nostr.nip44.encrypt(peerPubkey, "gm");
16 const plaintext = await window.nostr.nip04.decrypt(peerPubkey, dmCiphertext);
17
18 // Read the user's preferred relays (NIP-65)
19 const relays = await window.nostr.getRelays();
20}
21
22// Web of Trust lives in the SDK / Oracle, not the extension:
23// import { getTrustScore } from "nostr-wot-sdk";
24// const score = await getTrustScore(pubkey);

Free. Forever. Open source.

Fork the extension, use the SDK, or self-host the Oracle — do whatever you want.