Discover. Validate. Anchor. Verify.
ProofAnchor is a privacy-conscious evidence pipeline being built for Hacker House Goa 2026 — Task 03: Face Identification & Blockchain Verification.
The goal is to:
- Detect and encode a face from a consented input image.
- Perform a genuine reverse-image search.
- Find a real matching public web/social-media result.
- Build a deterministic evidence record.
- Anchor a cryptographic fingerprint of that evidence on-chain.
- Re-verify the fingerprint later and detect tampering.
ProofAnchor does not claim that blockchain proves a person's identity. The blockchain layer is used to make a specific evidence record tamper-evident.
The first milestone deliberately focuses on the highest-risk dependency:
consented image
↓
local face detection + encoding
↓
live reverse-image search
↓
real public social-media candidate
Blockchain integration comes only after this path is reliable.
- Python 3.10+
- InsightFace
- ONNX Runtime
- SerpAPI Image API + Google Lens
- Rich CLI
- Base Sepolia + Solidity + web3.py (next milestone)
Windows PowerShell:
py -3.10 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txtLinux/macOS:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txtCopy .env.example to .env:
SERPAPI_KEY=your_serpapi_key_here
Never commit .env.
python main.py --image path/to/your-consented-photo.jpg --search-type exact_matches --save-rawIf exact matches do not surface a social result, test visual matches:
python main.py --image path/to/your-consented-photo.jpg --search-type visual_matches --save-raw- Input SHA-256
- Number of faces detected
- Face detection confidence
- Embedding dimensions
- SHA-256 of the local face embedding
- Fresh SerpAPI upload ID
- Search result count
- Public social-media candidates
- Optional raw API response path for audit/debugging
The raw face embedding itself is never printed or uploaded by ProofAnchor.
- Use only your own image or an image from a consenting participant.
- Face analysis happens locally.
- Raw face embeddings should not be stored on-chain.
- API keys/private keys belong in
.env. - Generated API artifacts are ignored by Git by default.
- A future on-chain record will contain only a cryptographic commitment to the evidence.
- Reverse-image-search results depend on what the search provider has indexed.
- A visual/exact search result is not itself proof of a person's identity.
- Social platforms may block automated retrieval of their media.
- InsightFace model licensing is separate from the library code; review the applicable model license before distribution/use.
- Gate 1 currently finds candidates; independent candidate-face validation and blockchain anchoring are subsequent milestones.
- Architecture locked
- Repository created
- Gate 1: local face detection
- Gate 1: live reverse-image search
- Gate 1: real social-media candidate
- Gate 2: candidate validation
- Gate 3: evidence fingerprint
- Gate 4: Base Sepolia anchoring
- Gate 5: VERIFIED / TAMPERED demo
- Final reliability test + unedited screen recording