Skip to content

Commit 611992e

Browse files
vveerrggclaude
andcommitted
docs: add license page, no-crypto notice, update all pages for v1.5.0
- Add docs/license.html (Monokai-themed MIT license page) - Add "No Cryptocurrency or Token" notice to index.html, terms.html, README - Move no-crypto section to ursuscamp#1 in terms.html - Update all pages with v1.5.0 features (cross-device sync, master password, NIP-49) - Update privacy.html with storage.sync disclosure - Update support.html with current sync guidance - Fix license ISC → MIT across all files (matches actual LICENSE file) - Fix nostr-tools → nostr-crypto-utils reference Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 137dac2 commit 611992e

10 files changed

Lines changed: 324 additions & 59 deletions

File tree

README.md

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,21 @@
33
> Cross-browser Nostr key management, encrypted document vault, and identity layer.
44
> Forked from [ursuscamp/nostore](https://github.com/ursuscamp/nostore) (archived Feb 2025).
55
>
6-
> **Website:** [nostrkey.com](https://nostrkey.com) · **Current release:** [v1.2.2](https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/releases/tag/v1.2.2)
6+
> **Website:** [nostrkey.com](https://nostrkey.com) · **Current release:** [v1.5.0](https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/releases/tag/v1.5.0)
7+
8+
> **NostrKey and Humanjava Enterprises Inc. do not have a cryptocurrency, token, or coin. Nor will there be one.** If anyone suggests or sells a cryptocurrency associated with this project, they are acting fraudulently. [Report scams](https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/issues).
79
810
## What It Does
911

1012
- **NIP-07 signing**`window.nostr` API for any Nostr web app (Chrome + Safari)
1113
- **NIP-46 nsecBunker** — remote signing, your private key never touches the browser
1214
- **NIP-44 encryption** — modern ChaCha20-Poly1305 (replaces deprecated NIP-04)
1315
- **Zero-knowledge .md vault** — encrypted documents stored on Nostr relays, unreadable by relay operators
14-
- **API key vault** — encrypted secret storage, synced across devices via relays
15-
- **P2P document sharing** — send encrypted files to chat rooms with temporary access
16-
- **Login with Nostr** — NIP-42 authentication for web apps
16+
- **API key vault** — encrypted secret storage
17+
- **Cross-device sync** — profiles, vault, and settings sync via Google account (Chrome) or iCloud (Safari 16+)
18+
- **Master password** — keys encrypted at rest with configurable auto-lock
19+
- **P2P document sharing** — send encrypted files to chat rooms with temporary access (planned)
20+
- **Login with Nostr** — NIP-42 authentication for web apps (planned)
1721

1822
## Architecture
1923

@@ -61,6 +65,8 @@ See [docs/PROJECT-VISION.md](docs/PROJECT-VISION.md) for the full roadmap.
6165
- [x] WCAG AA accessibility (contrast, focus, ARIA, reduced motion, semantic HTML)
6266
- [x] Vault detection & restore after extension reload (three-tier: flag check → deep scan → manual)
6367
- [x] Chrome MV3 message passing fix (all handlers use sendResponse callback pattern)
68+
- [x] Cross-device sync via storage.sync (Google/iCloud, chunked, priority-based budget)
69+
- [x] NIP-49 encrypted key export/import (ncryptsec)
6470

6571
### Planned
6672
- [ ] Firefox extension (manifest + sidebar_action or popup fallback)
@@ -86,6 +92,7 @@ See [docs/PROJECT-VISION.md](docs/PROJECT-VISION.md) for the full roadmap.
8692
| [NIP-42](https://github.com/nostr-protocol/nips/blob/master/42.md) | Client auth | 🔧 Planned |
8793
| [NIP-44](https://github.com/nostr-protocol/nips/blob/master/44.md) | Encrypted messaging v2 ||
8894
| [NIP-46](https://github.com/nostr-protocol/nips/blob/master/46.md) | Nostr Connect (bunker) ||
95+
| [NIP-49](https://github.com/nostr-protocol/nips/blob/master/49.md) | Encrypted key export ||
8996
| [NIP-59](https://github.com/nostr-protocol/nips/blob/master/59.md) | Gift wrap | 🔧 Planned |
9097
| [NIP-78](https://github.com/nostr-protocol/nips/blob/master/78.md) | App-specific data ||
9198

@@ -149,8 +156,8 @@ This extension does not collect any user data or transmit any data over a networ
149156

150157
- [ursuscamp](https://github.com/ursuscamp) — Original Nostore extension
151158
- [fiatjaf](https://github.com/fiatjaf) — nostr-tools, nos2x, and Nostr itself
152-
- [nostr-tools](https://github.com/nbd-wtf/nostr-tools) — Crypto foundation
159+
- [nostr-crypto-utils](https://github.com/HumanjavaEnterprises/nostr-crypto-utils) — Crypto foundation
153160

154161
## License
155162

156-
ISC
163+
MIT — see [LICENSE](LICENSE)

SUPPORT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,6 @@ For full details, see our [Privacy Policy](PRIVACY.md).
173173

174174
## 📄 License
175175

176-
ISC License - See [LICENSE](LICENSE) for details.
176+
MIT License - See [LICENSE](LICENSE) for details.
177177

178178
**A product by [Humanjava Enterprises Inc](https://humanjava.com)**

docs/index.html

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,16 @@ <h1>NostrKey</h1>
332332
</div>
333333
</header>
334334

335+
<section style="background: var(--bg-card); border: 2px solid var(--danger);">
336+
<h2 style="color: var(--danger);">No Cryptocurrency or Token</h2>
337+
<p>
338+
<strong style="color: var(--danger);">NostrKey and Humanjava Enterprises Inc. do not have a cryptocurrency, token, or coin. Nor will there be one.</strong>
339+
</p>
340+
<p style="color: var(--text-muted);">
341+
If anyone suggests, promotes, or sells a cryptocurrency associated with NostrKey or Humanjava Enterprises, they are acting fraudulently. Report scams via <a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/issues" style="color: var(--accent-secondary);">GitHub Issues</a>.
342+
</p>
343+
</section>
344+
335345
<section>
336346
<h2>Features</h2>
337347
<div class="features-grid">
@@ -355,6 +365,10 @@ <h4>🔑 API Key Storage</h4>
355365
<h4>🔄 Cross-Device Sync</h4>
356366
<p>Profiles, vault, and settings sync via Google/iCloud</p>
357367
</div>
368+
<div class="feature">
369+
<h4>🛡️ Master Password</h4>
370+
<p>Keys encrypted at rest with configurable auto-lock</p>
371+
</div>
358372
<div class="feature">
359373
<h4>👤 Multi-Profile</h4>
360374
<p>Manage multiple Nostr identities with per-site permissions</p>
@@ -363,6 +377,10 @@ <h4>👤 Multi-Profile</h4>
363377
<h4>📱 Cross-Platform</h4>
364378
<p>Chrome, Safari (macOS + iOS) support</p>
365379
</div>
380+
<div class="feature">
381+
<h4>🔓 Open Source</h4>
382+
<p>Fully auditable — no tracking, no analytics, no data collection</p>
383+
</div>
366384
</div>
367385
</section>
368386

@@ -459,6 +477,7 @@ <h2>NIPs Supported</h2>
459477
<li><strong>NIP-19</strong> — Bech32 encoding (npub, nsec)</li>
460478
<li><strong>NIP-44</strong> — Encrypted messaging v2 (ChaCha20-Poly1305)</li>
461479
<li><strong>NIP-46</strong> — Nostr Connect / nsecBunker</li>
480+
<li><strong>NIP-49</strong> — Encrypted key export (ncryptsec)</li>
462481
<li><strong>NIP-78</strong> — App-specific data (vault storage)</li>
463482
</ul>
464483
</section>
@@ -468,7 +487,7 @@ <h2>NIPs Supported</h2>
468487
<p>
469488
Created by <a href="https://humanjava.com">Humanjava Enterprises Inc</a> ·
470489
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src">Source Code</a> ·
471-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/blob/main/LICENSE">ISC License</a>
490+
<a href="license.html">MIT License</a>
472491
</p>
473492
<p style="margin-top: 8px;">
474493
<a href="support.html">Support</a> ·

docs/license.html

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
<!DOCTYPE html>
2+
<html lang="en" style="background:#272822">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>License - NostrKey</title>
7+
<meta name="description" content="MIT License for NostrKey browser extension - open-source Nostr key management.">
8+
9+
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><circle cx='50' cy='50' r='45' stroke='%23a6e22e' stroke-width='4' fill='%233e3d32'/><path d='M35 50L45 60L65 40' stroke='%23a6e22e' stroke-width='6' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>">
10+
11+
<style>
12+
:root {
13+
--bg: #272822;
14+
--bg-card: #3e3d32;
15+
--accent: #a6e22e;
16+
--accent-secondary: #66d9ef;
17+
--text: #f8f8f2;
18+
--text-muted: #8f908a;
19+
--danger: #f92672;
20+
}
21+
22+
* {
23+
margin: 0;
24+
padding: 0;
25+
box-sizing: border-box;
26+
}
27+
28+
body {
29+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
30+
background: var(--bg);
31+
color: var(--text);
32+
line-height: 1.6;
33+
min-height: 100vh;
34+
}
35+
36+
.container {
37+
max-width: 900px;
38+
margin: 0 auto;
39+
padding: 40px 24px;
40+
}
41+
42+
header {
43+
text-align: center;
44+
margin-bottom: 48px;
45+
}
46+
47+
.logo {
48+
width: 60px;
49+
height: 60px;
50+
margin-bottom: 12px;
51+
}
52+
53+
h1 {
54+
font-size: 2.5rem;
55+
color: var(--accent);
56+
margin-bottom: 8px;
57+
}
58+
59+
.last-updated {
60+
color: var(--text-muted);
61+
font-size: 0.875rem;
62+
}
63+
64+
.back-link {
65+
display: inline-flex;
66+
align-items: center;
67+
gap: 8px;
68+
color: var(--accent-secondary);
69+
text-decoration: none;
70+
margin-bottom: 24px;
71+
font-size: 0.875rem;
72+
}
73+
74+
.back-link:hover {
75+
text-decoration: underline;
76+
}
77+
78+
section {
79+
background: var(--bg-card);
80+
border-radius: 16px;
81+
padding: 32px;
82+
margin-bottom: 24px;
83+
}
84+
85+
h2 {
86+
color: var(--accent);
87+
font-size: 1.75rem;
88+
margin-bottom: 16px;
89+
}
90+
91+
p {
92+
margin-bottom: 12px;
93+
color: var(--text);
94+
}
95+
96+
a {
97+
color: var(--accent-secondary);
98+
text-decoration: none;
99+
}
100+
101+
a:hover {
102+
text-decoration: underline;
103+
}
104+
105+
.license-text {
106+
background: var(--bg);
107+
border-left: 4px solid var(--accent);
108+
padding: 24px;
109+
border-radius: 8px;
110+
margin: 16px 0;
111+
font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
112+
font-size: 0.875rem;
113+
white-space: pre-wrap;
114+
line-height: 1.7;
115+
}
116+
117+
strong {
118+
color: var(--accent);
119+
}
120+
121+
footer {
122+
text-align: center;
123+
padding: 40px 24px;
124+
color: var(--text-muted);
125+
font-size: 0.875rem;
126+
}
127+
128+
footer a {
129+
color: var(--accent);
130+
}
131+
132+
@media (max-width: 600px) {
133+
h1 {
134+
font-size: 2rem;
135+
}
136+
137+
section {
138+
padding: 24px;
139+
}
140+
141+
.license-text {
142+
padding: 16px;
143+
font-size: 0.8rem;
144+
}
145+
}
146+
</style>
147+
</head>
148+
<body>
149+
<div class="container">
150+
<a href="index.html" class="back-link">
151+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
152+
<path d="M19 12H5M12 19l-7-7 7-7"/>
153+
</svg>
154+
Back to Home
155+
</a>
156+
157+
<header>
158+
<svg class="logo" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
159+
<circle cx="50" cy="50" r="45" stroke="#a6e22e" stroke-width="4" fill="#3e3d32"/>
160+
<path d="M35 50L45 60L65 40" stroke="#a6e22e" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
161+
</svg>
162+
<h1>MIT License</h1>
163+
<p class="last-updated">Open-Source Software</p>
164+
</header>
165+
166+
<section>
167+
<h2>License</h2>
168+
<p>
169+
NostrKey is open-source software released under the <strong>MIT License</strong>. You are free to use, modify, and distribute this software in accordance with the terms below.
170+
</p>
171+
172+
<div class="license-text">MIT License
173+
174+
Copyright (c) 2024 Ryan Breen
175+
176+
Permission is hereby granted, free of charge, to any person obtaining a copy
177+
of this software and associated documentation files (the "Software"), to deal
178+
in the Software without restriction, including without limitation the rights
179+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
180+
copies of the Software, and to permit persons to whom the Software is
181+
furnished to do so, subject to the following conditions:
182+
183+
The above copyright notice and this permission notice shall be included in all
184+
copies or substantial portions of the Software.
185+
186+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
187+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
188+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
189+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
190+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
191+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
192+
SOFTWARE.</div>
193+
</section>
194+
195+
<section>
196+
<h2>Source Code</h2>
197+
<p>
198+
The complete source code for NostrKey is publicly available:
199+
</p>
200+
<p>
201+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="_blank">
202+
https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src
203+
</a>
204+
</p>
205+
</section>
206+
</div>
207+
208+
<footer>
209+
<p>
210+
A product by <a href="https://humanjava.com">Humanjava Enterprises Inc</a> ·
211+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src">Source Code</a> ·
212+
<a href="license.html">MIT License</a>
213+
</p>
214+
<p style="margin-top: 8px;">
215+
<a href="index.html">Home</a> ·
216+
<a href="support.html">Support</a> ·
217+
<a href="privacy.html">Privacy Policy</a> ·
218+
<a href="terms.html">Terms & Conditions</a>
219+
</p>
220+
</footer>
221+
</body>
222+
</html>

docs/privacy.html

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@
195195
<path d="M35 50L45 60L65 40" stroke="#a6e22e" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
196196
</svg>
197197
<h1>Privacy Policy</h1>
198-
<p class="last-updated">Last Updated: February 18, 2026</p>
198+
<p class="last-updated">Last Updated: February 21, 2026</p>
199199
</header>
200200

201201
<section>
@@ -246,12 +246,23 @@ <h3>What We Store Locally</h3>
246246

247247
<h3>How Data is Stored</h3>
248248
<ul class="checklist">
249-
<li>All data is stored locally in your browser using Chrome's storage API</li>
249+
<li>All data is stored locally in your browser using the browser's storage API</li>
250250
<li>Private keys can be optionally encrypted with a master password</li>
251-
<li>Data never leaves your device (except when using nsecBunker remote signing)</li>
252-
<li>No cloud storage or external servers are used</li>
253-
<li>Data persists only in your browser's local storage</li>
251+
<li>Data never leaves your device except: (a) when using nsecBunker remote signing, (b) when cross-device sync is enabled, or (c) when publishing to Nostr relays you configure</li>
252+
<li>Data persists in your browser's local storage</li>
254253
</ul>
254+
255+
<h3>Cross-Device Sync (Optional)</h3>
256+
<p>
257+
If you enable "Sync across devices" in Settings, NostrKey mirrors a subset of your data to your browser's built-in sync storage:
258+
</p>
259+
<ul>
260+
<li><strong>Chrome:</strong> syncs via your Google account (<code>storage.sync</code>)</li>
261+
<li><strong>Safari (16+):</strong> syncs via iCloud (<code>storage.sync</code>)</li>
262+
</ul>
263+
<p><strong>What is synced:</strong> profiles (without per-site permissions), relay settings, feature flags, vault documents, and API keys.</p>
264+
<p><strong>What is never synced:</strong> master password hash, password salt, bunker session tokens, and per-site permission histories.</p>
265+
<p>You can disable sync at any time in Settings. When disabled, no data is written to <code>storage.sync</code>.</p>
255266
</section>
256267

257268
<section>
@@ -437,7 +448,7 @@ <h2>Legal Compliance</h2>
437448
<p>
438449
A product by <a href="https://humanjava.com">Humanjava Enterprises Inc</a> ·
439450
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src">Source Code</a> ·
440-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/blob/main/LICENSE">ISC License</a>
451+
<a href="license.html">MIT License</a>
441452
</p>
442453
<p style="margin-top: 8px;">
443454
<a href="index.html">Home</a> ·

0 commit comments

Comments
 (0)