Inspiration

Use Username: Admin Use Password: 123 In the Mahabharata, the warrior Karna was born wearing a kavach — divine armor fused to his body, impossible to strip away. That's how AI-generated media should work: protection shouldn't be a certificate bolted on afterward. It should be born with the asset. Small businesses now generate thousands of AI ads, but they can't prove where any of them came from — which model, which prompt, whether an agency or competitor altered them. AdKavach fixes that.

What it does

Use Username: Admin Use Password: 123

AdKavach is three modules around one promise — create, seal, own: • Studio (The Forge): submit one text brief and get a complete campaign — ad copy and multiple hero images — orchestrated as a single Genblaze pipeline. • Vault (The Armory): every asset lands in a private Backblaze B2 bucket with a cryptographic manifest (model, prompt, timestamps, parent lineage, SHA-256) embedded inside the file itself. Refinements create parent→child lineage trees, so a campaign's full history is never lost. • Verifier (The Ledger): a fully public page — anyone can drop in a file. AdKavach extracts the embedded manifest, independently recomputes the hash, and renders either the full provenance record or a red TAMPERED alert.

How we built it

Use Username: Admin Use Password: 123 FastAPI (Python 3.11) backend running Genblaze pipelines as background jobs with live progress polling; Vue 3 + Vite + Tailwind frontend; SQLite as a deliberately disposable index — Backblaze B2 is the source of truth, and the entire index can be rebuilt from the manifests embedded in the stored files. Deployed with Docker Compose behind Caddy (auto-HTTPS) on EC2. The whole thing was built in 1 day with a strict zero-budget rule: free tiers only, a mock-provider mode with real embedded manifests for development, and request-hash caching in B2 so no prompt is ever paid for twice.

Challenges

Use Username: Admin Use Password: 123 Scope was the real battle. We originally planned five modalities — copy, images, video, voiceover, and music — but provider credits fell through mid-build, and we made the production call to cut video and audio rather than ship them half-working. What survived runs deep: every step has a full multi-provider fallback chain. When a provider fails, AdKavach cascades instantly and the campaign still completes — honestly labeled, every time. And because the Genblaze pipeline is modality-agnostic, video and audio steps drop back in without any architectural change.

What we're proud of

Use Username: Admin Use Password: 123 The tamper-detection demo: generate an ad, verify it green, change a single pixel, and watch the Verifier catch it instantly. The seal is not a promise — it's math.

What's next

Use Username: Admin Use Password: 123 Re-enabling video, voiceover, and music steps; C2PA interop; brand-kit conditioning; team workspaces; and Object Lock for compliance-grade immutability.

Built With

Share this project:

Updates

Submission history