pyrtan / sourcev0.19.0 · main

pyrtan / site / names / README.md

2,586 bytes · last changed 2026-10-28 in Docs: a root in a browser and its backup, any network's names, the console with no shell

Names at pyrtan.com

A name here is <your GitHub login>@pyrtan.com, pointing at your pyrtan identity (a key: pyr: and 56 characters). Anyone resolves it with

pyrtan id resolve alice@pyrtan.com

which fetches https://pyrtan.com/.well-known/pyrtan/name/alice.json, checks that your key signed it, and pins the answer: if this file ever names a different key, everyone who resolved it before is told rather than switched. pyrtan.com is one name provider among any number; your identity is the key, and works without a name.

Getting one

In a browser: open the console's Identity tab (<https://pyrtan.com/console/>), *Make my identity*, save your backup, then *Claim a name* with your GitHub login. GitHub's own new-file page opens with site/names/<login>.json filled in; choose *Propose changes* and *Create pull request*, from that GitHub account.

From a shell:

pip install 'pyrtan[identity]' pyrtan id new # once; back up the key it names pyrtan id name <login>@pyrtan.com --into <a checkout of this repository>

That writes site/names/<login>.json (the claim, signed by your key, with your numeric GitHub user id, which it looks up from your login; pass --github ID to give it yourself) and site/names/<login>.id.json (your identity document: routes, devices, revocations). Commit both and open a pull request from the GitHub account the name is. When your identity document changes (a device added or revoked), copy the new one over with pyrtan id show --json > site/names/<login>.id.json and open another.

What the gate checks

The catalog-gate workflow runs main's site/gate.py on the pull request (a pull request that edits the gate is still judged by main's):

A maintainer merges; the pages workflow publishes within the hour. A maintainer may merge over the gate to remove a name on its owner's request or for abuse. The design is in _meta/identity.md §6.