/passport-score-issuer

This project demos the use of verifiable credentials on the Internet Computer. It uses Gitcoin Passport as an example source of verifiable credentials.

Primary LanguageRustMIT LicenseMIT

ICP Passport Score Issuer

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.

About Gitcoin Passport

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.

Project Structure

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.

https://ycons-daaaa-aaaal-qja3q-cai.icp0.io

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.

https://jzi4k-7qaaa-aaaal-qdncq-cai.icp0.io

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

Run locally

Before you get started, make sure you have dfx installed. You can find instructions on how to install dfx here.

1. Start the local replica

dfx start --clean

2. Deploy the canisters

make deploy-all

How does all this work?

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:

Author

License

This project is licensed under the MIT License. See the LICENSE file for more details.