Skip to content

Repository for OpenQuest project built for the Cartesi X Eigen layer Experiment week

License

Notifications You must be signed in to change notification settings

Nonnyjoe/OpenQuest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



OpenQuest Protocol
Experiment week #3 (Cartesi X EigenLayer)

license last-commit

OpenQuest

OpenQuest is a platform that helps blockchain projects track, engage, and grow their communities through fun and interactive Quests.

🚀 The Problem OpenQuest Solves

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.


Architecture

OpenQuest Architecture


🛠️ How OpenQuest Works

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

🔮 Future Implementations

  • AI integration for meme and technical writing contests.
  • Hackathon support with improved interface and flow.
  • Social scanner integration for content creator rewards.

🧰 Technologies Used

Cartesi, EigenLayer, Next.js, Rust, Actix-web, Solidity


🔗 Links


Running Locally:

Starting the Backend:

  • 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 run command, you can run this instead to fix that: sudo cargo run.

Starting the Frontend:

Features

  • 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

Prerequisites

  • Node.js (v18 or higher)
  • MetaMask wallet extension
  • Access to OpenQuest backend server
  • Git

Installation

  1. Clone the repository:

    git clone https://github.com/Nonnyjoe/OpenQuest.git
    cd OpenQuest
  2. Install dependencies:

    npm install
  3. Create a .env file in the frontend directory and set the API URL:

    NEXT_PUBLIC_API_URL=https://localhost:3000
  4. Start the development server:

    npm run dev
  5. Open your browser and navigate to http://localhost:3000 to access the application.

Getting Started

  1. Connect Your Wallet

    • Install MetaMask if you haven't already
    • Connect to Holesky testnet
    • Click "Connect Wallet" in the navigation bar
  2. Link Your Wallet

    • Navigate to Profile page
    • Click "Link Wallet"
    • Sign the transaction in MetaMask
    • Note: Linking wallet is required before attempting quizzes
  3. Create a Protocol (Admin)

    • Go to Admin Dashboard
    • Click "Create Protocol"
    • Fill in protocol details
    • Submit the form
  4. 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

Known Limitations

  • Hackathon features are under development
  • Quiz creation functionality needs backend integration

Development Status

Working Features

  • 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

In Progress

  • Hackathon implementation
  • Quiz creation functionality from frontend

Tech Stack

  • Next.js 14
  • TypeScript
  • Tailwind CSS
  • Wagmi/Viem for Web3
  • Shadcn UI Components
  • MetaMask Integration

Made with ❤️ by the OpenQuest Team.

About

Repository for OpenQuest project built for the Cartesi X Eigen layer Experiment week

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •