Inspiration
Anonymous reporting has a difficult trade-off.
If a report is completely anonymous, an institution may have no way to verify that it came from a legitimate member of its community. But if someone has to reveal their identity to prove they are legitimate, the fear of exposure can stop them from reporting in the first place.
We wanted to solve that tension.
Students should be able to report serious campus issues such as safety concerns, harassment, bullying, academic misconduct, or other incidents without feeling that speaking up automatically means revealing who they are.
That led us to VEIL.
Speak up. Stay private.
The idea is simple: prove that you are eligible to report without unnecessarily revealing who you are.
What it does
VEIL is a privacy-preserving campus incident reporting platform.
A reporter first verifies that they are an eligible member of the institution. After successful verification, VEIL provides a pseudonymous identity that can be used to submit and track a report.
The reporter can:
- Verify eligibility
- Submit an incident report
- Remain pseudonymous
- Track report status
- Receive requests for additional information
- Communicate with administrators without revealing their identity
Administrators can:
- Receive and review reports
- Verify reporter eligibility
- Request additional information
- Respond to reporters
- Update report status
- Maintain a verifiable audit trail
The result is a different model of anonymous reporting:
Verified reporter. Protected identity. Accountable report.
How we built it
VEIL is a full-stack application built around a privacy-first architecture.
The frontend provides dedicated experiences for reporters and administrators, including eligibility verification, report submission, anonymous communication, status tracking, and public verification.
The backend manages report workflows, application data, and audit information while minimizing unnecessary exposure of sensitive data.
The Midnight ecosystem is used as the privacy-preserving verification layer.
We built a Compact smart contract for the relevant verification and integrity logic and integrated it with the application using Midnight's current developer tooling and wallet/DApp infrastructure.
A key architectural decision was to keep sensitive report content off-chain. We do not treat a blockchain as a database for personal information. Instead, Midnight is used where privacy and verifiability are actually needed.
The system separates:
Identity → Eligibility → Report → Verification
This separation is at the heart of VEIL.
Challenges we ran into
Our biggest challenge was making Midnight meaningful rather than simply adding a blockchain transaction to a traditional reporting application.
We had to carefully determine:
- What information actually needs to be verifiable
- What information should remain private
- What information should never reach the blockchain
- How eligibility can be demonstrated without unnecessarily exposing identity
- How the frontend, backend, wallet, and smart contract should work together
Another challenge was working with a rapidly evolving blockchain development ecosystem. We had to make sure our Compact contract and TypeScript integration matched the current Midnight APIs rather than relying on outdated examples.
We also had to make difficult scope decisions. With a limited hackathon timeline, we focused on making one complete workflow functional instead of building dozens of disconnected features.
Accomplishments that we're proud of
We are proud that VEIL turns what looks like a contradiction into a single workflow:
"Prove that you are legitimate without revealing who you are."
We built:
- A functional full-stack application
- A privacy-first reporting workflow
- Eligibility verification
- Pseudonymous reporter identities
- Anonymous two-way communication
- Administrator dashboards
- Report status tracking
- Audit and verification views
- A Midnight Compact smart contract
- Midnight wallet/DApp integration
- A public verification experience
Most importantly, Midnight is not decorative in VEIL.
The privacy requirement is what drives the architecture.
What we learned
Our biggest lesson was that privacy and accountability do not have to be opposites.
At first, anonymous reporting seemed like a simple problem of hiding someone's name. But the deeper problem is much more interesting:
How can a system verify a claim about someone without requiring the system to know everything about that person?
That question influenced our entire design.
We learned to separate identity from eligibility, eligibility from the report itself, and the report from its public verification state.
We also learned that blockchain should not mean "put everything on-chain."
For privacy-sensitive applications, the better question is:
What actually needs to be verifiable?
Everything else should remain protected.
What's next for VEIL
The current MVP focuses on campus reporting, but the underlying concept can extend far beyond universities.
Future versions could include:
- Institutional digital credentials
- Multiple universities and organizations
- Stronger anonymous-credential systems
- Encrypted evidence management
- Anonymous whistleblower communication
- Emergency reporting
- Escalation and case-management workflows
- Mobile applications
- Advanced moderation and analytics
- Cross-institution verification
Our long-term vision is to build a privacy-preserving reporting and accountability layer for organizations where people need to speak up without unnecessarily exposing themselves.
VEIL separates the proof from the person.
Built With
- blockchain
- compact
- contracts
- css
- cybersecurity
- full-stack
- midnight
- next.js
- nextjs
- privacy
- proofs
- react
- smart
- sqlite
- tailwind
- typescript
- web3


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