Skip to content

Repository files navigation

Opalite

🌙 Opalite — Privacy-First Social on Midnight Network

codecov Node.js pnpm Midnight License GitHub last commit

Connect freely, reveal selectively.

Real connections. True privacy.


We're building Opalite: a social platform that feels familiar, but where your privacy is the default — not an afterthought.

Post. Connect. Chat. But here's the difference: your profile never touches a public database, your connections are sealed until mutual interest is confirmed, and only you decide what to reveal.


How it Works

  • Create a DID. You register a Decentralized Identifier on the Midnight ledger — your digital presence, cryptographically yours, with zero personal data exposed on-chain.
  • Your profile stays off-chain. Your photos, bio, and preferences are stored as a private commitment. Only a cryptographic hash ever hits the public network. No plaintext profiles. No data leaks.
  • Mutual connection unlocks the chat. When two people connect, a zero-knowledge proof verifies the connection — confirming mutual interest without broadcasting who connected with whom to the entire network. Profiles unlock, and a private chat is assigned.
  • Chat freely. End-to-end encrypted conversations tied to your DID. No server-side message storage. No ad network tracking.

Why Midnight

Midnight's Compact smart contracts and selective disclosure let us build what traditional social platforms can't: a network where real connections happen without turning your social life into a data commodity. Prove you're a real person without surrendering your identity. Prove you're authentic without exposing your life story.

Tech Stack

  • Clients: React Native (iOS & Android)
  • Protocol: Midnight Network
  • Contracts: Compact (DID Registry, Credential Issuer, Proof Verifier, Schema Registry)
  • Identity: Decentralized Identifiers with zero-knowledge proofs
  • Web: Astro + Tailwind CSS
  • Runtime: Node.js 24 LTS, pnpm 10.7.0

Project Structure

Directory Description
packages/contracts/ Midnight Compact smart contracts (age verification)
packages/web/ Astro + Tailwind website and whitepaper
deploy-cli/ Custom deployment CLI for Midnight preprod
docs/ Handoff documents and session notes

Age Verification Contract

Our first contract implements privacy-preserving age verification on Midnight:

  • Ledger state:verifiedCount (Counter) — tracks total verifications
  • Circuit:verifyAge() — increments the counter via a zero-knowledge proof
  • Private state: Shielded — the count is visible but individual verifications are not
# Compile the contract
compact compile src/age_verification.compact src/managed/age_verification

# Run tests
pnpm test

Proof of Deployment

Compile + Tests (3 tests passing, rebranded banner)

Compile and tests

Deployed Contract on Midnight Preprod

Deploy output

Getting Started

# Clone and install
git clone https://github.com/APECSdev/opalite.git
cd opalite
nvm use 24
pnpm install

# Start the proof server (required for deployment)
docker compose -f deploy-cli/proof-server.yml up -d

# Run the deploy CLI
cd deploy-cli
npx tsx src/preprod.ts

License

MIT — see LICENSE for details.


Built for the Rise In — New Moon to Full hackathon.

Real connections. True privacy.

About

Opalite — Privacy-First Social on Midnight Network — Connect freely, reveal selectively.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages