Inspiration

Soon AI tools will be able to generate and modify media files in a way that will make them very difficult to distinguish from those created with cameras. This will give rise to unprecedented levels of misinformation and fraud. Counterpoint provides a solution for journalists, insurance adjusters, security professionals and others to certify that an image or video was taken at a certain time and place and that the content has not been modified.

What it does

The mobile app uses Chainlink functions to call the Google Geolocation API with cell tower data from the device and compares the result with GPS data and file metadata to check that they are within a certain accuracy tolerance. Once the device's location is verified the app calls a contract function to save a hash of a media file using location and timestamp data as a key. The app also allows users to determine if a certified file has been modified by searching for matching metadata and comparing the two file hashes.

How we built it

The app was built using React Native and Expo. It was necessary to write a custom module to get the required cell tower data. The smart contract is written in Solidity and uses Chainlink Functions to verify the user's location.

Challenges we ran into

This is my first time building a mobile app and learning React Native, Kotlin and the related tools was by far the most challenging part.

Accomplishments that we're proud of

Writing a custom module in Kotlin, which I had never touched before.

What we learned

Learned how to create web3 mobile apps.

What's next for Counterpoint

Ironing out kinks in the gps functionality of the mobile app. Developing the iOS version. If the project takes off it would make sense to develop firmware for more dedicated camera equipment.

Built With

Share this project:

Updates