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

Attestation 1 of 3

Wage shift — self-attestation

Attested event time:

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).

Attestation 2 of 3

Coworker countersignature

Attested event time:

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).

Attestation 3 of 3

Institutional intake — legal-aid paralegal

Attested event time:

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_01
  • sha256: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.