Inspiration

I want to create two DFINITY Internet Computer apps that use Gitcoin Passport for user personhood identity:

What it does

This app (implemented as a GitHub template repository) shows an example how to create an app that incorporates Gitcoin Password API for checking that the user is a unique person (not a bot or a duplicate) for such purposes as anti-Sybil authorization. The app also provides an API to be used for such apps.

The example app just shows the identity score of the user. Real apps should store the score and Ethereum address linked to an Internet Identity into persistent storage (stable memory, as it's called by DFINITY).

Currently it is implemented using a (possibly empty) Ethereum wallet for authenticating a Gitcoin Passport user. That's sad, because it means that real apps should use two authenticators: Internet Identity and an Ethereum wallet. To work around this, in a future we should create a version of Gitcoin Passport supporting Internet Identity in addition to Ethereum wallets, for us to use II only.

How we built it

I wrote the DFINITY Internet Computer app in Motoko programming language with TypeScript React frontend.

To connect to Ehtereum wallet I use Web3 Onboard.

Challenges we ran into

I first tried to change Gitcoin Passport to support Internet Identity authentication, but it run into a rather hard wall of cryptographical difficulties, without having an existing Python library (Gitcoin Passport uses a Python backend) to securely check delegated identity.

Accomplishments that we're proud of

  • Fusion of Gitcoin Passport and Internet Computer.
  • My first finished production grade Internet Computer app.
  • Both Web3 Onboard and Internet Identity work in the app.
  • Sophisticated React.

What we learned

  • Frontend code for Internet Identity.
  • II delegation uses a relatively sophisticated cryptographic scheme.

What's next for Example Gitcoin Passport App for DFINITY Internet Computer

  • Use it in the social media app.
  • Use it in the grants app.
  • Make Gitcoin Passport support Internet Identity and integrate that support in this app.

Built With

  • dfx
  • internet-identity
  • motoko
  • react
  • web3-onboard
Share this project:

Updates

Submission history