Skip to content

For the complete documentation index, see llms.txt. The full corpus is available at llms-full.txt. This page is also available as Markdown by appending .md to the URL.

Getting started

At the end of setup you have three things: a handle at realhandles.com/<you>, an Ed25519 signing key that only you hold, and a signed file that ties the two together and can be checked by anyone, with no help from us.

Verify at least one account before you pick a handle. The handle gate reads the proofs already attached to your login, so a handle of 8 characters or fewer is only offered once you hold a matching proof. Proofs are stored against the login, not against an identity, which is exactly why you can verify before you have claimed anything.

If you would rather not decide yet, onboarding fills in a long default handle for you. Long handles are open to anyone, so nothing is at stake in taking one, and you can move to a short one later once you have proved it.

  1. Sign in. This answers one question: which identity row you are allowed to edit. It never signs anything on your behalf. See Your signing key.
  2. Verify an account. GitHub, X, YouTube, Bluesky, TikTok, a domain, a wallet, a Nostr key. See Verifying an account.
  3. Pick a handle. The tier is decided by length. See the table below.
  4. Make your key. It is generated in your browser. You choose a backup passphrase and download an encrypted backup file.
  5. Publish. Your key signs a manifest listing your accounts, and that signed file becomes your public proof.
LengthTierWhat it takes
9 or moreOpenFirst come, first served. A matching proof adds a namesake badge.
3 to 8ProtectedOne matching verified account on a key platform, or a matching domain you control.
1 to 2ReservedA strong match: a matching .com, or a matching handle on X, YouTube, TikTok, Instagram, or LinkedIn.

A match means the proof carries the same name as the handle: @ben on X for /ben, or ben.com for /ben. Cheap TLDs score below the protected threshold on purpose, so nobody takes a scarce name by spending a dollar on a domain. The scarcity is borrowed from the source platform: @ben on X is globally unique and hard to get, which is what makes holding it a real claim to the name.

The RealHandles dashboard with the key unlocked, showing the sign button and the Accounts, Profile, Disavow, Publish and Data tabs

The dashboard once the key is unlocked. Everything you can change lives under one of those five tabs, and the sign button at the top is what makes any of it public.

  • Your encrypted key backup, plus the passphrase. The file is useless without the passphrase, and the passphrase is useless without the file. Keep the file somewhere that is not the device you use every day.
  • Your recovery code. It is a key you designate in advance, published inside your manifest, and it is the only way back in if the signing key is gone. See Recovery and rotation.

Changing something on RealHandles does not change your proof. An added account, a new anchor, a reordered list: all of it lands on realhandles.com immediately, and reaches your signed proof only when you publish again and your key signs the new version. Until you do, anyone verifying you sees the previous version, which is the correct answer to give.

The signed manifest explains why it works that way.

A published RealHandles profile, showing verified accounts above claimed ones

Verified accounts sit above claimed ones, under separate headings, with the badges that say what has been checked: how many accounts are verified, the trust score, whether the handle is a namesake, whether the history is anchored in Bitcoin, and how many signed versions exist.

The app runs the whole of setup, and everything else on this page. What it does not run is rotation and recovery, which stay on the website.

Four tabs along the bottom:

TabWhat it is
IdentityYour own identity, and everything you change about it
CheckChecking somebody else’s handle
DirectoryPublished identities, searchable
KeysThe signing key on this phone

Check is about someone else. Proving your own accounts is the Verify section inside Identity. Those two words sound alike and do opposite jobs, which is why the app keeps them on separate tabs.

Identity is split into five sections:

SectionWhat lives there
VerifyProving an account is yours, and the order the proved ones appear in
ClaimAccounts you say are yours, with nothing checking it
DisavowSigned “not me” statements
ProfileDisplay name, photo, person or organization, and the handle
DataAnchor, signed history, export, reporting a profile, and deleting the identity

Claim your handle, on the Identity tab, is the same five steps in the same order. Pick the name, the phone generates the key, you set a backup passphrase and save the encrypted backup somewhere that is not the phone, and only then is the handle claimed and the public key registered. The private half never leaves the device.

If you already have an identity, do not make a second key. Move the one you have: on realhandles.com open the Profile tab, choose Show as QR code, and scan it from the Keys tab. See Your signing key.

Publishing is Publish & re-sign on the Identity tab, and it needs the key on the phone and unlocked, which is the same rule the website follows.