/universal-resolver

Universal Resolver implementation and drivers.

Primary LanguageJavaApache License 2.0Apache-2.0

DIF Logo

Universal Resolver

The Universal Resolver resolves Decentralized Identifiers (DIDs) across many different DID methods, based on the W3C DID Core 1.0 and DID Resolution specifications.

See this blog post and this webinar for an introduction.

See https://resolver.identity.foundation/ for a stable version or https://dev.uniresolver.io/ for a test instance of a Universal Resolver.

Quick Start

You can deploy the Universal Resolver on your local machine by cloning this Github repository, and using docker-compose to build and run the Universal Resolver as well as its drivers.

git clone https://github.com/decentralized-identity/universal-resolver
cd universal-resolver/
docker-compose -f docker-compose.yml pull
docker-compose -f docker-compose.yml up

You should then be able to resolve identifiers locally using simple curl requests as follows:

curl -X GET http://localhost:8080/1.0/identifiers/did:sov:WRfXPg8dantKVubE3HX8pw
curl -X GET http://localhost:8080/1.0/identifiers/did:btcr:xz35-jznz-q6mr-7q6
curl -X GET http://localhost:8080/1.0/identifiers/did:v1:test:nym:z6Mkmpe2DyE4NsDiAb58d75hpi1BjqbH6wYMschUkjWDEEuR
curl -X GET http://localhost:8080/1.0/identifiers/did:key:z6Mkfriq1MqLBoPWecGoDLjguo1sB9brj6wT3qZ5BxkKpuP6
curl -X GET http://localhost:8080/1.0/identifiers/did:ipid:QmYA7p467t4BGgBL4NmyHtsXMoPrYH9b3kSG6dbgFYskJm
curl -X GET http://localhost:8080/1.0/identifiers/did:web:did.actor:alice
curl -X GET http://localhost:8080/1.0/identifiers/did:web:did.actor:bob
curl -X GET http://localhost:8080/1.0/identifiers/did:web:did.actor:mike
curl -X GET http://localhost:8080/1.0/identifiers/did:ethr:mainnet:0x3b0BC51Ab9De1e5B7B6E34E5b960285805C41736
curl -X GET http://localhost:8080/1.0/identifiers/did:ethr:0x4:0x3b0BC51Ab9De1e5B7B6E34E5b960285805C41736
curl -X GET http://localhost:8080/1.0/identifiers/did:ethr:0x02b97c30de767f084ce3080168ee293053ba33b235d7116a3263d29f1450936b71
curl -X GET http://localhost:8080/1.0/identifiers/did:ethr:0x1e:0x02b97c30de767f084ce3080168ee293053ba33b235d7116a3263d29f1450936b71
curl -X GET http://localhost:8080/1.0/identifiers/did:eosio:eos:eoscanadacom
curl -X GET http://localhost:8080/1.0/identifiers/did:eosio:4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11:caleosblocks
curl -X GET http://localhost:8080/1.0/identifiers/did:nacl:Md8JiMIwsapml_FtQ2ngnGftNP5UmVCAUuhnLyAsPxI
curl -X GET http://localhost:8080/1.0/identifiers/did:jolo:e76fb4b4900e43891f613066b9afca366c6d22f7d87fc9f78a91515be24dfb21
curl -X GET http://localhost:8080/1.0/identifiers/did:stack:v0:16EMaNw3pkn3v6f2BgnSSs53zAKH4Q8YJg-0
curl -X GET http://localhost:8080/1.0/identifiers/did:erc725:ropsten:2F2B37C890824242Cb9B0FE5614fA2221B79901E
curl -X GET http://localhost:8080/1.0/identifiers/did:hcr:0f674e7e-4b49-4898-85f6-96176c1e30de
curl -X GET http://localhost:8080/1.0/identifiers/did:neoid:priv:b4eeeb80d20bfb38b23001d0659ce0c1d96be0aa
curl -X GET http://localhost:8080/1.0/identifiers/did:elem:EiAS3mqC4OLMKOwcz3ItIL7XfWduPT7q3Fa4vHgiCfSG2A
curl -X GET http://localhost:8080/1.0/identifiers/did:github:gjgd
curl -X GET http://localhost:8080/1.0/identifiers/did:ccp:ceNobbK6Me9F5zwyE3MKY88QZLw
curl -X GET http://localhost:8080/1.0/identifiers/did:work:2UUHQCd4psvkPLZGnWY33L
curl -X GET http://localhost:8080/1.0/identifiers/did:ont:AN5g6gz9EoQ3sCNu7514GEghZurrktCMiH
curl -X GET http://localhost:8080/1.0/identifiers/did:kilt:5CqJa4Ct7oMeMESzehTiN9fwYdGLd7tqeirRMpGDh2XxYYyx
curl -X GET http://localhost:8080/1.0/identifiers/did:evan:testcore:0x126E901F6F408f5E260d95c62E7c73D9B60fd734
curl -X GET http://localhost:8080/1.0/identifiers/did:echo:1.1.25.0
curl -X GET http://localhost:8080/1.0/identifiers/did:dock:5FXqofpV7dsuki925U1dSzDvBuQbaci5yWTQGVWRQ7bdQP5p
curl -X GET http://localhost:8080/1.0/identifiers/did:abt:z116ygT18P67xBp3scBtZLU6xVoDy268bgnY
curl -X GET http://localhost:8080/1.0/identifiers/did:trustbloc:testnet.trustbloc.dev:EiBLTZcCj6u_XsufSuLVh2zbPEREjDcu8bnPgs0XyKkfPQ
curl -X GET http://localhost:8080/1.0/identifiers/did:sirius:2VhYrbauc2cCx9ZpCp5wrDtK7HKf7jrsvgoKBD4KgK
curl -X GET http://localhost:8080/1.0/identifiers/did:mpg:7PGGnRdvKKFftSXU3Jw75Vk5npfg
curl -X GET http://localhost:8080/1.0/identifiers/did:trust:cert.EiDi8NEZVyvqmHeWRB5kUagWo3sDSQlCtl1nZ1vVgLdozw
curl -X GET http://localhost:8080/1.0/identifiers/did:io:0x476c81C27036D05cB5ebfe30ae58C23351a61C4A
curl -X GET http://localhost:8080/1.0/identifiers/did:bba:t:45e6df15dc0a7d91dcccd24fda3b52c3983a214fb0eed0938321c11ec99403cf
curl -X GET http://localhost:8080/1.0/identifiers/did:cy:2nnn7H7RJLLhFPoGyzxPCLzuhrzJ
curl -X GET http://localhost:8080/1.0/identifiers/did:bid:6cc796b8d6e2fbebc9b3cf9e
curl -X GET http://localhost:8080/1.0/identifiers/did:schema:public-ipfs:json-schema:Qma2beXKwZeiUXcaRaQKwbBV1TqyiJnsMTYExUTdQue43J
curl -X GET http://localhost:8080/1.0/identifiers/did:ion:EiClkZMDxPKqC9c-umQfTkR8vvZ9JPhl_xLDI9Nfk38w5w
curl -X GET http://localhost:8080/1.0/identifiers/did:ace:0xf81c16a78b257c10fddf87ed4324d433317169a005ddf36a3a1ba937ba9788e3
curl -X GET http://localhost:8080/1.0/identifiers/did:gatc:2xtSori9UQZdTqzxrkp7zqKM4Kj5B4C7
curl -X GET http://localhost:8080/1.0/identifiers/did:icon:01:64aa0a2a479cb47afbf2d18d6f9f216bcdcbecdda27ccba3
curl -X GET http://localhost:8080/1.0/identifiers/did:vaa:3wJVWDQWtDFx27FqvSqyo5xsTsxC
curl -X GET http://localhost:8080/1.0/identifiers/did:unisot:1EjHm7VtgsqNzCkvA8XRgGXZ1UKo1txSM4
curl -X GET http://localhost:8080/1.0/identifiers/did:bitxhub:appchain001:0xc7F999b83Af6DF9e67d0a37Ee7e900bF38b3D013
curl -X GET http://localhost:8080/1.0/identifiers/did:sol:ygGfLvAyuRymPNv2fJDK1ZMpdy59m8cV5dak6A8uHKa
curl -X GET http://localhost:8080/1.0/identifiers/did:lit:AEZ87t1bi5bRxmVh3ksMUi
curl -X GET http://localhost:8080/1.0/identifiers/did:ebsi:DfPaUdYwuzcqFoiMDSrUX8aQyZnr2SesH3vDVASYv8PE
curl -X GET http://localhost:8080/1.0/identifiers/did:emtrust:0x242a5ac36676462bd58a
curl -X GET http://localhost:8080/1.0/identifiers/did:meta:0000000000000000000000000000000000000000000000000000000000005e65
curl -X GET http://localhost:8080/1.0/identifiers/did:tz:tz1YwA1FwpgLtc1G8DKbbZ6e6PTb1dQMRn5x
curl -X GET http://localhost:8080/1.0/identifiers/did:orb:ipfs:bafkreifco5fp7ztvqnnvv4aqnnbktuvzhlh5tofr65ahyy37euafoscn7m:EiClaNSwhKSP6tQe36bYc5w41oRpCi1xv89MkUnNBm8agw

If this doesn't work, see Troubleshooting.

Drivers

Are you developing a DID method and Universal Resolver driver? Click Driver Development for instructions.

Driver Name Driver Version DID Method Spec Version Docker Image or URL Description
did-abt 0.1-SNAPSHOT 0.1 arcblock/driver-did-abt ArcBlock (decentralized developer platform)
did-btcr 0.1-SNAPSHOT 0.1 universalresolver/driver-did-btcr Bitcoin Reference
did-sov 0.1-SNAPSHOT 0.1 universalresolver/driver-did-sov Sovrin public ledger
did-erc725 0.1-SNAPSHOT 0.1 universalresolver/driver-did-erc725 Ethereum ERC725
did-stack 0.1 1.0 universalresolver/driver-did-stack
did-dom 0.1-SNAPSHOT (missing) universalresolver/driver-did-dom
did-ethr 2.1.0 4.3.3 uport/uni-resolver-driver-did-uport Ethereum addresses or secp256k1 publicKeys
did-eosio 0.1.3 0.1 gimlyblockchain/eosio-universal-resolver-driver EOSIO blockchain platform
did-web 2.1.0 3.0.0 uport/uni-resolver-driver-did-uport Domain name
did-v1 0.1 1.0 veresone/uni-resolver-did-v1-driver Veres One Blockchain
did-ipid 0.1 InterPlanetary File System
did-jolo 0.1 0.1 jolocomgmbh/jolocom-did-driver Jolocom identity management
did-hacera 0.1 (missing) hacera/hacera-did-driver HACERA autonomous data exchange network
did-elem 0.1 (missing) Experimental Sidetree protocol (Ethereum and IPFS)
did-seraphid 0.1 (missing) swisscomblockchainag/seraph-id-did-driver Seraph ID (SSI solution on the NEO blockchain platform)
did-github 0.1 (missing) Github
did-ccp 0.1-SNAPSHOT 0.1 hello2mao/driver-did-ccp Baidu Cloud
did-work 0.2 1.0 didwork/work-did-driver Workday Credentials
did-ont 0.1 1.0 ontio/ontid-driver Ontology ONT ID
did-kilt 1.2.1 1.0 kiltprotocol/kilt-did-driver KILT Protocol (SSI credentials)
did-evan 0.1 0.9 evannetwork/evan-did-driver evan.network
did-echo 0.0.1 1.0 echoprotocol/uni-resolver-driver-did-echo Echo network (for applications that work with Bitcoin and Ethereum)
did-key 1.0.0 0.7 universalresolver/driver-did-key Public keys (in general)
did-dock 0.1.0 0.1 docknetwork/dock-did-driver Dock verifiable credentials
did-trustbloc 0.1.5 0.1 trustbloc/driver-did-trustbloc TrustBloc consortium verification method
did-sirius 0.0.1 0.2 proximax-enterprise/tsjs-did-sirius-id-driver ProximaX Sirius Chain network (SSI platform)
did-trust 0.1 0.1 bjwswang/driver-did-trust
did-io 0.1.0 (missing) iotex/uni-resolver-driver-did-io IoTeX Network
did-bba 0.2.2 1.0 blobaa/bba-did-driver Blobaa blockchain-based authentication on the Ardor blockchain
[did-cy] 0.1.0
did-bid 1.0.0 1.0.1 teleinfo/driver-did-bid BIF (Blockchain Identifier Infrastructure)
did-schema 0.1.1 0.1 51nodes/schema-registry-did-resolver Identify and address schema definitions in a schema registry
did-ion 0.8.1 0.1 identityfoundation/driver-did-ion ION network (Sidetree implementation on top of Bitcoin)
did-ace 1.0 (missing) aceblock/ace-did-driver AceBlock blockchain framework
did-gatc 1.0.0 1.0 WD gatacaid/universal-resolver-driver GATACA (blockchain-based digital identity platform)
did-icon-zzeung 0.1.2 1.0 WD amuyu/driver-did-icon ICON decentralized network
did-vaa 1.0.0 1.0 WD caict/driver-did-vaa BIF blockchain
did-unisot 1.0.0 1.0.0 unisot/unisot-did-driver UNISOT distributed identity system (atop Bitcoin SV blockchain)
did-bitxhub 1.0.0 (missing) meshplus/driver-did-bitxhub
did-sol 1.0.0 1.0.0 identitydotcom/driver-did-sol Solana blockchain
did-lit 0.1.1 0.1.1 ibct/driver-did-lit LEDGIS blockchain
did-ebsi 2.0.0 2.0.0 URL EBSI Platform (European Blockchain Services Infrastructure)
did-emtrust 0.1 0.1 halialabsdev/emtrust_did_driver EmTrust WAI distributed identity system
did-meta 1.0 1.0 URL Metadium Decentralized Identifiers
did-tz 0.1.0 1.0 CR Draft 20210627 0.1 ghcr.io/spruceid/didkit-http
did-orb 0.1.1 0.1 trustbloc/orb-did-driver

More Information

About

Decentralized Identity Foundation - https://identity.foundation/


Supported by NLnet and NGI0 PET, which is made possible with financial support from the European Commission's Next Generation Internet programme.