project screenshot 1
project screenshot 2
project screenshot 3

Promise Cards

The project enables the creation of a decentralized web3 account compatible with the web2 OAuth protocol. Users gain access to their account through a private key that can only be decrypted after a certain period of time.

Promise Cards

Created At

HackFS 2023

Winner of

🏊‍♂️ ENS — Integration Prize

Project Description

The product is an API built on Golang that enables the following functionalities:

  1. Create a fully decentralized account.
  2. Set a time period after which the user can access the account.
  3. Create an ENS (Ethereum Name Service) domain name and avatar for the account.
  4. Issue and validate JWT token that contains all of user data stored on blockchains.

After the account is created, the user receives an encrypted key using a timelock algorithm, which can be decrypted through the same API after a certain time. Upon login, the user receives a JWT token signed by the server's key, and any service can validate this token through a JWKS (JSON Web Key Set) URL. The API also allows access to the user's ENS records and data stored in decentralized databases without direct blockchain access, as all data is contained within the JWT token.

How it's Made

The project is built on Golang, utilizing the gin/ginic framework. Polybase is used through the Gateway API to access user data such as email, age, gender, etc. ENS records are employed for storing nicknames and avatars, accessible via the Golang SDK. The key encryption utilizes the timelock encryption algorithm from drand, with keys additionally encrypted using a symmetric encryption key on the server. The server itself does not possess a database and does not store any data. It acts as a proxy for various blockchain services, issuing JWT tokens, and validates the JWT signature through a standard JWKS URL with RSA encryption.

background image mobile

Join the mailing list

Get the latest news and updates