As vaccines are being distributed, more and more organizations are considering the idea of a Covid-19 vaccination passport. A vaccination passport would allow individuals who have been vaccinated to access events and other activities that may present high risks to unvaccinated individuals, such as flights. VaxsPass is a blockchain-based Covid-19 vaccination passport that aims to provide an open-source solution to vaccine-required activities.

What it does

VaxsPass uses blockchain to provide proof that a user received a vaccine. When creating an account on our iOS app, the user scans the vaccine card that they received from their vaccination site, which is being verified by Google Cloud Vision API. The data is parsed, anonymized, and stored in our Ethereum smart contract. Then, whenever a user needs to provide proof of vaccination, the app would provide a QR code redirecting to a site where anyone can see a user’s vaccination status.

The app also provides users with a map of nearby locations that can administer the Covid-19 vaccine and a chatbot that can answer user's questions about coronavirus.

How we built it

We created a smart contract on the Ethereum blockchain for logging vaccines. This ensures that once a vaccine is logged, it cannot be used by another person who may not have gotten the vaccine. The smart contract maps the user’s unique key to a hash of the date of the vaccine and the vaccine type. It’s currently hosted on the Ropsten testnet with a MetaMask account.

By logging vaccine data on the blockchain, we are able to make vaccination data visible to the public without compromising user security. This is especially important for a data-sensitive area such as healthcare. Oauth mappings to blockchain are one way: it is easy to get vaccine info with an oauth code (which requires account access) but impossible to retrieve account data from vaccine info. This method also allows easy integration with other organizations and businesses. You can view live transactions on the Ropsten testnet here: This also prevents misrepresentation of vaccinations since it is nearly impossible to modify the data stored on blockchain. The distributed nature of the Ethereum blockchain allows this data storage to be extremely resilient and secure. Alchemy API was used to quickly count transactions for the home page counter and for app analytics when interacting with blockchain.

User registration was built with Firebase, verification of the covid vaccine certificate was built using Google's Cloud Vision API, the map of vaccination sites was built using Apple's mapkit and Google Places API, the chatbot was built using OpenAI's GPT-3 API.

Challenges we ran into

One major challenge was integrating both the iOS app and web app with blockchain. We created a custom API that allows both to easily interact with blockchain and our database.

Another challenge was building a custom API for the chatbot. We built a wrapper around OpenAi's GPT-3 API that is being used by the iOS chatbot.

Accomplishments that we're proud of

This is the first hackathon we have done together. The app has a lot of components, so we are especially proud of being able to put the components together into a functional app.

We are also proud of how the team responded to the need of working with new technologies and a large amount of APIs.

What's next for VaxsPass

In the future, we plan on expanding to support all vaccines, not just Covid-19. We also plan on creating a more comprehensive workflow, including a companion doctors app to replace a vaccine card, Apple Wallet support, and a physical NFC based card. Migration to a Proof of Stake concept would help with supporting more vaccines and expanding functionality.

Blockchain’s distributed ledger and Alchemy’s API also provide opportunities to expand integrations with other apps, such as confirmation during online flight booking. A goal that we didn’t have time for was blockchain-based vaccine supply chain management, where Alchemy API would be essential for tracking and managing vaccines.

Built With

Share this project: