Inspiration

Every apartment application asks for the same thing: your actual bank statements. Not a summary of your finances: the real PDF, every transaction, sitting in a landlord's inbox indefinitely. AI is making this worse, not better: now it's not a person skimming your statement once, it's an algorithm ingesting and potentially storing it. You end up proving one fact, "I can afford this" by handing over everything.

We wanted to see if Midnight's model could flip that: prove the fact, not the file.

What it does

CrediShield lets a renter prove two things to a landlord annual income over $100k, and a debt-to-income ratio under 30% without ever sharing raw bank statements or the underlying numbers.

  1. The candidate uploads bank statements to a local AI agent that parses them and calculates income and DTI, entirely on their own device.
  2. Those private figures are passed into a Midnight Compact smart contract as witness values inputs that live only in the prover's local context.
  3. A circuit asserts both conditions are met and compiles that assertion into a zero-knowledge proof.
  4. Only the boolean result is written to the public ledger. The landlord's screen shows a wallet address, a proof hash, and a verified/not-verified status nothing else.

How we built it

  • Demo UI: a self-contained HTML/CSS/JS app with two views, a "candidate" view showing the local AI agent parsing statements and revealing private metrics, and a "landlord" view showing only the public ledger record. Designed around a case-file/notarized-document aesthetic (redaction bars, ink stamps, ledger lines) rather than a generic crypto dashboard, since the whole point of the product is about what gets hidden versus revealed.
  • Contract: written in Midnight's Compact language, structuring the private income/DTI checks as witness functions, the assertion logic as a circuit, and the only public state as a ledger mapping wallet addresses to a boolean.
  • Sample data: a synthetic bank statement PDF used to demo the "AI agent reads the source document" step of the flow.

Challenges we ran into

Balancing a limited hackathon timeline against wanting the demo to actually communicate the zero-knowledge concept clearly. It's easy to build something that "looks like" a ZK app; harder to make the privacy boundary, what the prover sees versus what the verifier sees visually obvious to someone watching a two-minute video. We iterated on the UI specifically to make that boundary the centerpiece: numbers get physically redacted before the view flips to the public ledger, rather than just narrating that the data is private.

What we learned

How Midnight's witness/circuit/ledger split maps onto a real-world trust problem: it's not just "hide the data," it's "prove a computation over hidden data was done correctly." That distinction is the actual pitch, a landlord isn't taking CrediShield's word for it, they're trusting a proof.

What's next for CrediShield

  • Wire the demo's mocked proof generation to a live Midnight testnet compile of the Compact contract.
  • Replace the scripted AI agent parsing with real local PDF parsing and an on-device or local LLM call.
  • Extend beyond income/DTI to other verifiable financial claims (credit history thresholds, employment verification) using the same witness/circuit pattern.

Built With

Share this project:

Updates

Submission history