What it unlocks
Nothing enforces the retention row on a relay you run yourself. There is no sweep: the
Cloudflare Worker template ships no cron, and the Node self-host keeps them until you remove them
unless you set
SHOT_RETENTION_DAYS. That row describes the entitlement, which is what the hosted
service applies to a Free account. Your disk is yours and your licence does not change that.
Everything else is the same on both. Every destination, every widget feature, the whole admin
panel, the API, and the self-hosting story are free forever and always will be.
Buying
$79, once, at burnsidesteps.com. That covers every version, including ones we have not written yet. There is no renewal, no update window, and no maintenance fee. A key bought today still works on a release we ship in five years.What arrives
A key beginningbsl1, by email, immediately after checkout.
It is signed with Ed25519 and your relay verifies it locally, against a public key compiled into
the relay itself. There is no licence server. Activation works on a machine with no outbound
internet, we never learn that you activated it, and nothing stops working if we are down or if we
stop existing.
The key carries no personal data. Its payload is a licence id, the tier, and the date it was
issued, encoded rather than encrypted, so anyone you send it to can read all of it. Your email
address is not in there: we keep the record of which licence went to which buyer in our own
database, where it is needed for support and for sending you the key again. That means a key is
safe to paste into a support thread or a screenshot, and it also means a key does not identify
you, so anyone holding it can activate it.
Activating it
- Open the
/adminpath on the domain where you deployed your relay. - Go to the Licence tab.
- Paste the key and press Activate.
Plan: Pro, with the first part of the licence id and the date it was bought.
Quote that id if you ever write to support@burnsidesteps.com about the licence. Remove takes it off again and drops
the relay back to Free.
If the key is rejected, the panel says so. The two reasons are a key that was mistyped or truncated
in transit, and a key that was minted for a different signing key than the one your relay checks
against, which only happens if you have set LICENSE_PUBLIC_KEY yourself.
Minting your own licences
Forks that run their own licensing setLICENSE_PUBLIC_KEY to their own key, which overrides the
built-in one. relay/scripts/gen-license-keypair.ts generates a pair and
relay/scripts/sign-license.ts signs keys with it, printing the key on stdout and its licence id
on stderr so you can record who each one went to. Leave the variable unset and blank and your
relay checks against ours, which is what makes a key bought from us work with no setup.