Thailand · Phase 1 · Verifiable Credential Trust Framework

Trusted Wallet Demo

Try the full digital-credential journey end to end: issue a Thai national-ID credential to a phone wallet, then present just the claims a verifier is allowed to ask for. Every step runs on real Procivis OID4VCI / OID4VP infrastructure.

Checking services…
Read first
Scan the QR codes with the wallet app's own camera. Open the Trusted Wallet app, tap its scan button, and point it at a QR on this page. Do not tap the deep link on the phone — if several wallets are installed, Android's “Open with” chooser can break the hand-off. The copyable link is only a fallback for a wallet that has no scanner.

Step 1 · Issue

Put a credential in the wallet

API docs

Fill in synthetic ID details, generate the offer QR, and scan it with the wallet. The wallet checks the project trusted list, then stores the credential. Use test data only.

Credential details

Age flags the issuer will add automatically age_over_20: — age_over_60: —

Only the date of birth is sent. The issuer derives the age flags, so nobody can self-claim them.

Offer QR

Scan to receive the credential

Creates a real SD-JWT VC and a pre-authorized OID4VCI offer. The wallet will ask for the transaction code shown on the QR card.

No offer yet — fill the form and generate.

Step 2 · Present

Prove only what is needed

Pick a scenario, generate its request QR, and scan it. The wallet shows the project trusted-list check for the verifier and discloses only the selected claims.

Scenario A

Open a bank account

Claims the bank may request
No request yet.

Scenario B

Age checks

Minimal age proof
No request yet.

“Standard-wallet version” swaps the verifier identity from verifier_attestation to decentralized_identifier for wallets that don’t support attestation. Ticking date of birth lets you confirm the verifier is refused for asking beyond its allowed scope.

Step 3 · mDL interoperability

Test an ISO mobile driving licence

This separate test uses the standard org.iso.18013.5.1.mDL document type and org.iso.18013.5.1 namespace. It does not change the Phase 1 PID credential. Wallet Unit Attestation is deliberately not required in this phase.

Synthetic mDL data

The demo adds a small JPEG portrait, TH country codes, issuing authority, and derived age_over_18.

No mDL offer yet.

mso_mdoc presentation

Request standard mDL claims

Scan after accepting a fresh mDL. OID4VP Final generates a DCQL request with format mso_mdoc.

W3C Digital Credentials API: prepare once, then press the button again to open the Android wallet chooser in the same browser.

No mDL proof request yet.

Verifier result

Inspect the presented mDL

After the wallet shares the presentation, refresh this result to see Core's verification state and exactly which claims the verifier received.

Generate an mDL proof request first.

Live status

Who the wallet currently trusts

The signed trusted-list decision the wallet applies before it accepts or presents anything.

Advanced · Onboard a new participant Registration & Trust Gateway — not needed for the basic demo

Submit a participant, approve it into the signed trusted list as the operator, then confirm API-key access through the Trust Gateway.

Registration request

Gateway access

No registration submitted yet.