Skip to content

A privacy-preserving skill tree and leaderboard built with Aztec Protocol. Learn, prove, and selectively reveal your skills while maintaining full privacy control.

Notifications You must be signed in to change notification settings

understories/hidden-garden

Repository files navigation

๐ŸŒฑ 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.

TypeScript Noir Next.js

โœจ Features

  • ๐Ÿ”’ 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

๐Ÿ—๏ธ Architecture

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

Tech Stack

Frontend:

Backend & Smart Contracts:

Infrastructure:

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 20+ (required for Next.js 16)
  • pnpm 10.23.0+ (package manager)

Installation

  1. Clone the repository:

    git clone https://github.com/understories/hidden-garden.git
    cd hidden-garden
  2. Install dependencies:

    pnpm install
  3. Start the development server:

    pnpm dev:web
  4. Open your browser: Navigate to http://localhost:3000

Available Scripts

# 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 circuits

For more detailed setup instructions, see LOCAL_SETUP.md.

๐Ÿ“– Documentation

Comprehensive documentation is available in the docs/ directory:

๐ŸŽจ Design Philosophy

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.

๐Ÿค Contributing

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

Quick Start for Contributors

  1. Fork the repository
  2. Check out the appropriate team branch:
    • team-a/core for core logic work
    • team-b/game-ui for UI/frontend work
  3. Create a feature branch: feat/team-a/your-feature or feat/team-b/your-feature
  4. Make your changes and commit
  5. Open a pull request targeting your team branch

๐Ÿ“ Project Structure

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

๐Ÿ” Privacy & Security

  • 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

๐ŸŒ Deployment

The application can be deployed to Vercel. See VERCEL_DEPLOYMENT_CHECKLIST.md for detailed deployment instructions.

๐Ÿ“Š Repository Stats

  • Languages: TypeScript (77.6%), Noir (13.0%), Solidity (3.7%), JavaScript (2.7%)
  • Commits: 288+ commits
  • Contributors: 2+ contributors

๐Ÿ”— Links

๐Ÿ™ Acknowledgments

  • 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.

About

A privacy-preserving skill tree and leaderboard built with Aztec Protocol. Learn, prove, and selectively reveal your skills while maintaining full privacy control.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •