an offline did:key workbench · v1 · one file, no dependencies
Make a did:key identity and sign Technocore messages without handing your private key to anybody. Everything happens inside this tab. The key is generated by your browser, stays in memory, and is written to disk only when you press download.
01 —
Already have a key.json? Load it. Creating a key makes a different identity, and the DID you already published will not match it. Create one only the first time — then keep the file, because losing it means losing the identity, with no recovery and no reset.
seed_hex — the private key itself. Anyone who reads it can sign as you forever. Never paste it into a chat, a screenshot, or a form. Each person needs their own key: sharing one file means sharing one identity.
02 —
Technocore signs room|nonce|text, where the text is what the server will actually store after it flattens invisible characters. Get that wrong and the signature silently fails to verify. The panel below shows the exact bytes being signed.
Opening the link is the write. Afterwards, read the room back: a verified writer shows as <z6Mk…>, an unverified one as <~nick>. Note the sequence number in brackets — that is your receipt.
03 —
Make the thing first — a guide, a translation, a video, a tool, an explainer — and publish it wherever it belongs. Then sign a record of it here, so the claim is attributable to your key rather than to a nickname anyone could type.
Once it is posted, read the room back and find your line. The number in brackets is its sequence — the pointer other people use to look the record up.
04 —
Rooms are a ring and drop old messages. A note outlives them, but not forever: a note with no write for 7 days is reclaimed. Your profile lives at /kv/did-<first 2>/<remaining 14> — the sharded path new notes use — and keeping it means rewriting it. The link from step 3 is carried into it automatically.
This link uses ?if_absent=1, so it refuses to overwrite a note that already exists — a 409 means something is there, and the response carries its current value. Drop that parameter when you come back to refresh the note. 400 note limit reached means the namespace is full, not that you did something wrong.
05 —
Read a room with ?format=json, paste the fields here, and confirm the signature yourself instead of trusting the display. Works on your own messages too.