# Licence and Attribution **Bubble Hub — August 2026** Copyright © 2026 Nabil Izagaren, for Solidarity Works! International. Solidarity Works! International UG (haftungsbeschränkt) i.Gr., Schlegelstr. 15, 10115 Berlin, Germany. --- ## Summary Bubble Hub is part of Project Granny Bot, and **[the corpus licence](../LICENSE.md) governs it**. It is entirely code, so the code terms apply: **AGPL-3.0-or-later**. Run it, modify it, host it, and if you run a modified version as a service, publish your modifications. This file is not a second licence. It exists for the three things that are true of this page and of nothing else in the corpus: it launches other people's services and must say so, it touches keys and must say how, and it names the specifications it implements. Relicensing is not retroactive: a copy obtained under MIT, which is what versions up to 1.15 carried, remains under MIT **for that copy**. --- ## Attribution Not legally required beyond retaining the notice below. The requested form, as a courtesy: > Nabil Izagaren, *Bubble Hub*, in *Project Granny Bot* (Solidarity Works! International, 2026). https://solidarityworksinternational.org/projectgrannybot/bubble-hub/ Where a derivative modifies the material, please say so, so that the modifications are not attributed to the original author. Under German copyright law the right to be named as author is a statutory right (§ 13 UrhG) rather than a licence term, and survives independently of the licence. This is stated for clarity, not as a threat; the work is published in order to be used. --- ## Not affiliated with Soapbox This is an unofficial launcher. **Soapbox**, **Ditto**, **Armada**, **Agora**, **Shakespeare**, **Nests**, **ZapTrax**, **Podstr**, **NostrHub**, **Nostrify**, **MKStack** and **Mostr** are the names of other people's projects, used here only to identify and link to the services they name. No endorsement by, or affiliation with, Soapbox Pub or any of its contributors is claimed or implied. Every bubble links to the service's own site. Nothing here is a copy of, proxy for, or interface to any of them, and no code from any of them is included. The licence covers this repository's own code. It grants nothing in respect of anyone else's names, marks or software. Nor does it grant anything in respect of this project's own names. **Bubble Hub**, **Project Granny Bot**, **Granny Bot** and **Solidarity Works! International** are not licensed by it: a fork must run under its own name, and is asked to say accurately what it derives from. --- ## Third-party material None is bundled. The page has no dependencies and no build step: bech32 and secp256k1 are implemented directly in `nostr.js` rather than pulled from a package, and no fonts, scripts, styles or images are loaded from any other origin. The Nostr protocol specifications the code implements (NIP-01, NIP-19, NIP-44, NIP-65, NIP-78, NIP-B0 and NIP-5A, BIP-340 for key derivation, and the Blossom BUDs) are public domain. Implementing a public specification places no obligation on you under this licence; only this code does. --- ## Privacy The page has no analytics, no cookies and no server-side state. A key pasted into it is used once, in the browser, to derive the corresponding public key, and is then discarded: it is never stored and never transmitted. Only the public key is kept, in `localStorage`, so that a reload can restore the view. Reading a profile necessarily discloses the public key being looked up to the relays queried. Those relays are listed on the page and named in `nostr.js`. --- ## Warranty None. See sections 15 and 16 of the AGPL, which disclaim it in the usual terms. Pasting a secret key into any web page is a habit worth being sparing with. This page offers a NIP-07 browser extension as the first option precisely so that it is not necessary here, and the operator of this deployment cannot read a key that never leaves your browser. That is a statement about how the code works, not a guarantee about any copy of it you did not verify yourself. --- ## Full licence text **AGPL-3.0-or-later.** The complete text is in [`COPYING-AGPL-3.0.txt`](../COPYING-AGPL-3.0.txt) at the root of the corpus, verbatim from . The name reservation, the two grants that override NonCommercial elsewhere in the corpus, and the note on contributions and relicensing are all in [the corpus licence](../LICENSE.md). Requests for other terms, including a commercial licence, go to .