Witness · Design draft v0.1 · Solo project · 2026-04-23
A credential network for people the institutions have failed.
Undocumented workers can't prove the hours they worked.
Refugees lose their papers at the border.
People leaving prison start over with nothing portable.
DV survivors have evidence on a phone the abuser can reach.
This is the problem blockchain was actually designed for — and the one
almost nobody is pointing it at.
This is a single-person project at the design-draft stage. I'm
Aaron Wright, a construction worker in Clearwater, Florida, building this
in my off-hours. Reaching out to legal-aid programs & worker centers for design
input before writing production code.
What this is
Witness is a network of signed, timestamped statements of fact
("attestations") about a person, issued by identifiable community institutions
— a shelter intake worker, a coworker, a legal-aid paralegal, a doctor,
a union rep. Each attestation is cryptographically signed, hashed onto a public
ledger, and held in the subject's own vault. When they need legal help —
years later, perhaps — the record is already built, un-tamperable, and
exportable to something a judge or labor commissioner will accept.
Wire format is the W3C
Verifiable Credentials data model. I'm not inventing anything new.
Egress is a cryptographically-signed PDF affidavit plus optional ZK
selective-disclosure.
The three attestations below tell a single wage-theft story over three weeks:
a landscaping worker in San Jose, her coworker who saw the same shift, and the
legal-aid paralegal who intakes her case three weeks later referencing both.
The cryptographic proofs are placeholders in this draft — I have
not yet implemented production canonicalization (RFC 8785 JCS).
The shapes, issuer semantics, and case linkage are production-intent.
Case narrative: Unpaid wages at Example Landscaping LLC, San Jose, CA
On 2026-04-22, Maria Q. finished an eight-hour landscaping
shift at three residential properties in the Willow Glen neighborhood of
San Jose. She had been promised $18 per hour. No wages were paid that night
and none arrived by the promised pay date.
Later the same evening, Maria opened the Witness intake agent on her phone
and produced the first attestation — a self-attestation of the shift.
Minutes later, her coworker Jorge L., who worked the same
shift for the same foreman, countersigned her attestation from his own
phone: he was there, the promised rate was the same, he also has not been
paid.
Three weeks later, on 2026-05-14, Maria presented in person at
Example Bay Area Legal Aid. She had by then accumulated
eighteen such shift attestations; fourteen carried coworker countersignatures.
A paralegal in the Wage & Hour Unit conducted intake in Spanish, verified
Maria's identity against her California ID and the wallet DID on the
attestations, and issued the third attestation shown here: an institutional
intake, cryptographically signed by the legal-aid organization's
did:web key, referencing the prior worker and coworker
attestations.
What Maria hands her attorney is not a folder of loose documents. It is a
verifiable chain: eighteen signed shifts, fourteen third-party witnesses, and
an institutional attestation from a legal-aid organization her attorney already
trusts. When the case is filed with the California Labor Commissioner, the
evidentiary record begins before anyone called a lawyer.
The three attestations
Issuer
Maria Q.
Self-attestation
US-CA
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK
Subject
Maria Q.
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK
Stated facts
- Employer name
- Example Landscaping LLC
- Employer address
- 1437 Alum Rock Ave, San Jose, CA 95116
- Shift start
- 2026-04-22T13:00:00Z
- Shift end
- 2026-04-22T21:00:00Z
- Work location
- Residential properties in Willow Glen, San Jose, CA
- Work location geo
- geo:37.3088,-121.8957;u=100
- Promised rate usd
- 18.0
- Promised payment by
- 2026-04-26
- Work description
- Tree removal and debris hauling at three residential properties. Arrived at worksite 13:00 local, worked until 21:00 local with one 20-minute unpaid break. Foreman 'Tony' supervised.
- Payment received
- no
Cryptographic proof
- Algorithm
- Ed25519Signature2020
- Signed at
- 2026-04-22T21:02:00Z
- Verification method
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK
Signature value is a placeholder in this draft. Production signatures require JCS canonicalization (see footer).
Issuer
Jorge L.
Individual witness — Coworker on the same shift at the same employer
US-CA
did:key:z6MkrJV2TcfR8yPjaBuYpSxReGfGcLWGSTLmWKiL7hwxj4oR
Subject
Maria Q.
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK
Stated facts
- Relationship to subject
- coworker_same_shift
- Witnessed fact
- I, Jorge L., worked the same shift as Maria Q. on 2026-04-22 at the three Willow Glen properties described in the attestation I am countersigning. Maria was present from 13:00 local until at least 20:45 when I left the site. Foreman 'Tony' was the same supervisor for both of us. I was promised $18/hour for the same work and have also not yet been paid.
- Attested hash
- sha256:PLACEHOLDER_HASH_OF_ATTESTATION_01
References (prior attestations)
sha256:PLACEHOLDER_HASH_OF_ATTESTATION_01
Cryptographic proof
- Algorithm
- Ed25519Signature2020
- Signed at
- 2026-04-22T21:07:00Z
- Verification method
did:key:z6MkrJV2TcfR8yPjaBuYpSxReGfGcLWGSTLmWKiL7hwxj4oR
Signature value is a placeholder in this draft. Production signatures require JCS canonicalization (see footer).
Issuer
Example Bay Area Legal Aid
Legal aid intake — Paralegal, Wage & Hour Unit
US-CA
did:web:example-legal-aid.org
Subject
Maria Q.
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK
Stated facts
- Intake date
- 2026-05-14T17:30:00Z
- Intake location
- Example Bay Area Legal Aid, San Jose office
- Stated facts
- Client presented in person on 2026-05-14 regarding unpaid wages from Example Landscaping LLC. Client reports working 18 shifts between 2026-04-22 and 2026-05-10, averaging 8 hours per shift, at a promised rate of $18/hour. Client has received no wages for any of these shifts. Client has presented 18 corresponding Witness attestations, 14 of which carry coworker countersignatures. Intake confirmed client's identity via California ID and compared the wallet DID on the attestations to the wallet displayed on client's phone.
- Observed condition
- Client appeared in good health. Spoke in Spanish; intake conducted with Spanish-speaking paralegal.
- Services provided
- Opened wage claim file. Scheduled attorney consultation for 2026-05-21. Provided client with written notice of rights under California Labor Code §§ 201, 1194, 1197.
References (prior attestations)
sha256:PLACEHOLDER_HASH_OF_ATTESTATION_01sha256:PLACEHOLDER_HASH_OF_ATTESTATION_02
Cryptographic proof
- Algorithm
- EcdsaSecp256r1Signature2019
- Signed at
- 2026-05-14T17:45:00Z
- Verification method
did:web:example-legal-aid.org#intake-2026
Signature value is a placeholder in this draft. Production signatures require JCS canonicalization (see footer).
Questions we expect from legal-aid readers
Is this the actual wire format my filings need?
It's the W3C Verifiable Credentials 2.0 data model. VCs are a W3C Recommendation
and the basis for digital-credential work at the US DHS, EU, and several states.
I'm not inventing a format; inventing one would doom the legal-interop path.
What does an intake paralegal actually do differently?
In the pilot: they open a workflow in the Witness intake app, it produces a
VC-formatted institutional-intake attestation as output, signed by the
org's did:web key. Nothing about the paralegal's judgment or
notes changes. What changes is that the output is cryptographically bound to
the client, countersignable by other attestors, and can be re-exported as a
signed PDF affidavit later.
What happens when the client's phone is lost, seized, or destroyed?
The attestation hashes live on a public ledger. The content of the
attestation lives on content-addressed storage (Arweave). Client identity is
recovered via a social-recovery threshold (3-of-5 guardians), tuned for
clients without reliable smartphone access — SMS and call-center paths
included. Seed phrases are never exposed to the client.
Why would a judge trust this more than a PDF?
A PDF is trivially re-dateable. A Witness attestation's timestamp is bound
to a public ledger's block time the moment it's issued; the hash cannot be
rewritten after the fact without invalidating the signature chain. Crucially,
the issuer stakes their real reputation via a verifiable institutional
DID — the same property that gives a notary's signature weight.
What's the ask?
A 30-minute conversation. I want to understand what evidence you wish wage-theft
clients walked in with on day one, what you cannot currently verify, and where in
your intake workflow a tool like this would integrate (or not). I am not trying
to sell anyone anything. This is a single-person project at the design stage,
trying to build the thing that actually fits before writing production code.