OpenQuest is a platform that helps blockchain projects track, engage, and grow their communities through fun and interactive Quests.
Tokens are often misallocated to airdrop hunters, while projects struggle to drive genuine participation and sustainable growth in their ecosystems. Many projects also lack reliable ways to track contributor engagement, making it difficult to host provable and efficiently gated events like hackathons or grants.
OpenQuest solves this by enabling projects to:
- Engage their communities
- Foster growth
- Reward meaningful contributions through verifiable Quests.
With a leaderboard system, projects gain solid, verifiable metrics on contributors, helping protocols identify engagement trends and take action when contributors lose interest.
- Personalized Account/Contracts: Protocols register on OpenQuest, deploying dedicated smart contracts for seamless Quest management.
- Permissionless & No-Code Deployment: Launch customizable, verifiable Quests without approvals or coding.
- Trustless Verification & Fair Scoring: Powered by Cartesi’s Coprocessor for deterministic grading.
- Automated Rewards & Incentive Pools: Distribute rewards automatically based on participation and leaderboard rankings.
- Leaderboard & Onchain Reputation: Track developer contributions and community engagement, with NFTs as proof of participation.
- AI integration for meme and technical writing contests.
- Hackathon support with improved interface and flow.
- Social scanner integration for content creator rewards.
Cartesi, EigenLayer, Next.js, Rust, Actix-web, Solidity
- Website: OpenQuest
- GitHub: OpenQuest Repository
- Solidity Contracts:
-
CD into server directory, create a .env file with the necessary values mentioned in the .env.example file.
-
CD out and into the contracts directory, create another .env file with the details found in the .env.example file of the contracts dir.
-
CD into the Coprocessor Directory, using the cartesi-coprocessor cli, run the start devnet command then publish the program to devnet:
cartesi-coprocessor start-devnet
cartesi-coprocessor pubish --network devnet
-
Copy the machine hash gotten after publishing the coprocessor program, cd into the contracts directory and modify the .env file with the machine hash.
-
While in the contracts folder run the command below to Deploy the Protocol Factory contract:
forge script script/DeployFactory.s.sol --rpc-url http://localhost:8545 --broadcast --private-key <Private key to deploy the factory>
Note: The private key passed in the command above should be the same passed in the .env files to avoid reverts due to contract ownership.
-
Copy the address of the protocol factory gotten from the previous command then navigate to the server directory and modify the env with the new protocol factory address (OPENQUEST_FACTORY)
-
Start your server by running the following command:
cargo run
Note: If you experience permission issue running the
cargo runcommand, you can run this instead to fix that:sudo cargo run.
- Protocol Management
- Create and manage multiple protocols
- View protocol details and statistics
- Admin dashboard for protocol management
- Quiz System
- Attempt quizzes with timer
- Multiple choice questions
- Blockchain-based answer submission
- View quiz results
- Wallet Integration
- Connect MetaMask wallet
- Link wallet to profile
- User Profile
- View and edit profile details
- Manage wallet connections
- Node.js (v18 or higher)
- MetaMask wallet extension
- Access to OpenQuest backend server
- Git
-
Clone the repository:
git clone https://github.com/Nonnyjoe/OpenQuest.git cd OpenQuest -
Install dependencies:
npm install
-
Create a
.envfile in the frontend directory and set the API URL:NEXT_PUBLIC_API_URL=https://localhost:3000
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:3000to access the application.
-
Connect Your Wallet
- Install MetaMask if you haven't already
- Connect to Holesky testnet
- Click "Connect Wallet" in the navigation bar
-
Link Your Wallet
- Navigate to Profile page
- Click "Link Wallet"
- Sign the transaction in MetaMask
- Note: Linking wallet is required before attempting quizzes
-
Create a Protocol (Admin)
- Go to Admin Dashboard
- Click "Create Protocol"
- Fill in protocol details
- Submit the form
-
Attempt a Quiz
- Browse available quizzes
- Click on a quiz to view details
- Ensure wallet is connected and linked
- Click "Start Quiz"
- Answer questions within the time limit
- Submit answers
- Hackathon features are under development
- Quiz creation functionality needs backend integration
- Protocol creation and management
- Quiz listing and attempt quiz from frontend
- Wallet connection and linking
- User authentication
- Protocol listing
- Quiz creation from backend
- Quiz attempt from frontend
- Hackathon implementation
- Quiz creation functionality from frontend
- Next.js 14
- TypeScript
- Tailwind CSS
- Wagmi/Viem for Web3
- Shadcn UI Components
- MetaMask Integration

