Skip to main content

Introduction

In the physical world, we as people have numerous ways of identifying ourselves (a passport, driving license or birth certificate for example). They are each used in different contexts, and can have different fields of information but they are share one defining characteristic, they are accepted as proof of identity and are called “physical credentials”. We have exactly the same need in the digital world and for this reason, the concept of “verified credentials” were created. A Verified Credential (VC) is a way to represent a digital identity in a way that can be shared and verified by others. They can be digital representations of physical credentials (like a passport) or they can be entirely digital (like an email address). Specific to Dynamic, verified credentials can map to things like oauth (i.e. Facebook and Google), email, blockchain wallets, passkeys and more (these are called “formats”). Each format has its own set of fields and information that can be shared. They also always have a “provider” which is the service that issued the credential (i.e. Google, Apple, Dynamic).

Accessing Verified Credentials

As you probably already read in the accessing users section, you can access verified credentials as part of the user profile, so once you have that it is as simple as accessing the verifiedCredentials array.

Verified Credential Structure

Fields Applicable to All VCs

Fields Specific to OAuth

Fields Specific to Wallets

NameServiceData

WalletProviderEnum

‘browserExtension’ || ‘custodialService’ || ‘walletConnect’ || ‘qrCode’ || ‘deepLink’ || ‘embeddedWallet’ || ‘smartContractWallet’

WalletProperties

JwtVerifiedCredentialFormatEnum

‘blockchain’ || ‘email’ || ‘oauth’ || ‘passkey’

ProviderEnum

‘emailOnly’ || ‘magicLink’ || ‘apple’ || ‘bitbucket’ || ‘discord’ || ‘facebook’ || ‘github’ || ‘gitlab’ || ‘google’ || ‘instagram’ || ‘linkedin’ || ‘microsoft’ || ‘twitch’ || ‘twitter’ || ‘blocto’ || ‘banxa’ || ‘dynamic’ || ‘alchemy’ || ‘zerodev’ || ‘turnkey’