blockchain.lucas.zip

Subject: verifiable credentials

Identity and provenance. Claims that anyone can check without asking the issuer. · Updated 26 August 2026

A school issues diplomas. An employer wants to check one. Today that means asking the school — by email, by phone, through a verification service that charges for the privilege — and trusting the answer. The school may be slow, closed, defunct, or, occasionally, lying on behalf of an alumnus. Build the version where the school’s attestation is public, permanent, and checkable by anyone against the school’s known address, without the school being involved in the check.

Why the chain is load-bearing

An issuer writes an attestation — “this address holds credential X, issued on this date, described by this document” — to a contract, signed by the issuer’s key. From that moment, anyone can verify it: read the contract, check the issuer’s address against the issuer’s published identity, check the document hash against the document they were handed. The issuer cannot later deny having issued it. Nobody can forge one without the issuer’s key. Nobody can delete it. And the check works if the issuer is offline, or gone.

What is still trusted: the issuer, entirely, for the truth of the claim. The chain proves the school said it; it does not prove the student passed. And the issuer keeps the power to revoke — which is a feature, and a trust relationship, and belongs in the roles table. Your design also has to answer how a verifier knows which address is really the school’s; that question has no purely on-chain answer, and pretending it does is the common mistake.

Actors

RoleDoes
IssuerIssues credentials to holders, revokes them
HolderOwns credentials, proves ownership to verifiers
VerifierChecks a credential’s existence, issuer, status, and content hash — with no account and no permission
Registry admin, if anyDecides who counts as an issuer — and this is the sensitive role
DeployerDeploys, and then — ideally — has no further power

Core features

Issuer, holder, verifier — and the verifier needs no wallet.

Issuer, holder, verifier — and the verifier needs no wallet.

Extensions

Traps

What the demo should show

Three profiles — issuer, holder, and a verifier with no wallet connected — on Base Sepolia. The issuer issues a credential to the holder; the event appears on the explorer. The verifier opens the verification page, pastes the credential’s identifier or the holder’s address, and sees: issued by whom, when, valid, content hash matching the document the holder provides. The holder proves control of the address by signing a challenge from the verifier’s page. Then the issuer revokes; the verifier refreshes and sees the revocation, with its reason and date. Then the failures: a non-issuer tries to issue and is reverted; a different issuer tries to revoke a credential it did not issue and is reverted; the holder tries to transfer the credential and is reverted. Each with a readable reason.