Verifiable User Agents and wallets
A Verifiable User Agent is software that acts for a person, a mobile identity wallet, a DIDComm messenger, an agentic browser, and that refuses to trust blindly. Before it connects to a service, accepts a credential or shares one, it asks the network and shows the person the answer.
The three questions
| Question | When | Answer from | |
|---|---|---|---|
| Q1 | Is this service a trusted Verifiable Service, and who operates it? | on every new connection | trust resolution of the service DID |
| Q2 | Is this service accredited to issue this credential, in this ecosystem? | on every credential offer | the issuer's accreditation on the registry |
| Q3 | Is this service accredited to request this credential? | on every presentation request | the verifier's accreditation on the registry |
A failed Q1 means no connection. A failed Q2 or Q3 means the accept or share action is blocked or demoted behind an explicit warning; it never happens silently.
The Proof-of-Trust
The answer to Q1 is shown the same way in every integrated wallet, so people learn to read it once:
- The verdict: trusted, untrusted, or could not verify, with the service DID and the time of evaluation.
- The service: name, type, logo, description, from its ECS Service credential.
- Who operates it: legal name, country, registry identifier, from the ECS Organization or Persona credential.
- The other credentials the service or its operator present, each with its own validity mark.
- The trust chain behind each credential, issuer to grantor to ecosystem, with the failures, when any, as first-class content.
Wallets keep their own look; the order, the states and the iconography are the shared contract. Nothing is invented: no stars, no scores beyond what resolution returned.
What a person sees for the playground's accredited demo issuer, and for its untrusted demo service:
Service
Accredited Issuer (demo) · Issuer service
Issues the DemoCredential of the Playground Ecosystem (demo). Minimum age 0 · Terms · Privacy policy
Operated by
Playground Organization (demo) · 🇨🇭 CH
Registry id CHE-000.000.000 · Rue de l'Exemple 1, Geneva
Other credentials
Trust chain
Service credential: Accredited Issuer (demo) → ECS ecosystem
- Organization credential: Helvetia Trust Services (demo), accredited ECS issuer → ECS ecosystem
- ISO 9001-style (demo): NormaCert (demo), accredited issuer → ISO Certification Ecosystem (demo)
Service
No ECS Service credential presented.
Operated by
No ECS Organization or ECS Persona credential presented.
Failures
- The DID Document declares no linked presentation of a Service credential (VS-REQ-2).
- Self-issued claims withheld: no accredited issuer backs them.
The playground renders these cards live for every demo service, and its component is the reference wallets copy.
Two integration tracks
Native. The wallet speaks DIDComm. It connects to services over the bootstrap channel, resolves trust before the connection is used, receives AnonCreds or W3C credentials and presents them with selective disclosure.
Bridge. The wallet is built on OpenID4VC, in the style of the European wallets. It keeps its OpenID4VCI and OpenID4VP flows unchanged and adds trust resolution of the issuer or verifier DID around its consent screens, rendering the Proof-of-Trust above the fold. Only resolvable DID methods qualify, did:web and did:webvh: a bare key cannot present credentials, so it cannot be trusted.
The user agent credential
Issuance of User Agent credentials by wallet vendors is not yet generally available, so services do not request the credential today and wallets do not check each other's. Wallets integrated under the current guideline are not presented as full Verifiable User Agents for that reason.
A full Verifiable User Agent also carries an ECS User Agent credential, issued by its vendor, which a service may ask for before serving it, and which identifies the software without identifying the person. It is a private credential, AnonCreds or SD-JWT VC depending on the wallet's rail, presented with selective disclosure. It says nothing about the person: identifying the human behind the agent is out of its scope, and a service that needs it does so separately, through whatever credential its own context calls for, such as an ECS Badge for an employee or member, or an identity credential from an ecosystem that governs one.
Where next
- Build: Personal wallets, and the normative integration guideline.
- Try it live: six integrated wallets on the playground.
- Specification: Verifiable Trust v4,
VUA-REQ,VUA-CONN-VS,CIT,PRT.