https://github.com/raven-house/aztec-nextjs-starter
Aztec NextJS starter code
https://github.com/raven-house/aztec-nextjs-starter
aztec aztec-nextjs-starter easy-private-voting-contract privacy private-voting-contract wallet-setups web3 zero-knowledge
Last synced: 12 months ago
JSON representation
Aztec NextJS starter code
- Host: GitHub
- URL: https://github.com/raven-house/aztec-nextjs-starter
- Owner: raven-house
- Created: 2025-05-15T06:26:19.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-06-08T08:38:40.000Z (about 1 year ago)
- Last Synced: 2025-06-11T23:05:34.988Z (about 1 year ago)
- Topics: aztec, aztec-nextjs-starter, easy-private-voting-contract, privacy, private-voting-contract, wallet-setups, web3, zero-knowledge
- Language: TypeScript
- Homepage: https://create-aztec-app.vercel.app
- Size: 8.79 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Aztec Network Starter Repository
A modern Next.js starter template with Aztec Network integration for building privacy-focused web3 applications.
## Overview
This starter repository provides a foundation for developing decentralized applications on Aztec Network, featuring wallet integration for both Azguard and Obsidion wallets, along with a complete example of a private voting contract implementation.
[Checkout complete walkthrough on Youtube](https://www.youtube.com/live/6BviS0dGoEw)
## Features
- **Wallet Integration**: Ready-to-use connections with Azguard and Obsidion wallets
- **Private Voting Contract**: Complete example of a privacy-preserving voting system
- **Modern UI**: Clean, responsive interface built with Shadcn UI components
- **Network Information**: Real-time Aztec Network status display
- **Dark Mode**: Sleek dark theme optimized for developers
## Prerequisites
- Node.js 22+
- NPM or Yarn
- Access to Aztec Network (Testnet or Local Sandbox)
- Azguard and/or Obsidion wallet extensions installed in your browser
## Installation
```bash
# Clone the repository
git clone https://github.com/raven-house/aztec-nextjs-starter.git
# Navigate to the project directory
cd aztec-starter
# Install dependencies
npm install
# or
yarn install
# Start the development server
npm run dev
# or
yarn dev
```
## Contract setup
# Commands
Install All dependencies
```bash
aztec-nargo build
```
Compile contracts
```bash
aztec-nargo compile
```
Generate contract artifacts
```bash
aztec codegen -o ../src/artifacts target --force
```
Run test cases(Trixie)
```bash
aztec test
```
**NOTE:** You need to register your contract first using script `bun run register-contract` before trying deployment using Obsidion wallet.
## Environment Setup
Create a `.env.local` file in the root directory with the following variables:
NEXT_PUBLIC_TESTNET_NODE_URL=https://aztec-alpha-testnet-fullnode.zkv.xyz
APP_MODE=SANDBOX # or TESTNET for testnet deployment
## Using the Starter
### Wallet Connection
1. Click the "Connect Wallet" button in the header
2. Select either Azguard or Obsidion wallet
3. Approve the connection request in your wallet
The application stores the connected wallet information in the global context, making it available throughout the application.
### Private Voting Contract Example
The starter includes a complete example of a private voting contract with the following functionalities:
1. **Deploy Contract**: Deploy the EasyPrivateVoting contract to Aztec Network
2. **Register Contract Class**: Register the contract class before deployment if necessary
3. **Cast Vote**: Cast a private vote (encrypted on-chain)
4. **Check Votes**: View the current vote count without revealing individual votes
5. **End Voting**: Finalize the voting process
### Contract Details
The `EasyPrivateVoting` contract demonstrates privacy-preserving voting where:
- Votes are encrypted and private
- Only vote tallies are visible, not individual votes
- Only the admin can end the voting process
- Results are verifiably correct without compromising privacy
## Technologies Used
- **Frontend**: Next.js, React, TailwindCSS
- **Smart Contracts**: Aztec Network, Noir language
- **Wallet Integration**: Azguard and Obsidion wallets
- **UI Components**: Shadcn UI library
- **State Management**: React Context API
## Development Mode
The application can run in two modes:
- **SANDBOX**: For local development (default)
- **TESTNET**: For deploying to Aztec Testnet
Change the `APP_MODE` environment variable to switch between modes.
## Resources
- [Aztec Network Documentation](https://docs.aztec.network/)
- [Noir Language Documentation](https://noir-lang.org/)
- [Obsidion Wallet Documentation](https://docs.obsidion.xyz/)
## License
MIT
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
# Resources
1. Obsidion Wallet: https://app.obsidion.xyz/
# Notes
What is Nargo ?
dependency management, package management tool