Skip to content

Supported DID Methods

This reference documents the DID methods supported by the Resolver service. These methods can be used with Verifier configurations to establish trust in verifiable credentials.

Vidos supports multiple Decentralized Identifier (DID) methods that enable identity management across different platforms and technologies. Each method follows W3C DID specifications while offering unique characteristics for specific use cases.

This reference documents each supported DID method, its format, and implementation details. For implementation guidance, see the DID Integration Guide.

The following DID methods are available for identity resolution within the Vidos ecosystem:

MethodFoundationPrimary Use CaseNetwork SupportResource Linking
did:cheqdCosmosIdentity with linked dataMainnet, TestnetYes
did:ebsiEBSI BlockchainEU public servicesEBSI NetworkNo
did:ensEthereum Name ServiceDomain-based identityEthereumNo
did:ethrEthereumBlockchain identityMultiple NetworksNo
did:ionBitcoin (Sidetree)High-throughput identityMainnet, TestnetNo
did:jwkJSON Web KeyCryptographic identityN/ANo
did:keyPublic KeySelf-contained identityN/ANo
did:oydOwn Your DataSelf-sovereign identityN/ANo
did:pkhPublic Key HashMulti-chain identityMultiple NetworksNo
did:plcPLC ProtocolSelf-sovereign identityCentralized DirectoryNo
did:polygonidPolygonScalable identityMainnet, MumbaiNo
did:webWeb DomainWeb-integrated identityN/AYes
did:webvhWeb + Version HashVerifiable web identityN/AYes

The cheqd DID method enables verifiable data exchange on the cheqd network with enhanced privacy features for user-centric identity management.

Built on the Cosmos blockchain, cheqd operates on both mainnet and testnet networks, enabling decentralized identity management without central authorities.

  • Linked data resources - Retrieve credential-related resources using DIDs
  • Network flexibility - Operates on both mainnet and testnet
  • Resource binding - Connects DIDs to linked resources using resourceId

Use cheqd DIDs when you need decentralized identity with linked resources, especially in sectors requiring enhanced data protection and verifiability.

did:cheqd:[network]:<identifier>[?resourceId=<resource-identifier>]

Where:

  • [network] is optional (mainnet or testnet)
  • <identifier> is a UUID format string
  • resourceId parameter links to associated resources
  • With linked resource: did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c?resourceId=5e16a3f9-7c6e-4b6b-8e28-20f56780ee25
  • Mainnet: did:cheqd:b5d70adf-31ca-4662-aa10-d3a54cd8f06c
  • Explicit network: did:cheqd:mainnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c
  • Testnet: did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c

The EBSI DID method provides secure, cross-border identity services across European Union member states through the European Blockchain Services Infrastructure.

Operates on EBSI’s public permissioned blockchain network, designed specifically for government and public sector applications within the EU.

  • EU-wide interoperability - Works across all member states
  • Regulatory compliance - Designed for EU regulations and standards
  • Public service integration - Optimized for government services

Use EBSI DIDs for public sector applications, cross-border EU services, and scenarios requiring compliance with European digital identity frameworks.

did:ebsi:<identifier>

Where:

  • <identifier> is a base58-encoded string
  • Standard format: did:ebsi:zbM8cCuoBMFNLeQyLiVFyxw

The ENS DID method connects decentralized identities with human-readable Ethereum Name Service domains for improved user experience.

Based on the Ethereum Name Service infrastructure running on the Ethereum blockchain, providing name resolution for blockchain addresses.

  • Human-readable names - Uses familiar domain-name format
  • Ethereum integration - Works with the entire Ethereum ecosystem
  • Reverse resolution - Supports reverse lookup from address to name

Use ENS DIDs when you need human-readable identifiers for blockchain interactions, especially on Ethereum and for public-facing identity applications.

did:ens:<ens-name>

Where:

  • <ens-name> is a registered ENS domain
  • Standard format: did:ens:mailchain.eth

The Ethr DID method uses Ethereum addresses and transactions to enable lightweight, standards-compliant identity management on the Ethereum blockchain.

Built directly on Ethereum’s account system, using addresses as identifiers and transactions for identity operations.

  • Ethereum compatible - Works with any Ethereum account
  • Key rotation - Supports key management operations
  • Multiple networks - Functions across various Ethereum-compatible networks

Use Ethr DIDs for Ethereum-based applications, smart contract interactions, and when simple blockchain identity with broad compatibility is needed.

did:ethr:[network]:<identifier>

Where:

  • [network] is optional (defaults to mainnet)
  • <identifier> is an Ethereum address or public key
  • Address-based: did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74
  • Key-based: did:ethr:0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798

The ION DID method provides high-throughput, Layer 2 decentralized identifiers on Bitcoin, enabling scalable identity systems without increasing blockchain costs.

Implements the Sidetree protocol on Bitcoin, using batched transactions to manage many DID operations in a cost-effective manner.

  • High throughput - Handles many operations in batched transactions
  • Bitcoin security - Inherits security from the Bitcoin blockchain
  • Multiple networks - Supports mainnet and testnet
  • Sidetree compatibility - Works with other Sidetree implementations

Use ION DIDs for production identity systems requiring high scalability, strong security, and Bitcoin’s decentralization properties.

did:ion:[network]:<encoded-state>

Where:

  • [network] is optional (mainnet or test)
  • <encoded-state> is the encoded DID state
  • Mainnet: did:ion:EiAnKD8-jfdd0MDcZUjAbRgaThBrMxPTFOxcnfJhI7Ukaw:eyJkZWx0YSI6eyJwYXRjaGVzIjpbeyJhY3Rpb24iOiJyZXBsYWNlIiwiZG9jdW1lbnQiOnsicHVibGljS2V5cyI6W3siaWQiOiJzaWdfNzJiZDE2ZDYiLCJwdWJsaWNLZXlKd2siOnsiY3J2Ijoic2VjcDI1NmsxIiwia3R5IjoiRUMiLCJ4IjoiS2JfMnVOR3Nyd1VOdkh2YUNOckRGdW14VXlQTWZZd3kxNEpZZmphQUhmayIsInkiOiJhSFNDZDVEOFh0RUxvSXBpN1A5eDV1cXBpeEVxNmJDenQ0QldvUVk1UUFRIn0sInB1cnBvc2VzIjpbImF1dGhlbnRpY2F0aW9uIiwiYXNzZXJ0aW9uTWV0aG9kIl0sInR5cGUiOiJFY2RzYVNlY3AyNTZrMVZlcmlmaWNhdGlvbktleTIwMTkifV0sInNlcnZpY2VzIjpbeyJpZCI6ImxpbmtlZGRvbWFpbnMiLCJzZXJ2aWNlRW5kcG9pbnQiOnsib3JpZ2lucyI6WyJodHRwczovL3d3dy52Y3NhdG9zaGkuY29tLyJdfSwidHlwZSI6IkxpbmtlZERvbWFpbnMifV19fV0sInVwZGF0ZUNvbW1pdG1lbnQiOiJFaUR4SWxJak9xQk5NTGZjdzZndWpHNEdFVDM3UjBIRWM2Z20xclNZTjlMOF9RIn0sInN1ZmZpeERhdGEiOnsiZGVsdGFIYXNoIjoiRWlBLXV3TWo3RVFheURmWTRJS3pfSE9LdmJZQ05td19Tb1lhUmhOcWhFSWhudyIsInJlY292ZXJ5Q29tbWl0bWVudCI6IkVpQ0czQ1M5RFJpeU1JRVoxRl9sSjZnRVRMZWVHREwzZnpuQUViMVRGdFZXNEEifX0

The PolygonID DID method provides scalable identity infrastructure on the Polygon blockchain with optimized performance and cost.

Built on the Polygon (formerly Matic) blockchain, offering Ethereum compatibility with higher throughput and lower fees.

  • High scalability - Handles many identity operations efficiently
  • Low fees - Reduces transaction costs compared to Ethereum mainnet
  • Multiple networks - Supports Polygon mainnet and Mumbai testnet
  • Read-only mode - Offers lightweight verification options

Use PolygonID DIDs for high-volume identity applications, credential issuance at scale, and when lower transaction costs are important.

did:polygonid:polygon:[network]:<identifier>

Where:

  • [network] is optional (main or mumbai)
  • <identifier> is a base58-encoded string
  • Mainnet: did:polygonid:polygon:main:2pzr1wiBm3Qhtq137NNPPDFvdk5xwRsjDFnMxpnYHm

The JWK DID method encodes a JSON Web Key directly into the identifier, enabling immediate cryptographic verification without external resolution.

Based on JSON Web Key (JWK) standard from IETF, using cryptographic keys in a standardized JSON format as the foundation for identifiers.

  • Self-contained - Includes verification material directly in the identifier
  • No external resolution - Verifiable without network access
  • Standard compatibility - Works with existing JWK infrastructure
  • Key type flexibility - Supports multiple cryptographic algorithms

Use JWK DIDs for lightweight verification scenarios, offline environments, and applications requiring minimal infrastructure dependency.

did:jwk:<base64url-encoded-jwk>

Where:

  • <base64url-encoded-jwk> is a base64url encoding of a JWK
  • Standard format: did:jwk:eyJjcnYiOiJQLTI1NiIsImt0eSI6IkVDIiwieCI6ImFjYklRaXVNczNpOF91c3pFakoydHBUdFJNNEVVM3l6OTFQSDZDZEgyVjAiLCJ5IjoiX0tjeUxqOXZXTXB0bm1LdG00NkdxRHo4d2Y3NEk1TEtncmwyR3pIM25TRSJ9

The Key DID method encodes public keys directly into the identifier, creating portable, self-contained identifiers that work without network access.

Based on multicodec-encoded public keys, supporting various cryptographic algorithms without requiring any external infrastructure.

  • Self-contained - Includes verification material in the identifier
  • Offline verification - Functions without network connectivity
  • Multiple key types - Supports ed25519, secp256k1, and other key types
  • Minimal infrastructure - Requires no external systems

Use Key DIDs for lightweight identity applications, offline verification scenarios, and bootstrapping more complex identity systems.

did:key:<multibase-encoded-public-key>

Where:

  • <multibase-encoded-public-key> is a multibase-encoded multicodec public key
  • Ed25519 key: did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK

The Own Your Data (OYD) DID method enables self-sovereign identity management through a self-sustained environment for managing decentralized identifiers.

Built on a self-hosted architecture that prioritizes data sovereignty, allowing individuals to maintain complete control over their identity data.

  • Self-sovereign - Full user control without third-party dependencies
  • Cryptographic verification - Standard verification methods
  • Minimal infrastructure - Lightweight implementation
  • Data sovereignty - Prioritizes user control of personal data

Use OYD DIDs for private identity management, applications emphasizing data sovereignty, and scenarios requiring minimal external dependencies.

did:oyd:<identifier>

Where:

  • <identifier> is a base58-encoded value
  • Standard format: did:oyd:zQmNXp9zTLQECaLwWcXy4ctdKctnPLghHWftwdJsfGd8Erz

The PKH DID method creates identifiers from public key hashes across multiple blockchains, offering a unified interface for blockchain addresses as DIDs.

Based on standard public key hash derivation methods used in various blockchains, creating a cross-chain identity layer.

  • Multi-blockchain support - Works with Bitcoin, Ethereum, Tezos, Solana, and others
  • Familiar addresses - Uses existing blockchain address formats
  • Cross-chain compatibility - Same structure across different networks
  • No additional infrastructure - Uses existing blockchain systems

Use PKH DIDs to integrate existing blockchain addresses into DID ecosystems, for cross-chain identity, and when leveraging existing wallet infrastructure.

did:pkh:<network-identifier>:<address>

Where:

  • <network-identifier> specifies the blockchain network (e.g., bip122:000000000019d6689c085ae165831e93 for Bitcoin)
  • <address> is the blockchain address in the native format
  • Bitcoin: did:pkh:bip122:000000000019d6689c085ae165831e93:128Lkh3S7CkDTBZ8W7BbpsN3YYizJMp8p6
  • Ethereum: did:pkh:eip155:1:0xb9c5714089478a327f09197987f16f9e5d936e8a
  • Tezos: did:pkh:tezos:NetXdQprcVkpaWU:tz1TzrmTBSuiVHV2VfMnGRMYvTEPCP42oSM8

The PLC DID method uses a central directory server to validate operations and maintain a transparent log for each DID, balancing decentralization with auditability.

Based on a protocol that collects and validates operations through a central directory server, maintaining operation logs for auditability.

  • Self-sovereign - User control over identifiers
  • Transparent logs - Auditable operation history
  • Central directory - For validation and discovery
  • Secure updates - Cryptographically verifiable changes

Use PLC DIDs for applications requiring both self-sovereign control and transparent, auditable identity operations.

did:plc:<identifier>

Where:

  • <identifier> is a base32-encoded string
  • Standard format: did:plc:7iza6de2dwap2sbkpav7c6c6

The Web DID method integrates decentralized identifiers with standard web infrastructure, using existing domains and HTTPS for resolution.

Uses standard web domains and HTTPS URLs to host DID documents, leveraging existing web infrastructure for identity management.

  • Web integration - Uses existing domains and web hosting
  • Simple implementation - Standard web servers and DNS
  • Path flexibility - Supports sub-paths for multiple identities
  • HTTPS security - Uses standard TLS for encryption

Use Web DIDs to integrate DIDs with existing web infrastructure, for organizational identities, and when simplicity of implementation is prioritized.

did:web:<domain>[:<port>][/<path>]

Where:

  • <domain> is a standard web domain
  • <port> is optional (defaults to standard HTTPS port)
  • <path> is optional for sub-identities
  • Simple domain: did:web:w3c-ccg.github.io
  • With path: did:web:w3c-ccg.github.io:user:alice

The WebVH DID method enhances web-based DIDs with version history and content integrity verification through cryptographic hashes.

Builds upon the Web DID method by adding version history tracking and content integrity verification using cryptographic hashes, enabling verifiable web-based identities.

  • Version history - Maintains cryptographic history of DID document changes
  • Content integrity - Verifies document content through hash validation
  • Web integration - Compatible with existing web infrastructure
  • Backward compatibility - Works with standard web DID infrastructure

Use WebVH DIDs when you need web-based identities with verifiable version history, content integrity guarantees, and auditable document changes over time.

did:webvh:<hash>:<domain>[:<port>][/<path>]

Where:

  • <hash> is a cryptographic hash for version identification
  • <domain> is a standard web domain
  • <port> is optional (defaults to standard HTTPS port)
  • <path> is optional for sub-identities
  • With GitHub Gist: did:webvh:QmPEQVM1JPTyrvEgBcDXwjK4TeyLGSX1PxjgyeAisdWM1p:gist.githubusercontent.com:brianorwhatever:9c4633d18eb644f7a47f93a802691626:raw
  • Standard domain: did:webvh:QmVJ5nUYb9iugnUz4yDfbe8UFbhmnsvS2EAzSpSfPScRAn:opsecid.github.io