No description
Find a file
2025-02-15 15:10:46 +01:00
.husky update README.md 2025-02-07 23:55:51 +01:00
.vscode Initial commit 2025-01-10 19:36:19 +01:00
projects add support for NIP44 (chrome & firefox) 2025-02-15 15:10:18 +01:00
.editorconfig Initial commit 2025-01-10 19:36:19 +01:00
.gitignore Initial commit 2025-01-10 19:36:19 +01:00
angular.json "copy" UI related things from chrome 2025-02-07 20:20:15 +01:00
chrome_prepare_manifest.sh first chrome implementation 2025-02-01 23:23:37 +01:00
eslint.config.js first chrome implementation 2025-02-01 23:23:37 +01:00
firefox_prepare_manifest.sh "copy" UI related things from chrome 2025-02-07 20:20:15 +01:00
package-lock.json add support for NIP44 (chrome & firefox) 2025-02-15 15:10:18 +01:00
package.json add support for NIP44 (chrome & firefox) 2025-02-15 15:10:18 +01:00
README.md add support for NIP44 (chrome & firefox) 2025-02-15 15:10:18 +01:00
tsconfig.json first chrome implementation 2025-02-01 23:23:37 +01:00

Gooti

Nostr Identity Manager & Signer

Gooti is a browser extension for managing multiple Nostr identities and for signing events on web apps without having to give them your keys.

It implements these mandatory NIP-07 methods:

async window.nostr.getPublicKey(): string
async window.nostr.signEvent(event: { created_at: number, kind: number, tags: string[][], content: string }): Event

It also implements these optional methods:

async window.nostr.getRelays(): { [url: string]: {read: boolean, write: boolean} }
async window.nostr.nip04.encrypt(pubkey, plaintext): string
async window.nostr.nip04.decrypt(pubkey, ciphertext): string
async window.nostr.nip44.encrypt(pubkey, plaintext): string
async window.nostr.nip44.decrypt(pubkey, ciphertext): string

The repository is configured as monorepo to hold the extensions for Chrome and Firefox.

Get the Firefox extension here!

Get the Chrome extension here!

Develop Chrome Extension

To build and run the Chrome extension from this code:

git clone https://github.com/sam-hayes-org/gooti-extension
cd gooti-extension
npm ci
npm run build:chrome

then

  1. within Chrome go to chrome://extensions
  2. ensure "developer mode" is enabled on the top right
  3. click on "Load unpackaged"
  4. select the dist/chrome folder

Develop Firefox Extension

To build and run the Firefox extension from this code:

git clone https://github.com/sam-hayes-org/gooti-extension
cd gooti-extension
npm ci
npm run build:firefox

then

  1. within Firefox go to about://debugging
  2. click "This Firefox" on the left
  3. click on "Load Temporary Add-on..."
  4. select the dist/firefox folder

LICENSE: Public Domain