This project demos the use of verifiable credentials on the Internet Computer. It uses Gitcoin Passport as an example source of verifiable credentials.
Verifiable credentials is allows organizations and individuals to create and share their identities and claims securely. Support for verifiable credentials was recently introduced to the identity layer of the Internet Computer (IC), enabling developers to issue and verify credentials on the IC platform.
Passport helps you collect “stamps” that prove your humanity and reputation.
The more stamps you collect, the higher your reputation. Passport scores are accessible through an API provided by Gitcoin can also be minted as "attestations" on Ethereum. Up until now, the passport score is a credential that has not been available on IC.
The project consists of four main packages, two Rust based backend canisters and two frontend canisters built using React.
Stores the link between Gitcoin Passport and II account and issues verifiable credentials to prove the Gitcoin Passport Score.
In this interface, the user logs in with their Ethereum address and II credentials and then links their Gitcoin Passport to their II account.
Try it out: https://ycons-daaaa-aaaal-qja3q-cai.icp0.io
Provides an endpoint called do_something
that requires the user to prove their Gitcoin Passport Score. The endpoint returns a string that is the result of the verifiable credential verification.
Here, the user can securely request a verifiable credential from the issuer proving their Gitcoin Passport Score.
Try it out: https://jzi4k-7qaaa-aaaal-qdncq-cai.icp0.io
Before you get started, make sure you have dfx
installed. You can find instructions on how to install dfx
here.
dfx start --clean
make deploy-all
I published an article that provides a more detailed explanation of how verifiable credentials work on the IC. It also includes a walkthrough of the demo app:
Also, check out the developer documentation provided by IC:
- kristofer@kristoferlund.se
- Twitter: @kristoferlund
- Discord: kristoferkristofer
- Telegram: @kristoferkristofer
This project is licensed under the MIT License. See the LICENSE file for more details.