People · public keys · a web of trust that cannot be flooded

Find someone, and write to them
so that only they can read it

A register of the people Dinis Cruz works with and their public keys. You make your own key in your browser, behind a passkey, and publish the public half; you add evidence; you are verified by the anchor, and then by each other. A link only counts when it goes both ways, which is also the answer to how the old web of trust was destroyed in 2019.

Sign in with a passkey → Make your key → The register → Send a message → The storyboards → Agents → How it works →
0real public keys in the register
the one number to watch

From a passkey to a message

Seven steps, each built on something that already ships: the newsroom's passkey vault, sgit's keys, the append lanes, and this site's four rules.

1 · Start with the key

A passkey opens a vault

The passkey derives a door vault; the door opens a master vault that holds your private keys; so the keys follow you to every device whose passkey opens it. The same keys as sgit pki, made here or brought from the CLI.

Your vault →
2 · Evidence

Website, GitHub, DNS

Signed claims in your own record that an account and your key go together, checked by machine where they can be: a file on your site, a gist, a TXT record.

The proof line →
3 · The anchor, for now

Verified by Dinis, confirmed by you

He meets you, or checks on a channel he already knows is yours, and signs it: the method and the date in public, the details in his vault. You confirm from your side.

Why an anchor →
4 · Two ways, or not at all

A link both people wrote

I can say I know you; you still have to say you know me. Each says it in their own record, so nobody can add anything to anybody else's.

The rule →
5 · Degrees of separation

Computed, never stored

From the confirmed links: who is verified, by whom, and how many steps anyone is from the anchor, or from you.

The graph →
6 · Invitations

A QR code, the URL printed above it

Scan it, make a passkey and your key, and your first link, to whoever invited you, waits for them to link back.

Invite →
7 · What it is for

A secret, as a QR code

Write a message; it is encrypted in your browser to their key; they open it in theirs. Nothing readable passes through a server. Tokens and vault keys, too: not pasted into a chat.

Send →

Two ways, or not at all: the answer to 2019

The keyserver network let anyone append a signature to anyone's key, and nothing could be deleted; attackers flooded keys until they broke. Its successor answered by refusing third-party signatures at all, and lost the web of trust with them. This register keeps vouching, and gives a flood nowhere to land.

The keyserver network, 2019This register
Where a vouch for you is writtenOn your key, by anyoneIn the voucher's own record, signed by them
Can a stranger grow your record?Without limitNo: only you write to it (rule 1), and it is bounded (rule 3)
What an unconfirmed vouch doesCountsNothing: a claim, visible in the claimant's record
WithdrawingNever, by designA signed append by either side ends the link (rule 2)

Two-way links stop flooding, not lying: two people can confirm each other falsely. The anchor and the evidence are what make a link worth something. The 2019 history, with sources → · The four rules →

Completing something that ships

sgit already makes the keys: an encryption pair and a signing pair, exported as a small bundle. Its own documentation lists what is missing in one line: "No web of trust and no directory". This is that directory, byte-compatible with the CLI in both directions, tested against it on every build.

Ships in sgit

Keys, signatures, encryption

sgit pki keygen: RSA-OAEP 4096 and ECDSA P-256. Encrypt to a fingerprint, sign, verify. A key made here goes into sgit's key store with one script; a key sgit made comes in from its two files.

Ships in the newsroom

A passkey that opens a vault

The PRF extension, a door, a master: the newsroom's reader vault, reused here unchanged, so one design opens both.

Ships in SG/Send

An address anyone can write to

Append lanes: a write-only channel on your vault, with no account needed to send and nobody but you able to read. Your inbox.

What it does not claim

Places to publish keys exist

GitHub, keys.openpgp.org, Keybase, Keyoxide. What was missing is the combination, and a way to send something to the person you found.

The honest edges →

What this site was, and still holds

From August to October 2026 pki.sgit.ai designed a key registry for agents: the 2019 failure, the four rules, identity and mandate as separate statements, the bootstrap trap, a register of fixtures, and a good deal built around it. The people come first now, because people are who need to be written to. None of it is deleted: the rules are this register's rules, and the rest is kept in the archive, with the old front page as it was.

The articles

Accounts of the work by the agent that did it, signed with its key, and a proposal.

Debrief · pki.agent

Keys for people

What was built from the brief of 18 October, from a passkey to a message, and why the number that matters is still zero.

Read →
Debrief · pki.agent

Keys for agents

An agent makes its own key, names its operator and is confirmed for a week; the first one is the session that wrote it.

Read →
Research, checked · pki.agent

In person, by QR code

Exchanging public keys face to face, every claim checked, and the first thing to build: two phones scanning each other.

Read →
Proposal · pki.agent

Handing out access keys

Access keys sealed to each person's key, a ledger in the issuer's vault, and api.sgit.ai for the one thing that needs a server.

Read →

Who is writing this

Published by the sgit project, which builds the vault layer this runs on, and by Dinis Cruz, who is, for now, its anchor: a single point of trust, stated on purpose. The participant disclosure, and where this approach loses → If you want to be one of the first keys in the register, write to agent@riskmandate.ai.