2Phone versions of the two desktop surfaces, 393 × 852

The registrar and auditor screens rebuilt for a phone: one column, sections collapsed to accordions with a sticky action bar in 2a, and the claims table linearised into stacked claim blocks in 2b rather than scrolled sideways. Same data, same grammar as 1a / 1b.

2aIntake console · phone · accordion + sticky action bar
VINPassport VINPASSPORT intake
DEMO
Sample data. 26 fictional vehicles, pick one, the form fills itself.
01

PASSPORT TYPE

slot 30
02

DEMONSTRATION VEHICLE

Expect

All accepted. A new vehicle proves its four claims by construction, keepers 0, nothing on the record yet.

03 VEHICLE & IDENTITY 6 fields +
BEVBPID-EU-001377-2027
04 RECORD AT REGISTRATION slots 0–4
05 CLAIMS TO PROVE 4 of 4 on
Local circuit server found · 6 circuits will run
2bProof explorer · phone · claims as stacked blocks, no sideways scroll
VINPassport VINPASSPORT proofs
Public ledger · read-only

EVERY CLAIM ON THE LEDGER

Which vehicle, which field, which bound, never the value.

2
passports
5
claims
16
field updates
0
values published
VEHICLE A 4 claims · all current
391ce048e0feacde85e7978c2c8320b3763a6c5ed5b2aacc7ca524469bafe357
Mileage ≤ 150,000 kmcurrent
odometerKm · slot 690615c169…02d86f
proven against d23fc21635…634fc5
Write-off category ≤ 0current
writeOffCategory · slot 1c35bb205d…eace8d
Reported accidents ≤ 0current
accidentCount · slot 911f689d64…f095d7
Keepers ≤ 1current
ownerCount · slot a155446f51…0477e8
Verdict view →
VEHICLE B 1 claim
c7e89baf7818a3dc43edc3632b7f36e0df990fc9de72ede2cf80f5886c176d3b
Mileage ≤ 200,000 kmcurrent
odometerKm · slot ab36d4e730…c6c3db

Three clean-history claims were not requested. Absence of a claim is what the verdict page renders, never a quiet “no”.

Try next: "expand section 04 in 2a" · "add a superseded claim to 2b" · "add a filter bar to 2b"

1VINPassport, rebranded, intake → proofs → verification

Brand blue #004AAD and periwinkle #8B95FF on the logo's cream #EDE4D8, in the Industry system's wireframe grammar: square corners, hairline rules, registration marks, Barlow Condensed over Barlow. All content is real repo data, the 26 demo vehicles from app/console/demo-vehicles.mjs, slots and rules from docs/FIELDS.md, ledger state and claim bounds from app/scan/demo-data.json.

1aIntake console · registrar · step 1 is new vs existing, then the vehicle
VINPassport VINPASSPORT intake
DEMO
Sample data for evaluation. 26 fictional vehicles. Pick one and the whole form fills itself, then submit and watch the real circuits accept and refuse. Nothing here touches a public network.
01

PASSPORT TYPE

slot 30 · passportOrigin
02

DEMONSTRATION VEHICLE

filtered by passport type

Switch to Existing vehicle and the list becomes the five retrofit records, including 2016 Audi A4 2.0 TDI, the odometer-rollback attempt, and 2018 BMW 320d, written off with the clean claims declined.

Expect

All accepted. A new vehicle proves its four claims by construction, keepers 0, nothing on the record yet.

Local circuit server found
attestation-vault-32 · depth 5
03

VEHICLE & IDENTITY

slots 5 · 22–26 · 28
Hashed before registration, never published.
Becomes the registrar id, every claim attributable.
This instance's landing list only.
BEV / PHEV ONLYSlot 29 is the link out to the battery passport, a reference, never a copy of its claims.
04

RECORD AT REGISTRATION

slots 0–4 · rule: never falls

Each field is created under its integrity rule, fixed on the ledger at creation. None of these five may ever fall. Keepers 0 is what says new, never registered.

05

CLAIMS TO PROVE

proveFieldAtMost × 4

A claim the record cannot support aborts during proving and writes nothing, verification then shows “not proven”, never a false tick.

6 circuits will run

WHAT THE CIRCUITS DID

5 accepted · 1 refused
OKregisterPassportpassport anchored · registrar rdw-veendam
OKinitialiseField ×5slots 0–4 created under rule neverFalls
OKproveFieldAtMostwriteOffCategory ≤ 0 · accidentCount ≤ 0 · ownerCount ≤ 1 · odometerKm ≤ 500
REFUSEDrecordFieldodometerKm 152,600 → 121,000, value decreased, aborted in-circuit, wrote nothing
1bProof explorer · auditor · the whole claims ledger
VINPassport VINPASSPORT proofs
Public ledger · read-only

EVERY CLAIM ON THE LEDGER

Which vehicle, which field, which bound, never the value. Superseded means the field has moved on since the proof was made: the claim was true of an earlier version.

2
passports
5
claims
16
field updates
0
values published
VEHICLE A 4 claims · all current verdict view →
VIN HASH 391ce048e0feacde85e7978c2c8320b3763a6c5ed5b2aacc7ca524469bafe357
Claim Proven against State
Mileage ≤ 150,000 km
odometerKm · slot 690615c169…02d86f
d23fc21635…634fc5current
Write-off category ≤ 0
writeOffCategory · slot 1c35bb205d…eace8d
d362758e70…bf1f5bcurrent
Reported accidents ≤ 0
accidentCount · slot 911f689d64…f095d7
f5ad92ad0b…5c0791current
Keepers ≤ 1
ownerCount · slot a155446f51…0477e8
01d149526c…2261c7current
VEHICLE B 1 claim · a record it cannot prove clean verdict view →
VIN HASH c7e89baf7818a3dc43edc3632b7f36e0df990fc9de72ede2cf80f5886c176d3b
Mileage ≤ 200,000 km
odometerKm · slot ab36d4e730…c6c3db
b04fda727e…81cb09current
Three clean-history claims were not requested, the write-off, accident and keeper proofs would have aborted in-circuit. Absence of a claim is what the verdict page renders, never a quiet “no”.
Legend currentcommitment still matches the field supersededfield has moved on since
1cVerification · buyer's phone · Vehicle A, four claims proven
VINPassport VINPASSPORT
verify
Vehicle passport · Reg (EU) 2026/1738

2019 GOLF, SILVER

VIN HASH 391ce048e0feacde85e7978c2c8320b3763a6c5ed5b2aacc7ca524469bafe357
4/4
BUYER QUESTIONS PROVEN Each tick is a zero-knowledge proof on the ledger. No value was ever published, not to us, not to the chain.
Never written offwriteOffCategory ≤ 0 · proven against the current record
+
No reported accidentsaccidentCount ≤ 0 · proven against the current record
+
One keeper from newownerCount ≤ 1 · proven against the current record
+
Mileage under 150,000 kmodometerKm ≤ 150,000 · proven against the current record

A zero-knowledge proof was accepted on the ledger. It could not have been produced unless the hidden reading satisfied the bound, and the reading itself was never published.

claimodometerKm ≤ 150,000 km field key2dd69ded11…a92fe7 proven againstd23fc21635…634fc5 ledger slot690615c169…02d86f
Registered by48735664c0…53e6a1
Claims on the ledger4
Battery passport— not an EV
WHAT A TICK DOES · AND DOES NOT · MEAN

Proven against the anchored record, attributable to a named registrar, tamper-evident. Not a guarantee that the record matched physical reality when it was written, that is the registrar's word, which is why every passport names one.

Source · Midnight Network · Reg (EU) 2026/1738

1dVerification · Vehicle B · the honest “not proven” rendering
VINPassport VINPASSPORT
verify
Vehicle passport · Reg (EU) 2026/1738

2018 320d, GREY

VIN HASH c7e89baf7818a3dc43edc3632b7f36e0df990fc9de72ede2cf80f5886c176d3b
1/4
ONE QUESTION PROVEN Three carry no claim. That is not a “no”, it is the absence of a proof, and the difference matters.
Mileage under 200,000 kmodometerKm ≤ 200,000 · proven against the current record
+
Never written offNo claim on the ledger. Not proven: not a no.

Nothing on the ledger answers this question. A failed proof writes nothing, and no proof was recorded, so the honest rendering is “not proven”. Ask the seller for it: if the claim is true of the record, producing it costs one transaction.

No reported accidentsNo claim on the ledger. Not proven: not a no.
+
One keeper from newNo claim on the ledger. Not proven: not a no.
+
Registered by48735664c0…53e6a1
Claims on the ledger1
See this vehicle in the proof explorer →

Try next: "in 1a show the retrofit list with the Audi rollback selected" · "give 1c a QR-scan landing state" · "expose all 26 slots as a panel view in 1a"