๐ฑ Hidden Garden
A privacy-preserving skill tree and leaderboard built with Aztec Protocol. Learn, prove, and selectively reveal your skills while maintaining full privacy control.
- ๐ Privacy-First: Store your learning progress privately in Aztec Protocol
- ๐ฏ Selective Disclosure: Choose what skills to reveal publicly using zero-knowledge proofs
- ๐ณ Skill Forest: Interactive visualization of skills clustered by privacy preferences
- ๐ Leaderboards: Public leaderboards for skills you choose to reveal
- ๐ฎ Quest System: Complete quests and prove your knowledge privately
- ๐จ White-Hat UX: Empowering, non-manipulative design focused on growth and mastery
- ๐ Dark Mode: Full dark mode support with smooth transitions
Hidden Garden is a monorepo built with a clear separation of concerns:
hidden-garden/
โโโ packages/
โ โโโ core-logic/ # Aztec/Noir circuits, quest interfaces, core logic
โ โโโ game-engine/ # Quest registry, validators, orchestration
โ โโโ contracts-public/ # Solidity contracts (SkillLeaderboard, SelfHumanSBT)
โ โโโ common/ # Shared utilities (legacy, being phased out)
โ
โโโ apps/
โ โโโ aztecbat-ui/ # Next.js frontend application
โ
โโโ services/
โ โโโ indexer/ # Indexing service for on-chain data
โ
โโโ docs/ # Comprehensive documentation
Frontend:
- Next.js 16 - React framework
- React 19 - UI library
- TypeScript - Type safety
- Tailwind CSS - Styling
- Wagmi & Viem - Ethereum integration
Backend & Smart Contracts:
- Aztec Protocol - Private smart contracts
- Noir - Zero-knowledge proof circuits
- Solidity - Public smart contracts
- Hardhat - Development environment
Infrastructure:
- Node.js 20+ (required for Next.js 16)
- pnpm 10.23.0+ (package manager)
-
Clone the repository:
git clone https://github.com/understories/hidden-garden.git cd hidden-garden -
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev:web
-
Open your browser: Navigate to http://localhost:3000
# Development
pnpm dev:web # Start Next.js dev server
pnpm dev:indexer # Start indexer service
pnpm dev:playground # Start contract playground
# Building
pnpm build # Build all packages
pnpm build --filter @hidden-garden/aztecbat-ui # Build UI only
# Testing
pnpm test # Run all tests
pnpm aztec:test # Run Aztec circuit tests
# Aztec Development
pnpm aztec:devnet # Start Aztec devnet
pnpm aztec:compile # Compile Aztec circuitsFor more detailed setup instructions, see LOCAL_SETUP.md.
Comprehensive documentation is available in the docs/ directory:
- Architecture - System architecture and package structure
- Core Flow - End-to-end user flow and ZK proof generation
- Route Structure - Application routes and navigation
- White-Hat UX Guide - UX principles and implementation
- Aztec Integration - Aztec Protocol integration details
- Self Integration - Human verification integration
- Vercel Deployment - Deployment guide
Hidden Garden follows White-Hat Octalysis principles:
- โ Empowerment: Users control what to reveal
- โ Transparency: Clear rules and scoring
- โ Growth Focus: Emphasis on progress, not just rank
- โ No Dark Patterns: No urgency, fear, or manipulation
- โ Meaningful: Skills represent real competence, not brand worship
Learn more in WHITE_HAT_OCTALYSIS_REFERENCE.md.
We welcome contributions! Please see CONTRIBUTING.md for details on:
- Branching model and workflow
- Code ownership and review process
- Commit message conventions
- Team collaboration guidelines
- Fork the repository
- Check out the appropriate team branch:
team-a/corefor core logic workteam-b/game-uifor UI/frontend work
- Create a feature branch:
feat/team-a/your-featureorfeat/team-b/your-feature - Make your changes and commit
- Open a pull request targeting your team branch
hidden-garden/
โโโ apps/
โ โโโ aztecbat-ui/ # Next.js frontend application
โ โโโ app/ # Next.js App Router pages
โ โโโ components/ # React components
โ โโโ lib/ # Utility functions
โ
โโโ packages/
โ โโโ core-logic/ # Core Aztec/Noir logic
โ โ โโโ src/quests/ # Quest definitions and hashing
โ โ โโโ src/main.nr # Aztec Noir circuit
โ โโโ game-engine/ # Quest registry and validators
โ โโโ contracts-public/ # Solidity smart contracts
โ
โโโ services/
โ โโโ indexer/ # On-chain data indexing service
โ
โโโ docs/ # Documentation
- Private State: Learning progress stored privately in Aztec Protocol
- Zero-Knowledge Proofs: Prove skill levels without revealing details
- Selective Disclosure: Choose exactly what to reveal publicly
- No Data Leakage: Private quest completions never exposed
The application can be deployed to Vercel. See VERCEL_DEPLOYMENT_CHECKLIST.md for detailed deployment instructions.
- Languages: TypeScript (77.6%), Noir (13.0%), Solidity (3.7%), JavaScript (2.7%)
- Commits: 288+ commits
- Contributors: 2+ contributors
- Repository: https://github.com/understories/hidden-garden
- Aztec Protocol: https://aztec.network
- Noir Language: https://noir-lang.org
- Built with Aztec Protocol for private smart contracts
- Uses Noir for zero-knowledge proof circuits
- Inspired by White-Hat Octalysis design principles
Made with ๐ฑ by the Hidden Garden team
For questions or support, please open an issue.