Scaling Ethereum Hackathon 2021


Speed Up DID Resolution with IPFS and SKALE network



Team Members:

Frank Wang,

Eason Chen,

Ming-Der Wang

Taipei, Taiwan 🇹🇼


  • To Complete a MVP of a W3C DID compliance Identification System
  • To Implement a IPDID Node CLI (inspired by IPFS)
  • To Provide both iOS and Android Demo Apps for a DID Wallet
  • To Demo a Verifiable Credential (VC) Issuer with QR codes
  • To Deploy Our Smart Contract to SKALE network
  • To Register DID Document on IPFS (block)
  • To Provide a RESTful API server for DID resolvers
  • To Have Our IPDID Method Driver on the DIF Universal Resolver
  • and so on ...

< # in 3 weeks #>

Why It Calls IPDID?

It stands for

a IPFS-based Decentralized Identifier

IPDID Follows the W3C DID Standards


the DID method

a IPFS block CID v0



  "@context": "https://w3id.org/did/v1",
  "id": "did:ipdid:QmQy3t3odW3wUmJdCwbMAQTRCVjX5VrcSegNkCewXEVdbM",
  "publicKey": [
      "id": "did:ipdid:QmQy3t3odW3wUmJdCwbMAQTRCVjX5VrcSegNkCewXEVdbM",
      "type": "Ed25519VerificationKey2020",
      "publicKeyMultibase": "zBW6drJM5ErsqLZQkZL7XAcKFaJhVK1C4bB5GviSFftuD"

Can be resolved to a DID document for more detailed information. So that ...

So, we need some way to store and retrieve our DIDs/DID Documents

decentralized and FAST !!!

low cost, or even FREE???


* libp2p (p2p stack)

* multiformat

* IPLD (Linked Data)

* CID v0, v1(multihashing)

* Good Documents

* Open Source

* Community

* Prizes...


* EVM compatible

* Solidity - Smart Contract

* Fast (up to 2,000 tps per chain)

* Low Cost (0 Gas?)

* Works with Hardhat and Metamask

* Many Prizes ...

We choiced IPFS + SKALE 🔥

What We Have Done!

(during these 3 weeks)

* IPDID cli

* Universal Resolver Driver

* IPDID Wallet (iOS/Android)

* IPDID Resolver Gateway

   - DID/CID/DID documents

 distributed storages

   - a RESTful API Server

1. DID Wallet

(mobile demo App)

It can scan DID QR codes, retrieve and display detailed information of the IDs or the claims.

Develop and Deploy via  EXPO (react native)


Which you can use IPDID CLI to issue claims or create DIDs with QR codes.

ipdid Command

➜  ipdid --help
IPDID cli - Need to run with a ipfs node. (http://ipfs.io)

      ipdid/0.1.1 darwin-arm64 node-v16.0.0

      $ ipdid [COMMAND]

      did    register a DID to SKALE network and IPFS (IPLD) - use pipe only
      help    display help for ipdid
      init    create a new IPDID ipfs (deprecated)
      mydid   return your current DID
      qrcode  to generate a QR-code from your context or stdin
      signer create a singer's key pair and save on ~/.ipdid_keystore.json
      vc      create a verifiable claim for a DID document

mydid sub-Command

ipdid mydid -q

click to see the how a DID is actually  resolved

A basic DID

To show on the DID Wallet

vc sub-Command

ipdid vc --who='did:ipdid:QmQy3t3odW3wUmJdCwbMAQTRCVjX5VrcSegNkCewXEVdbM' --school='😀 Stanford University'  | ipdid did

click to see the how a DID is actually  resolved

A sample VC DID

To show on the DID Wallet

3. Distributed Storages

(IPFS blocks, a Smart Contract on SKALE network, and a RESTful API server for data sharing)

The RESTful API Server

4. DIF Universal Resolver Driver

(for IPDID DID method)

DIF Universal Resolver

  • fully support it with our IPDID DID Method: did:ipdid

To query with a DID:


Result with a respective DID Document:

(as follows)



To issue a VC

Resolve the VC

click to install

link to API server

Q & A

Q & A


Team Members: Frank Wang, Eason Chen, Ming-Der Wang

Taipei, Taiwan 🇹🇼


By Ming-der Wang


  • 251
Loading comments...

More from Ming-der Wang