zkID.app Guide Walkthrough
zCloak Network is a privacy-preserving computing platform. It enables a new computation paradigm where people can do computation/analysis of their data in client devices, not in centralized servers. The integrity of their computation is proven by Zero-Knowledge Proof. With zCloak Network, people can use their real-world data for e.g. DeFi, Identity, Biometric applications without disclosing their privacy.
What is zkID.app?
Prove who you are, without telling who you are.
zkID.app is the first product of zCloak Network for privacy-preserving self-sovereign identity. It enables local computation on user identity data in a browser extension. Powered by a novel cryptography primitive, zk-STARK, Zero-Knowledge Proof is generated to ensure the integrity of user computation and to hide user input data. As such, users can prove their identity attributes to any entities, for instance, a smart contract without exposing their real-life data to any 3rd party.
What is zkID.app Guide?
In the zkID.app Guide, an identity credential is generated for your game character, and you will receive a POAP (Proof of Attendance Protocol) NFT as a commemoration of successfully going through the guide. The POAP will be airdropped to your MetaMask wallet address based on the details of your credential. The interesting part is, you never show the data of your credential to the NFT minting smart contract. Instead, you send a ZK-proof to it which proves that you meet certain requirements. This is what we mean by saying “Prove who you are without telling who you are.”
The zkID.app Guide is a quick demo to showcase the capability of zCloak Network. A polished user interface for more general-purpose applications will be released soon.
So for now, follow the guide and claim your POAP NFT!
zkID.app guide — a walkthrough.
Go to zkid.app and follow the link “Connect your wallet and get started” to begin. Connect your MetaMask wallet and switch your network to
A faucet is made to automatically distribute some DEV tokens of
Moonbase-Alphanet to your MetaMask wallet in order to cover gas fees in later steps.
Click “Get Started” and follow the guide steps.
1) Install the zCloak ID Wallet.
Click “Install” to add zCloak ID Wallet to your Chrome extensions. (Chrome/Brave browsers are supported at the moment.)
This wallet is for storing your credentials, performing ZK-computation, and generating STARK proofs.
Set up a password to secure your wallet data and grant permission for future operations.
2) Input your credentials.
Read the letter from zCloak Kingdom before clicking “Understand”.
In the zCloak Kingdom, everyone possesses an identity credential that includes their age, class, and equipment level. To obtain such credential, you need to fill in your name and DoB on the Describe Yourself page.
There are four classes of Adventurers that you can choose from, Warrior, Paladin, Priest, and Mage. Each of them generates different POAP styles. The POAP style rules are attached at the end.
The equipment rarity of your POAP is randomized by the program. You can click “Random” several times to reach your desired parameter combination.
Then, by clicking the submit button, your identity description is sent to our attester to get attested, and an identity credential will be issued to you.
*Note that in normal real-world use cases, your identity data will be encrypted and sent to a licensed KYC service provider for authenticity check. In this guide, we have ignored this step and just assume everything you filled in is true. (This is just a quick game, anyway.)
3) Import your credential to your zCloak ID Wallet.
Click “Download” and receive a json file in your Downloads folder.
Click “Import” on your zCloak ID Wallet extension and upload the json file you just downloaded.
4) Generate and upload your proof.
Click “Generate” and type in your password on your zCloak ID Wallet extension.
Click “Submit” to send your Proof to zCloak smart contract. Confirm gas fee on your MetaMask Wallet extension, and wait for the verification result of your STARK proof to come back.
*Behind the scene, several keeper nodes will do STARK proof verification independently, do majority-voting and write the final result in a smart contract. So this may take some time.
5) Claim a POAP NFT of your own.
Once your proof is successfully verified, you will be able to claim your gift POAP.
Confirm gas fee again for distributing POAP to your address.
Wait a few seconds and you can view your POAP on your dashboard!
*Note: your character data has never left you in this whole process. This is what we mean by saying “Data and computation, keep both in your own hands.”
If you want to try the guide again, delete Credentials in your browser local storage by clicking the “Clear storage and replay” button. (Your Credentials and Proofs in your zCloak ID Wallet extension will be replaced with a new one every time you replay the guide.)
Change your MetaMask account connected to zkid.app and restart the guide.
This guide demonstrates how we can use zero-knowledge proof for computation in user devices. Technology wise, there are 3 key takeaways:
- Data and computation are in user space, not in centralized servers.
- A WASM zk-STARK virtual machine is used for local computation — range checking, membership and more general purpose computations are all supported.
- DID, Verifiable Credential (with the support of KILT protocol) and ZK-proof technology are combined to guarantee the authenticity of user data and the integrity of user computation.
*POAP Style Rules
The POAP style varies by age, class and equipment rarity. The calculation rules are as follows:
1. Warrior & Paladin : Physical Damage; Priest & Mage: Magical Damage
2. If an adventurer is junior (age less than 18), then the adventurer should hold Shield Shield(Physical Damage) or Spellbook(Magical Damage).
3. If an adventurer is an adult, then the adventurer should hold Sword(Physical Damage) or Wand(Magical Damage)
4. If the average of all equipment rarities is over 6, the adventurer will receive a golden-edged POAP that symbolizes their advanced equipment.