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.

Exporting your data

Everything that matters about your identity is a file you can download right now, and the important ones are public, so you do not even need to be signed in to fetch them.

FileWhereWhat it is for
realhandles.jsonrealhandles.com/<you>/realhandles.jsonYour current signed manifest. The proof itself.
realhandles-chain.jsonrealhandles.com/<you>/realhandles-chain.jsonEvery version ever published, oldest first.
realhandles.otsrealhandles.com/<you>/realhandles.otsThe OpenTimestamps proof that the current version existed by a given Bitcoin block.
did.jsonrealhandles.com/<you>/did.jsonA W3C DID document, so the profile resolves as a did:web for standard DID tooling.
realhandles-<you>.jsonThe Export action in your dashboardOur full copy: handle, profile, accounts, anchor, and the signed manifest.
realhandles-key.jsonDownloaded when you make or re-wrap your keyYour Identity Backup.

The first four are URLs and need no app at all. Anything that can fetch a page can fetch them.

realhandles.json is the one that survives us. It is a compact JWS signed by your key. Anyone can check it against your public key with off-the-shelf tooling and no access to RealHandles. If this site disappeared tomorrow, this file still proves what it proves.

realhandles-chain.json is the audit trail. The current manifest tells you what is true now. The chain tells you how it got that way, including any key change and whether it was authorized. See Reading the history.

The dashboard export is the directory copy. It lists what we hold: your handle, your profile, your accounts, your anchor, and the signed manifest. Useful as a single snapshot, and honest about the split: the signed manifest inside it verifies independently, and the rest is our record.

realhandles-key.json is not an export of your identity. It is an encrypted copy of your signing key, and it is the only file on this page that must stay private. See Your signing key.

Both clients produce the same file. What differs is what you can do with it once it exists.

Export everything as JSON, on the Data tab, downloads it. Next to it is Verify my proof independently, which runs the same check a stranger would run.

Everything held about you in one file

Everything held about you in one file. The signed manifest inside it verifies without RealHandles, which is the point of the export.

import { verifySignedManifest } from '@realhandles/verify';
const file = await fetch('https://realhandles.com/david/realhandles.json').then((r) => r.json());
const { valid, keyId, manifest } = await verifySignedManifest(file);

@realhandles/verify is the same verification code this site runs, published on npm and open source. Using it is convenient rather than required: the format is a standard EdDSA JWS, so any JOSE library gets the same answer.

The other direction works too. Point the importer at a page you control, or upload a file, and it pulls out profiles from rel="me" links, schema.org sameAs, or a plain JSON link list, then marks the ones already attached to you. It is a shortcut for entering accounts, not a proof. Each one still has to be verified or claimed. See Verifying an account.

Deleting the identity takes it off our files. Everything you already published stays published: copies people downloaded, the anchor file on your own domain, and the Bitcoin timestamps, none of which we can recall. Export first if you want a copy of the directory record.