Our Story

From government research
to on-chain infrastructure.

Adduce was not born from a hackathon prompt. It was born from watching a paper certificate fail an entire justice system.

It started with a real government problem.

In 2022, we collaborated with a Bavarian state ministry and a leading technology entrepreneurship center on a research project: how do you validate government entitlement documents digitally while maintaining strict data integrity and compliance?

The specific artifact was the legal aid eligibility certificate. A paper document issued by a court, presented by a citizen to a lawyer, and used to trigger payment from the state. One document. Three institutions. Zero interoperability.

We spent months inside the workflow. We watched court clerks print certificates. We watched lawyers verify them by phone. We watched payment offices process claims that were 6 to 12 months old. The friction was not technological. The courts had databases. The data existed digitally. But the OUTPUT, the certificate itself, was still paper.

We built the centralized version first.

The first prototype was a standard web application. Digital certificate issuance, database-backed verification, role-based access control. It worked. It validated the idea: digitizing this one artifact eliminates the friction.

But it had the same problem every government IT project has: it only worked inside one institution. A court in Munich could issue a digital certificate, but a lawyer in Hamburg could not verify it without calling Munich. Cross-border? Impossible without bilateral agreements that do not exist.

What we found. What we built for each.

Our NDAs prevent us from sharing user interviews, design artifacts, or internal documents from the 2022 collaboration. What follows is reconstructed from handwritten notes and memory of the problems we observed firsthand. Every finding below directly shaped an Adduce feature.

Problem Observed (2022)
What Adduce Built (2025)
Certificates were forged or photocopied. Courts had no way to detect reuse across lawyers.
Credential-case binding (link_credential). One credential per case, enforced at the protocol level. Cannot be duplicated or reused.
Verification required phone calls between institutions. A lawyer in one city could not instantly verify a certificate issued in another.
On-chain SAS attestation. Any party reads the PDA directly. One RPC call. No phone calls. Cross-border native.
Citizens were locked to one lawyer with no easy way to switch. Reassignment required restarting the paper process.
reassign_lawyer instruction. Authority or reviewer switches the lawyer on an active case with full audit trail. No restart.
Eligibility changes (citizen gets a job) were not reflected for weeks. Revoked certificates continued circulating.
Instant revocation via account deletion. Every downstream instruction re-checks credential liveness. Zero stale window.
Lawyers waited 6-12 months for payment. Many stopped taking legal aid cases entirely.
mark_paid with authorized_amount enforcement and payment_reference. On-chain or off-chain settlement, but verification is instant.
Court clerks manually matched billing forms to cases. Error-prone and slow.
anchor_document with credential liveness re-check. Document hash anchored on-chain, linked to the case PDA. Automated matching.
No audit trail. Parliamentary oversight required manual file requests from each court.
Every state transition is a Solana transaction. 4 on-chain events. Any auditor reads the case PDA without permission.
Sensitive citizen data (income, family status) was exposed during verification. Privacy was an afterthought.
Groth16 ZK proofs. Prove eligibility without revealing tier, dates, or identity. Mathematical privacy, not access-control privacy.
Citizens without digital literacy were excluded from any digital solution.
Custodial model (open_case_custodial). Court acts on behalf of citizen using hashed national ID. Citizen never touches blockchain.
Different case types had different fee schedules, but the system treated all payments as flat amounts.
authorized_amount set per case during open_case. mark_paid enforces disbursed <= authorized. Payment reference tracked for audit.
Cases did not follow a linear path. Appeals, stays, remands were common but the system could not represent them.
8-status enum: Open, InProgress, Closed, Paid, Stayed, Appealed, Withdrawn, Remanded. Validated transitions via update_case_status.
When a reviewer was absent, cases were stuck. No escalation path, no delegation.
Up to 3 delegate reviewers via add_delegate. Timeout escalation: if case exceeds case_timeout_days, authority can close directly.

12 problems observed during government research. 12 features built into the Adduce protocol. Every instruction in the program traces back to a real workflow failure we witnessed.

The ministry said blockchain was the direction.

During the research collaboration, the ministry team flagged that a blockchain-based solution was what they were actively exploring. Not as hype. As infrastructure. They needed a credential that could be issued by one authority, verified by another, and audited by a third, without any of them sharing a database or joining a consortium.

We shelved the centralized prototype. The idea was validated. The architecture was wrong.

We studied what exists. Then we built something different.

After the centralized MVP was approved but before we chose a chain, we researched how governments globally were approaching blockchain-based credentials. The enterprise standard was clear: Hyperledger Fabric for the ledger, Hyperledger Aries for identity, IBM as the integrator. Bavaria itself had adopted a blockchain strategy (Block-Chain-Trust, 2020). IBM had won a $3.2M contract for digital health certificates in Germany. Cert4Trust was verifying 375,000+ professional certificates per year on blockchain. The technology was proven.

But no one had applied it to legal aid. And the enterprise stack had gaps that mattered specifically for this use case. Here is the architecture comparison that led us to Solana.

Enterprise stack vs Adduce

Concern
Enterprise Stack
Adduce
Privacy model
Trust the admin (access control).
Trust the math (Groth16 ZK proofs).
Credential-case binding
Middleware (misconfigurable).
link_credential: atomic, protocol-enforced.
Revocation
Registry + accumulator. Latency.
Account deletion. Instant. Global.
Cross-border
Requires consortium per country.
Public chain. Any node. No agreements.
Deploy cost
Multi-million dollar contracts.
$0.004/credential. Pure OpEx.

The enterprise stack works. It is proven for health passes and professional certificates. But for legal aid, where credentials cross borders, cases need non-linear status management, lawyers need reassignment, and citizens may not have wallets, the public chain architecture is a better fit. That is why we chose Solana.

Then we found 9 countries with the same problem.

Germany was not unique. The Netherlands has the Toevoeging. France has the Aide Juridictionnelle. Italy, Spain, Austria, Portugal, Canada, Ireland, all have certificate-based legal aid systems. Same paper artifact. Same institutional friction. Same 6 to 12 month payment delays. 500 million citizens covered by systems that run on paper.

This was not a German problem. It was a structural problem in every jurisdiction that uses voucher-style legal aid. One protocol could serve all of them.

Why Solana.

The ministry wanted a credential that works across institutions without a shared database. That rules out centralized systems. It also rules out private consortium chains: while EU blockchain consortiums exist for diplomas and Social Security (EUROPEUM-EDIC, EBSI), none covers legal aid certificates. Building one from scratch takes years of inter-ministerial negotiation. A public chain skips that entirely.

Among public chains, Solana was the only one with all five requirements met at the same time:

  • Native ZK verification. The alt_bn128 syscall lets us verify Groth16 proofs on-chain in ~200k compute units. No precompile contracts. No L2 bridges. Same cost as a token transfer.
  • Credential infrastructure. The Solana Attestation Service (SAS) launched May 2025 with schema registry, deterministic PDA addressing, expiry, and revocation built in. We build on it, not around it.
  • State compression. Light Protocol reduces on-chain storage costs by 98.8%. At government scale (100K+ cases/year), this is the difference between feasible and not.
  • Sub-second finality. 400ms slot time means credential verification and payment settlement happen in a single user interaction. No block confirmations to wait for.
  • No consortium. Public validators. Any court in any country verifies a credential issued by any other country. No bilateral agreements. No shared infrastructure.

Two years building in the Solana ecosystem.

Between the 2022 research and now, the time went into production Solana work across privacy infrastructure, autonomous agents, and credential systems. Not theory. Shipped code.

Solana production experience

Project
Stack
Privacy wallet (multi-chain Solana + Zcash)
Oasis ROFL TEE, FROST 2-of-2 threshold signing, seedless custody, TOTP recovery
Autonomous agent economy on Solana
Lit Protocol PKPs for agent wallets, Realms governance, DRiP integration
Video generation pipeline with agent payments
MCP servers, x402 protocol, agent payment flows
Adduce (this project)
Anchor 0.32, SAS, Light Protocol, Circom/Groth16, x402, Solana Agent Kit

Production stack

Anchor 0.30+, Next.js 16, wallet-adapter (Phantom + email login), Helius RPC, Photon indexer, Solana web3.js, SPL tokens, Metaplex. Frontend: React, TypeScript, Turborepo monorepo architecture.

Track record

  • Top-10 finish on a major DoraHacks privacy track
  • Multiple shipped submissions across HashKey Chain, Starknet, and Solana ecosystems
  • Google Summer of Code (Memorial Sloan Kettering)
  • Linux Foundation LFX Mentorship (Meshery)
  • Sustained open-source contributions to Protocol Labs IPFS core repos (helia-verified-fetch, service-worker-gateway, IPFS Companion, Boxo)

When the Solana Attestation Service launched in May 2025, the final piece fell into place. SAS provides exactly what the ministry described in 2022: credential issuance on a public ledger, schema-validated, expiry-aware, revocable by account deletion. No DIDComm agents. No Indy ledger. No consortium.

Adduce: the idea rebuilt from scratch on Solana.

Adduce is the product of that 2022 government research, validated by real ministry collaboration, expanded by the discovery of 9 countries sharing the same problem, and rebuilt from scratch using the Solana stack.

What
Status
Anchor program (14 instructions, 4 events, 26 errors)
Groth16 ZK circuit (7,883 constraints, 256-byte proofs)
Compiled + tested
SAS credential issuance + custodial model
Encrypted document storage (Arweave + Irys)
ZK compression (Light Protocol, 98.8% savings)
Live
x402 credential-gated payment
Live
Lawyer privacy (SHA-256 commitment)
Live
Delegation, escalation, extended case status
Live
Landing page + technical docs + demo dashboard

The scope of the problem.

Certificate-based legal aid is not a niche. It is how the majority of developed nations provide access to justice for citizens who cannot afford private representation.

Country
Certificate
Scale
Germany
Berechtigungsschein
~600K applications/year
France
Aide Juridictionnelle
775K approved in 2024 (+13% YoY)
Netherlands
Toevoeging
Raad voor Rechtsbijstand: national system
Italy
Patrocinio a spese dello Stato
Income threshold: EUR 12,838
Spain
Asistencia Juridica Gratuita
17 autonomous communities, fragmented
Austria
Verfahrenshilfe
Mandatory electronic legal communication (ERV)
Portugal
Apoio Judiciario
Applications via Social Security portal
Canada
Legal Aid Certificate
Province-specific (Ontario LAO, BC LSS)
Ireland
Legal Aid Certificate
Legal Aid Board under Dept of Justice
9
Countries with certificate-based legal aid
500M+
Citizens covered by these systems
1.3M+
Certificates issued per year (DE + FR alone)

Every one of these countries has the same structural problem: a paper certificate that gets forged, reused, verified by phone, and takes months to turn into payment. One protocol, parameterized by jurisdiction, serves all of them.

This is not a hackathon exit.

I am stepping back from my current role to commit full-time to building and maintaining Adduce. The research validated the problem. The prototype validated the solution. The Solana ecosystem provides the infrastructure. What remains is execution: government integration APIs, pilot deployments, and expanding to the jurisdictions that need this most.

The legal aid certificate is one document. But it decides whether a lawyer takes the case, whether a citizen gets representation, and whether justice is accessible or just theoretical. Making that document unforgeable, private, and instant is worth building for.

Try the DemoView the Code