Attestat

Attestat ETHOnline 2026

How many strangers keep a copy of your passport?

Every exchange, launchpad and fund asks for your ID and keeps it. Attestat lets the state ID wallet on your phone answer one issuer once, and puts only that issuer's decision on chain.

"Your ID wallet should work where you invest."

The status quo

Identity in crypto is still custodial.

You upload your passport. They keep it. Dozens of copies of you sit in dozens of databases, and every one of them is a target.

11 Sep

Revolut, September 2026

customers' passport copies, onboarding selfies, addresses and bitcoin transaction histories handed to a fraudulent request from a real government email domain. Its own notice says the law requires it to keep the document copy.

153 million

IDScan.net, September 2026

driver's licence scans, as advertised by a dark-web service, from an ID-scanning vendor whose cloud keeps every record by default. The vendor disclosed a security incident on its cloud; the count is the seller's.

69,461

Coinbase, May 2025

customers' records, including government ID images, copied by bribed support contractors. The extortion demand: 20 million dollars.

Crypto fixed custodial money. Your keys, your coins.
Identity never got its turn.

The turn

An ID you hold yourself.

By the end of 2026 every EU state must offer a digital identity wallet (eIDAS 2, Art. 5a). By accident of law it is an identity document that lives on your phone and answers to you.

  • The state signs. Once. Then it hands the credential to you.
  • You hold. It lives on your phone, not on a server.
  • You choose. Show three fields, keep the rest. Selective disclosure is the default.
  • The provider cannot watch. The law bars the wallet provider from tracking how you use it (eIDAS 2, Art. 5a(16)).

The state becomes a signer, not a watcher. Less state visibility than today, not more.

Three fields shared. Everything else stays on the phone. Sample identity from the official test wallet.

Interactive

Who sees what.

Click through one onboarding with a sample identity. Watch the right pane. The chain never learns your name.

Scripted walkthrough with sample data; the working application is separate. The panes below replay a fixed sequence in your browser and touch no wallet, no server and no chain. The application, its contracts and the step-by-step demo runbook live in the nachweis-app repository.

You

Your crypto wallet in the browser, and the official test wallet on your phone. Sample identity.

The issuer

A fund issuer. Its server relays what the wallet sends and never opens it.

The chain

Public. Anyone can read this pane.

Fundclosed
Poolclosed

Step 1: your crypto wallet signs the session, so the evidence can only ever bind to this address.

One permission

Two doors, one permission.

The issuer's approval is a few bits on chain. The fund token reads them. The Uniswap permissioned pool reads the same bits. One revoke, both doors close.

Fund subscription

open

Uniswap permissioned pool

open

What we are not.

  • Identity checks as a service.The issuer approves. The issuer revokes.
  • A data holder.We store no identity document. In the server-side proof route our verifier sees the presentation while it makes the proof; in the client-side route it never receives one.
  • A wallet.The state wallet is the wallet.
  • We carry the decision.From the issuer to every venue it controls.

Honest about the demo

  • Official test walletThe German EUDI sandbox with a sample identity. No state-issued ID in this build.
  • Simulated checksSanctions and other checks are stubs in this build.
  • Where the proof is madeIn your own browser tab (the demonstrated route) or by our verifier (server-side route). The official wallet does not produce this proof today.
  • Manual withdrawalRevocation is triggered by hand.

Deployment

Where the proof lives.

The chain side is final. The registry accepts evidence checked by a policy verifier, followed by a separate issuer approval. Its operator fallback stores a decision and approves it in one transaction, without a proof. Where the proof is made is a deployment choice, and it decides who sees the presentation. In the server route our verifier sees the presentation, name included, while it makes the proof. In the demonstrated browser route, the investor's tab decrypts the presentation and generates the proof. The relay receives the encrypted response, and the on-chain verifier checks the proof. The issuer separately approves eligibility. In every route the chain gets policy, predicate bits, tier, expiry and a bound address. No name or identity document is published; the public address may still be linked to a person.

  1. Route 1, built Our verifier

    Our verifier checks the presentation and generates the zero-knowledge proof (SP1, Groth16). The chain does not trust the server, but the server did see the presentation.

  2. Route 2, built Your browser

    Our server is a blind relay that stores only the encrypted wallet response. Your browser tab decrypts it and makes the proof (Noir, UltraHonk). This is the route the demo runs. Same contract, same chain record.

  3. Route 3, not built The wallet

    Future wallet-generated proofs could use the registry interface through a compatible verifier adapter. That integration is not implemented or demonstrated here.

Two routes built, one interface.

Why now

The wallet arrives. Listed services must accept it from 2027.

Member states must offer the wallet by 24 December 2026 (eIDAS 2, Article 5a). From 24 December 2027, Article 5f requires private relying parties in listed sectors, banking and financial services among them, that must use strong user authentication by law or contract, to also accept the EUDI wallet, at the user's request. Microenterprises and small enterprises, as defined in Commission Recommendation 2003/361/EC, are excepted from that duty (Article 5f(2)). Whether a given issuer falls under that duty depends on its service and its member state. Article 5f creates no investment eligibility and no universal acceptance duty.

Every gated venue today filters by residence and sanctions through its own document funnel. Each funnel is another copy.

Attestat lets the issuer accept the state wallet's evidence and apply its approval to the investor's linked crypto wallet, without putting a document on chain. The issuer keeps its file; the chain keeps a decision.

Built on Uniswap Permissioned Pools SP1 zkVM Noir EUDI sandbox wallet

Engineering examples

Also built on the same decision.

Attestat helps token issuers accept EUDI identity evidence and apply their approval to customers' linked crypto wallets, without putting identity documents on chain. The two examples below read that decision on a local chain. Neither is a live product.