Inspiration
With the recent trend of using SORA 2 to generate highly realistic AI videos, we became concerned about how such technology could be misused; especially in tampering with crime footage or spreading misinformation. This inspired us to build a project that leverages technology for good; to help verify video authenticity and preserve truth in digital media.
What it does
Our product takes the live CCTV/Cam footage from a facility and securely creates a verification hash of this footage on the blockchain (ethereum). This verification can be used in settings like a court of law to show authenticity of crimes or actions that take place on camera. This verification is becoming more and more important in an age where AI content is rapidly converging in quality with real filmed content.
Key Features: Video authentication through blockchain-stored hashes Immutable record of video uploads Address-based ownership tracking Event-driven architecture for monitoring
Data Flow: Camera → Canvas → Base64 Encoding → WebSocket/HTTP → Backend → Blockchain
How we built it
Blockchain Technology Stack Primary Blockchain Platform: Ethereum - The project is built on the Ethereum blockchain ecosystem
Smart Contract Development: Solidity - Version 0.8.24 (as specified in hardhat.config.ts) Hardhat - Development framework for Ethereum smart contracts Hardhat Ignition - For smart contract deployment management
Network Configuration: Sepolia Testnet - The project is configured to deploy on Ethereum's Sepolia testnet
Development Tools: Ethers.js - JavaScript library for interacting with Ethereum Viem - TypeScript interface for Ethereum (used with Hardhat Ignition) TypeScript - For type-safe development
Backend Integration The frontend communicates with the Python FastAPI backend through: Frame Upload: POST /frames endpoint for batch frame processing Video Validation: POST /api/validate/upload for video verification Ledger Access: GET /api/ledger for blockchain verification results
Video Processing Pipeline Frame Capture: Canvas-based frame extraction from video stream Data Encoding: Converts frames to base64 JPEG format Transmission: Sends frames via WebSocket or HTTP POST Metadata Tracking: Timestamps, frame counts, resolution info
Frontend: HTML/CSS and Javascript
WebSocket Integration Connects to local streaming server on port 3001 Handles connection status with visual indicators Auto-reconnection logic for dropped connections Sends frame data as base64-encoded JPEG images
Challenges we ran into
We encountered several early challenges that shaped our approach. Working with blockchain technology proved more complex than expected. Although Solana initially seemed ideal for recording video streams due to its cost, its API was too difficult to implement within our timeframe, but thanks to GitHub we were able to find an open source platform which mines developer ethereum credits, and ethereum's API was easier to implement . We ultimately chose Ethereum as our blockchain provider.
We also had a mix up with setting up server/client side communication. We set up the host as the sender whereas it should've been the receiver; we fixed that as we progressed and things unfolded.
Reliably hashing and manipulating videos was another obstacle, leading us to adopt a simpler method: splitting videos into one-minute chunks for verification.
Streaming video between the frontend and backend also posed difficulties, which we resolved by using NGROK to bridge our web services.
Accomplishments that we're proud of
We're so proud of the fact that we chose the Human Intelligence aspect and did not integrate AI/ML, LLM, GenAI into our project, which tested our originality and problem solving ability even though a lot of AI/ML, LLM, and GenAI projects are very popular these days. We learned blockchain to accommodate this change and challenged ourselves to learn something new, which we are extremely proud of!
What we learned
Throughout the process, we learned a lot: setting up a JavaScript server, connecting it through ngrok for external access, and integrating blockchain and hashing to securely store and verify video clips. These technologies taught us how decentralized verification can protect against manipulation.
What's next for AuthLens
We do plan to take it to the Innovation Hub at Texas Tech University so we can get funding to upscale this project!
Built With
- blockchain
- ethereum
- express.js
- html/css
- http/websockets
- javascript
- node.js
- python
- react
- typescript

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