Use a wallet through the browser
The Digital Credentials API is a separate mandatory remote-presentation lane. Configure it above; the browser execution adapter remains pending.
Choose a task. We prepare the exchange and show what happened.
Sample data only. No account. No production or legal effect.
Ask a test wallet for family name. The person can share it or refuse.
This test sends a sample identity credential. The wallet retrieves the offer and decides whether it can accept it.
The Digital Credentials API is a separate mandatory remote-presentation lane. Configure it above; the browser execution adapter remains pending.
Configure the ISO 18013-5 plan above. Device engagement and NFC or Bluetooth transport remain pending.
Needs explicit proximity holder and verifier modes. DIDComm is a separate Verifable capability.
This separate experiment sits outside the standard ARF personal-identity age-attribute journey.
ARF 3.0 journey trace · interoperability evidence · FCAF unassessed.
We use the same useful pattern as the France Identité Playground: identify an implementation, link its documentation, run a real test and publish a dated result. Lumoin participates in the FIDES Community. Reference, participation, certification and external test results remain distinct evidence states.
Exercise the issuer and verifier now. The test tenant reports the live state.
Run the starter testThe French EUDIW Unfold Playground separates implementation listings, documentation and runnable tests. We use it as an interaction-design reference.
Open the French playground ↗Lumoin participates in the FIDES Community. This public lab makes our wallet and credential interoperability work inspectable.
Publication rule: an external result is named with its date, wallet and server builds, exact profile, trust material, and terminal outcome. Community participation remains a separate evidence state from an official listing, certification or test result.
The issuer and verifier are public test services. Web and Native Wallet are listed as separate implementations because their storage, assurance and supported ceremonies differ; one result never proves the other.
Every configuration listed here is available under the
test tenant. Pass the exact
credentialConfigurationId string to the issue widget or
directly to POST /connect/test/oid4vci/offer.
| Credential | Format | Profile / standard | Selected attributes |
|---|---|---|---|
PID — SD-JWT VC (dc+sd-jwt)
verifable.identity.sdjwt.1
|
dc+sd-jwt | SD-JWT VC / EUDI PID |
|
PID — HAIP SD-JWT VC, key attestation (dc+sd-jwt)
verifable.identity.haip.pid.1
|
dc+sd-jwt | HAIP SD-JWT PID — key attestation required |
|
PID — ISO 18013-5 mdoc (mso_mdoc)
verifable.identity.mso_mdoc.pid.1
|
mso_mdoc | ISO 18013-5 PID (eu.europa.ec.eudi.pid.1) |
|
PID — SD-CWT (dc+sd-cwt)
verifable.identity.sd_cwt.pid.1
|
dc+sd-cwt | SD-CWT PID (draft-ietf-spice-sd-cwt) |
|
Identity — W3C Data Integrity (ldp_vc)
verifable.identity.di.1
|
ldp_vc | W3C VC 2.0 — eddsa-jcs-2022 Data Integrity |
|
| Credential | Format | Profile / standard | Credential type |
|---|---|---|---|
Battery passport — EU 2023/1542 (ldp_vc)
verifable.dpp.battery.1
|
ldp_vc | EU Battery Regulation (EU) 2023/1542 — eddsa-jcs-2022 | Digital Product Passport (battery) |
Battery passport — UNTP (vc+jwt)
verifable.dpp.battery.untp.1
|
vc+jwt | UNTP DigitalProductPassport (vc+jwt) | UNTP-shaped battery DPP with BitstringStatusListEntry |
Conformity credential — UNTP DCC (vc+jwt)
verifable.dcc.1
|
vc+jwt | UNTP DigitalConformityCredential (vc+jwt) | Conformity attestation referencing a product |
Traceability event — UNTP DTE (vc+jwt)
verifable.dte.1
|
vc+jwt | UNTP DigitalTraceabilityEvent (vc+jwt) | EPCIS supply-chain event referencing a product |
Identity anchor — UNTP DIA (vc+jwt)
verifable.dia.1
|
vc+jwt | UNTP DigitalIdentityAnchor (vc+jwt) | Register authority binds an organisational DID |
Facility record — UNTP DFR (vc+jwt)
verifable.dfr.1
|
vc+jwt | UNTP DigitalFacilityRecord (vc+jwt) | Facility registrar binds facility id to location and operator |
DPP credentials (verifable.dpp.*) require a product to be
issued first through the Playground — the credential is issued
from an existing passport record. Identity credentials issue with synthetic test subject
data.
All URLs below are relative to this origin. In the sandbox the segment is always
test; substitute your own segment when you onboard a dedicated
tenant.
/connect/test/.well-known/openid-credential-issuer
OID4VCI §12.2 Credential Issuer Metadata — lists all supported configurations.
/connect/test/.well-known/oauth-authorization-server
RFC 8414 Authorization Server Metadata — token and nonce endpoint addresses.
/connect/test/jwks
RFC 7517 JWKS — the tenant's public signing keys.
/connect/test/oid4vci/offer
POST — start an OID4VCI Pre-Authorized Code issuance. Body: {"credentialConfigurationId":"…"}
/connect/test/oid4vp/request
POST — start an OID4VP presentation. Body: {} (only pid_family_name profile available).
/connect/test/oid4vci/offer/{offerId}/status
GET — coarse offer status: {"status":"pending"|"claimed"|"completed"}. No tokens or credential material.
/connect/test/oid4vp/request/{parHandle}/status
GET — coarse presentation status: {"status":"pending"|"claimed"|"completed"|"failed"}.
/connect/test/credential_offer?id=…
OID4VCI §4.1.3 Credential Offer Endpoint — fetches a stored offer by id (GET).
/connect/test/token
RFC 6749 Token Endpoint — exchanges the pre-authorized code for an access token.
/connect/test/credential
OID4VCI §8 Credential Endpoint — issues the credential given a valid access token and proof.
/connect/test/nonce
OID4VCI §7 Nonce Endpoint — returns a fresh c_nonce for the holder proof.
/.well-known/did.json
did:web resolution target — the server's own DID document (did:web:verifable.eu).
Status-list credentials are hosted at
/connect/{segment}/status/{listId} — the
credentialStatus field of every UNTP credential points here.
A verifier fetches this URL to check whether a credential has been revoked.
The server describes itself as did:web:verifable.eu. The
full DID document is linked above; the full API reference is at
Documentation.
The Verifable Web Wallet can receive a supported credential into its session-only browser store and check its status. It does not yet complete the presentation test on this page, and closing or reloading its session can remove its local credential state.
The native Verifable Wallet is a separate .NET MAUI holder product. For cross-device testing—or any Present flow—use an installed compatible holder to scan the QR code or open the deep link. Web and Native do not silently share keys or credential stores.
Compatibility varies by profile and wallet build; this page does not assert third-party interoperability. If you are implementing a wallet, use the metadata and endpoint reference above for discovery.
Wallet users
No. Sandbox credentials are issued under ephemeral keys that are not listed on any production trust list. A verifier that checks trust-chain membership will reject them. They exist for testing wallet implementations and integration patterns only.
The sandbox tenant's keys are regenerated on every server start. A credential issued in a previous session was signed by a different key than the one now served at the JWKS endpoint, so verification will fail. This is expected sandbox behaviour — use the issue widget to create a fresh credential after each restart.
Relying parties
Use the verify widget above to start a presentation flow. The widget creates a fresh
OID4VP request signed by the sandbox verifier. Point your wallet at the returned
deep link or QR code. Your relying party receives the presentation at the
direct_post callback configured for the test segment. Note that the
sandbox verifier is not listed on a production trust list.
Only the pid_family_name profile is wired — it requests the
family_name claim from an SD-JWT PID credential using a DCQL query.
Additional claim and DPP presentation profiles are not available yet.
Issuers
The sandbox tenant's credential catalog is fixed — it covers the identity and DPP families listed in the catalog section above. Custom credential types require a dedicated tenant, which is not yet self-service. Contact hello@lumoin.com to discuss a pilot.
At /connect/test/.well-known/openid-credential-issuer. That document
lists every supported credential configuration, the formats, and the proof types
each configuration requires. The full OpenAPI contract at
/openapi/verifable-server.json documents
every request and response shape.
Developers and integrators
POST to /connect/test/oid4vci/offer with a JSON body containing
credentialConfigurationId (required) and optionally subject.
The response carries the by-value credential offer object, the by-reference
credentialOfferUri, the preAuthorizedCode, and an
offerId. Your wallet client constructs the
openid-credential-offer:// deep link from the
credentialOfferUri.
POST to /connect/test/oid4vp/request with {}. The
response carries the verifier clientId, the requestUri
(a GET on this returns the signed JAR the wallet consumes), and the full
authorizationRequestUri in the openid4vp:// scheme. The
wallet deriving from that URI presents via the direct_post response
mode.
Yes — the Documentation page renders the full OpenAPI 3.1.1 contract live. The raw JSON is at /openapi/verifable-server.json for tooling, code generation, or any agent that wants the full shape at once.
Significant Sandbox additions are recorded here. The server repository carries its own release log.
The issue widget's configuration picker now leads with credential scenarios
(grouped as Identity (PID) and Product passports (DPP/UNTP)) with the raw
configuration id shown alongside; both widgets gained an Open in wallet
same-device link next to the QR; and both flows now report live status — the page
polls the new read-only …/status endpoints and tells you when a
wallet picks a flow up and when it completes.
Added the /sandbox/ section: getting started guide, complete
credential catalog (identity and DPP families), live issue-a-credential and
verify-a-presentation widgets with QR and deep-link output, endpoints and trust
artefacts reference, FAQ for four audiences, and this changelog. The credential
catalog documents the exact configuration IDs the seeded test tenant supports;
the QR encoder is a dependency-free inline module.