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.
The product is an API built on Golang that enables the following functionalities:
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.
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.