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
- axum
- express.js
- node.js
- react
- rust
- shadcn
- tailwind
- tlsn
- veramo

Log in or sign up for Devpost to join the conversation.