A privacy-first emotional wellness platform for traders, investors, and crypto professionals.
ZenVault provides a secure space for high-stakes financial professionals to connect with performance coaches and mindset advisors. Built on the principle of provable privacy using Fully Homomorphic Encryption (FHE), the platform ensures that even ZenVault itself cannot read user data.
- FHE-Encrypted Journal: Private journal with client-side encryption
- Secure Chat Sessions: End-to-end encrypted 1-on-1 chat with advisors
- Advisor Marketplace: Browse and book sessions with vetted experts
- Anonymous Voucher System: Add credits without linking identity
- Privacy Validation: View your encrypted data as stored on servers
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS + shadcn/ui
- Database: SQLite (dev) / PostgreSQL (prod) with Prisma
- Authentication: NextAuth.js v5
- Encryption: Client-side FHE simulation (production: Zama tfhe.js)
- Node.js 18+
- npm or yarn
# Install dependencies
npm install
# Generate Prisma client
npm run db:generate
# Push database schema
npm run db:push
# Seed sample data
npm run db:seed
# Start development server
npm run devCopy .env.example to .env and configure:
DATABASE_URL="file:./dev.db"
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key"
ENCRYPTION_KEY="your-encryption-key"After seeding, you can use these accounts:
User:
- Email: demo@example.com
- Password: demo123
- Credits: 3
Advisors:
- Email: zenmaster@example.com (or other advisors)
- Password: advisor123
Test Vouchers:
- ZENV-TEST-0001-AAAA
- ZENV-TEST-0002-BBBB
- ZENV-TEST-0003-CCCC
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run db:generate- Generate Prisma clientnpm run db:push- Push schema to databasenpm run db:seed- Seed sample datanpm run db:studio- Open Prisma Studionpm run db:reset- Reset and reseed database
ZenVault implements a client-side encryption model:
- All encryption/decryption happens in the browser
- Server only stores ciphertext
- User's private key never leaves their device
- Privacy Validation feature lets users see encrypted data