Inspiration

Feeling drawn toward the PSE challenge track, TLSNotary jumped out as an interesting tool to work with. Being somewhat aware of how the technology is being adopted for some interesting use cases in web3, I was inspired to dig in and learn the basics of the protocol. After some research TLSNotary felt like the perfect choice to work with for the hackathon considering how nicely the attested data could be used with VCs.

What it does

This application enables owners of Reddit accounts with moderator status to authorize the use of their data in a verified TLS session with a Notary service. The result of the TLS session fetching from the Reddit API is used to build a verifiable plaintext presentation that is sent to a credential issuing service, where it is verified and the relevant data is used to issue a verifiable credential to the account owner.

How it was built

A web front end and back end server were built as a starting point to integrate the TLSN library and ensure the account authorization/access tokens were able to query the Reddit API. Then the Notary server was included in the TLS session call to the API. Finally the credential issuing service was built as two servers, one Rust server to process the verifiable TLS presentation and a separate server to issue the credential.

Challenges

Using Rust for the first time and figuring out the TLSNotary protocol

Accomplishments that we're proud of

Building multiple Rust servers and overcoming the technical challenges with the application logic

What we learned

Rust, TLSN, Reddit API

What's next for VC Notary

  • Generalizing the credential issuing service to accept presentations from many different web service application types
  • Including new web domain credentials in the application to provide VCs for more users
  • Adding more granular options in deciding which account data to include in the VC

Built With

Share this project:

Updates