Skip to content

Commit b68db7d

Browse files
Update: Add installation guide, change to AGPL, emphasize did:nostr and Solid
- Add comprehensive installation instructions to test page - Change license from MIT to AGPL-3.0 - Update all descriptions to emphasize did:nostr and Solid authentication - Add did:nostr specification link throughout - Update popup UI to mention did:nostr and Solid
1 parent 50ad6e9 commit b68db7d

7 files changed

Lines changed: 86 additions & 36 deletions

File tree

LICENSE

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
1-
MIT License
1+
GNU AFFERO GENERAL PUBLIC LICENSE
2+
Version 3, 19 November 2007
23

3-
Copyright (c) 2026 JavaScriptSolidServer
4+
Copyright (C) 2026 JavaScriptSolidServer
45

5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
6+
This program is free software: you can redistribute it and/or modify
7+
it under the terms of the GNU Affero General Public License as published by
8+
the Free Software Foundation, either version 3 of the License, or
9+
(at your option) any later version.
1110

12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
11+
This program is distributed in the hope that it will be useful,
12+
but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
GNU Affero General Public License for more details.
1415

15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
16+
You should have received a copy of the GNU Affero General Public License
17+
along with this program. If not, see <https://www.gnu.org/licenses/>.

README.md

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# 🔑 Podkey
22

3-
> World-class Nostr wallet extension with Solid superpowers
3+
> Browser extension for **did:nostr** and **Solid** authentication
44
55
[![Version](https://img.shields.io/badge/version-0.0.4-blue.svg)](https://github.com/JavaScriptSolidServer/podkey/releases)
6-
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
6+
[![License](https://img.shields.io/badge/license-AGPL--3.0-green.svg)](LICENSE)
77
[![NIP-07](https://img.shields.io/badge/NIP--07-compatible-purple.svg)](https://github.com/nostr-protocol/nips/blob/master/07.md)
88
[![Test Page](https://img.shields.io/badge/test--page-live-brightgreen)](https://javascriptsolidserver.github.io/podkey/test-page/)
99

10-
**Podkey** is a beautiful, secure Nostr wallet browser extension that goes beyond basic key management. Built specifically for the Solid ecosystem, it provides seamless authentication to Solid pods while remaining fully compatible with the broader Nostr ecosystem.
10+
**Podkey** is a beautiful, secure browser extension for **did:nostr** and **Solid** authentication. It provides a NIP-07-compatible Nostr wallet that enables seamless authentication to Solid pods using [did:nostr](https://nostrcg.github.io/did-nostr/) identities, while remaining fully compatible with the broader Nostr ecosystem.
1111

1212
## ✨ What Makes Podkey Different
1313

@@ -19,12 +19,12 @@
1919
- 📊 **Trust management** with per-origin permissions
2020
- 🌈 **Delightful user experience** with intuitive design
2121

22-
### Solid Superpowers
22+
### did:nostr & Solid Superpowers
2323

24-
- **Zero-redirect authentication** to Solid servers
25-
- **Automatic signing** for trusted pods
26-
- **did:nostr identity** integration
27-
- **WebID linking** (coming soon)
24+
- **did:nostr identity** - Full support for [did:nostr](https://nostrcg.github.io/did-nostr/) decentralized identifiers
25+
- **Solid authentication** - Zero-redirect authentication to Solid servers using did:nostr
26+
- **Automatic signing** - Automatic signing for trusted Solid pods
27+
- **WebID linking** - Link did:nostr identities to Solid WebIDs (coming soon)
2828

2929
## 🚀 Quick Start
3030

@@ -223,7 +223,7 @@ npm test
223223

224224
## 🔐 did:nostr Identity
225225

226-
Podkey ensures all public keys are proper 64-character hexadecimal strings, making them compatible with the [did:nostr](https://github.com/w3c-ccg/did-method-nostr) specification:
226+
Podkey is built for **did:nostr** and **Solid** authentication. All public keys are proper 64-character hexadecimal strings, making them fully compatible with the [did:nostr specification](https://nostrcg.github.io/did-nostr/):
227227

228228
```javascript
229229
const pubkey = await window.nostr.getPublicKey()
@@ -233,9 +233,10 @@ const did = `did:nostr:${pubkey}`
233233

234234
This enables:
235235

236-
- ✅ Decentralized identity
236+
-**did:nostr** decentralized identifiers per [W3C specification](https://nostrcg.github.io/did-nostr/)
237+
-**Solid pod authentication** using did:nostr identities
237238
- ✅ Cross-platform identity portability
238-
-Solid pod authentication (future)
239+
-Verifiable credentials and authentication
239240

240241
## 📖 API Reference
241242

@@ -320,7 +321,7 @@ We love contributions! Here's how to get started:
320321

321322
## 📄 License
322323

323-
MIT License - see [LICENSE](LICENSE) for details
324+
AGPL-3.0 License - see [LICENSE](LICENSE) for details
324325

325326
## 🙏 Acknowledgments
326327

@@ -334,8 +335,10 @@ MIT License - see [LICENSE](LICENSE) for details
334335
- **GitHub**: https://github.com/JavaScriptSolidServer/podkey
335336
- **Issues**: https://github.com/JavaScriptSolidServer/podkey/issues
336337
- **Test Page**: https://javascriptsolidserver.github.io/podkey/test-page/
338+
- **did:nostr Specification**: https://nostrcg.github.io/did-nostr/
337339
- **NIP-07 Spec**: https://github.com/nostr-protocol/nips/blob/master/07.md
338340
- **NIP-98 Spec**: https://github.com/nostr-protocol/nips/blob/master/98.md
341+
- **Solid Project**: https://solidproject.org/
339342

340343
---
341344

USAGE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# 🚀 How to Use Podkey
22

3+
**Podkey** is a browser extension for **did:nostr** and **Solid** authentication. It provides NIP-07-compatible Nostr wallet functionality with seamless Solid pod authentication using [did:nostr](https://nostrcg.github.io/did-nostr/) identities.
4+
35
## Quick Start Guide
46

57
### Step 1: Install Dependencies

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"manifest_version": 3,
33
"name": "Podkey",
44
"version": "0.0.4",
5-
"description": "World-class Nostr wallet with Solid superpowers - your keys, your identity, your data",
5+
"description": "did:nostr and Solid authentication extension - NIP-07 wallet for decentralized identity",
66
"permissions": [
77
"storage",
88
"webRequest"

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "podkey",
33
"version": "0.0.4",
4-
"description": "World-class Nostr wallet extension with Solid superpowers - NIP-07 provider + auto-authentication",
4+
"description": "did:nostr and Solid authentication extension - NIP-07 provider for decentralized identity",
55
"main": "src/index.js",
66
"type": "module",
77
"scripts": {
@@ -24,7 +24,7 @@
2424
"pod"
2525
],
2626
"author": "JavaScriptSolidServer",
27-
"license": "MIT",
27+
"license": "AGPL-3.0",
2828
"repository": {
2929
"type": "git",
3030
"url": "https://github.com/JavaScriptSolidServer/podkey.git"

popup/popup.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<div class="header">
1313
<div class="logo">🔑</div>
1414
<h1>Welcome to Podkey</h1>
15-
<p class="subtitle">Your Nostr identity for the decentralized web</p>
15+
<p class="subtitle">did:nostr and Solid authentication for the decentralized web</p>
1616
</div>
1717

1818
<div class="section">
@@ -26,7 +26,7 @@ <h1>Welcome to Podkey</h1>
2626

2727
<div class="info-box">
2828
<p><strong>What is Podkey?</strong></p>
29-
<p>A world-class Nostr wallet with Solid superpowers. Store your cryptographic identity and authenticate seamlessly to Solid pods.</p>
29+
<p>A browser extension for <strong>did:nostr</strong> and <strong>Solid</strong> authentication. Store your cryptographic identity and authenticate seamlessly to Solid pods using did:nostr identities.</p>
3030
</div>
3131
</div>
3232

test-page/index.html

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,52 @@
219219
<div class="header">
220220
<h1>🔑 Podkey Test Page</h1>
221221
<p>Real-time diagnostics for NIP-07 extension testing</p>
222+
<p style="margin-top: 12px; font-size: 13px; color: #64748b;">
223+
Extension for <strong>did:nostr</strong> and <strong>Solid</strong> authentication
224+
</p>
225+
</div>
226+
227+
<div class="status-card" id="installationCard" style="display: none;">
228+
<h2>📦 Installation Instructions</h2>
229+
<div style="line-height: 1.8; font-size: 14px;">
230+
<p><strong>Don't have Podkey installed yet?</strong></p>
231+
<ol style="margin-left: 20px; margin-top: 12px;">
232+
<li style="margin-bottom: 8px;">
233+
<strong>Clone the repository:</strong><br>
234+
<code style="background: #f1f5f9; padding: 4px 8px; border-radius: 4px; font-size: 12px;">
235+
git clone https://github.com/JavaScriptSolidServer/podkey.git
236+
</code>
237+
</li>
238+
<li style="margin-bottom: 8px;">
239+
<strong>Install dependencies:</strong><br>
240+
<code style="background: #f1f5f9; padding: 4px 8px; border-radius: 4px; font-size: 12px;">
241+
cd podkey && npm install
242+
</code>
243+
</li>
244+
<li style="margin-bottom: 8px;">
245+
<strong>Build the extension:</strong><br>
246+
<code style="background: #f1f5f9; padding: 4px 8px; border-radius: 4px; font-size: 12px;">
247+
npm run build
248+
</code>
249+
</li>
250+
<li style="margin-bottom: 8px;">
251+
<strong>Load in Chrome:</strong>
252+
<ul style="margin-left: 20px; margin-top: 4px;">
253+
<li>Open <code style="background: #f1f5f9; padding: 2px 6px; border-radius: 4px; font-size: 11px;">chrome://extensions/</code></li>
254+
<li>Enable <strong>"Developer mode"</strong> (top-right toggle)</li>
255+
<li>Click <strong>"Load unpacked"</strong></li>
256+
<li>Select the <code style="background: #f1f5f9; padding: 2px 6px; border-radius: 4px; font-size: 11px;">podkey</code> directory</li>
257+
</ul>
258+
</li>
259+
<li>
260+
<strong>Reload this page</strong> and the extension should be detected!
261+
</li>
262+
</ol>
263+
<p style="margin-top: 16px; padding: 12px; background: #fef3c7; border-radius: 8px; border: 1px solid #fbbf24;">
264+
<strong>💡 Tip:</strong> Podkey is an extension for <strong>did:nostr</strong> and <strong>Solid</strong> authentication.
265+
Learn more at <a href="https://nostrcg.github.io/did-nostr/" target="_blank" style="color: #7c3aed; font-weight: 600;">did-nostr specification</a>
266+
</p>
267+
</div>
222268
</div>
223269

224270
<div class="status-card">
@@ -338,14 +384,16 @@ <h2>📊 Event Log</h2>
338384
function updateExtensionStatus() {
339385
const statusEl = document.getElementById('extensionStatus')
340386
const infoEl = document.getElementById('extensionInfo')
387+
const installCard = document.getElementById('installationCard')
341388

342389
if (typeof window.nostr !== 'undefined') {
343390
statusEl.className = 'status-indicator active'
391+
installCard.style.display = 'none'
344392
infoEl.innerHTML = `
345393
<strong>✅ Podkey Extension Detected</strong>
346394
<span class="badge badge-success">Active</span>
347395
<div style="margin-top: 8px; font-size: 12px; color: #64748b;">
348-
window.nostr is available
396+
window.nostr is available for <strong>did:nostr</strong> and <strong>Solid</strong> authentication
349397
</div>
350398
`
351399
log(
@@ -354,11 +402,12 @@ <h2>📊 Event Log</h2>
354402
)
355403
} else {
356404
statusEl.className = 'status-indicator error'
405+
installCard.style.display = 'block'
357406
infoEl.innerHTML = `
358407
<strong>❌ Podkey Extension Not Found</strong>
359408
<span class="badge badge-error">Not Installed</span>
360409
<div style="margin-top: 8px; font-size: 12px; color: #64748b;">
361-
window.nostr is undefined. Make sure the extension is installed and enabled.
410+
window.nostr is undefined. Install the extension for <strong>did:nostr</strong> and <strong>Solid</strong> support.
362411
</div>
363412
`
364413
log('Podkey extension not found - window.nostr is undefined', 'error')

0 commit comments

Comments
 (0)