Quick Start
1
Connect Wallet
MetaMask will auto-add the testnet
2
Run Scenarios
12 contracts pre-deployed on Tenderly
3
Get Test Tokens
USDC faucet tab · ETH auto-funded

Protocol Status

Connected Wallet
ETH Balance
USDC Balance
Total Quests Created
Incentive Pool
Community Pool
Total Fees Collected
Network

Wallet Profile Connected Wallet

Connect wallet to view profile.

Scenario Runner Fork Only

Run multi-step on-chain flows using impersonated wallets. Requires a Hardhat fork or Tenderly Virtual TestNet (Admin RPC).

Scenario Wallets

Happy Path Quest

Complete quest lifecycle: mint USDC → approve → create quest → accept → complete → release funds.

Giver: Alice · Farmer: Bob · Admin: Deployer

Dispute & Resolve

Quest with dispute: create → accept → raise dispute → admin resolves (farmer wins).

Giver: Alice · Farmer: Bob · Verifier: Deployer

Expired Quest Refund

Create quest → time warp past deadline → giver claims expired refund.

Giver: Alice · Time Warp: +8 days

Reputation & Review

Register wallets → complete quest → leave review → check reputation scores.

Giver: Alice · Farmer: Bob · Admin: Deployer

Governance Proposal

Submit → discuss (14d) → vote → finalize → notice (14d) → enact.

Proposer: Alice · Voter: Bob · Enactor: Deployer

Guild Creation & Membership

Boost reputation via storage → create guild → member joins → verify.

Leader: Alice · Member: Bob

Full Season — Incentive Share Distribution

Complete season cycle: 10 farmers · 50 quests ($25–$5,000) · fee accumulation · benevolent bonuses · season resolution · incentive share payout.

Giver: Alice · Admin: Deployer · Farmers: Dave, Eve, Frank, Grace, Hank, Ivy, Jack, Kim, Leo, Mia

Doubling Season — 10-Year Simulation

Simulates 10 years (260 seasons) at the real 2% doubling chance. Reports year-by-year breakdown, doublings per year average, gap analysis, and theoretical comparison.

Admin: Deployer · Target: 3 doublings · Chance: 2% per season · Expected: ~150 seasons avg

Payments Flow — Transfers & Dispute Escrows

Complete payments lifecycle: sendTransfer · claimTransfer · refundTransfer (30-day timeout) · createDisputeEscrow · releaseDisputeEscrow. Validates the Payments contract end-to-end.

Sender: Alice · Recipient: Bob · Unclaimed: Charlie · Admin: Deployer

Anti-Gaming & Moderation — Sniping, Disputes, Nullification

Tests abuse prevention: recordSniping (reputation penalty) · resolveDispute for giver (farmer penalized) · nullifyDispute (both penalized) · negative reputation tracking across all paths.

Giver: Alice · Farmer: Bob · Sniper: Charlie · Admin: Deployer

Treasury & Governance — Fee Split, Community Funds, Rate Limits

End-to-end treasury management: processFees with 50/50 split · updateFeeSplit to 70/30 · verify new split works · releaseCommunityFunds with reason string · canFarmerAcceptQuest rate limiting.

Admin: Deployer · Giver: Alice · Farmer: Bob · Recipient: Charlie

Season Lifecycle — Treasury & Incentive Snapshots (Verbose)

Walk through an entire season capturing 8 full snapshots of protocol state: empty baseline → quests created → escrows locked → in-review → unprocessed fees → pools funded (50/50 split) → pending incentive shares → post-distribution. Each snapshot shows treasury pools, TVL breakdown, quest status counts, season multiplier, and every farmer’s incentive probability & payout share.

Admin: Deployer · Giver: Alice · Farmers: Dave (Veteran), Eve (Regular), Frank (Newcomer), Grace (Benevolent), Hank (Low Rep)

Mega Season — $30M Treasury, 3 Guilds, 10 Agents

Enterprise-scale season: 10 agents (isAgent=true) · 3 guild factions (Alpha Strikers, Beta Builders, Gamma Guardians) · 100 quests ($50K–$1.2M) · $30,000,000 total USDC · guild creation & membership · fee processing · season resolution · incentive distribution.

Giver: Alice · Admin: Deployer · Guilds: Alpha Strikers, Beta Builders, Gamma Guardians · Agents: Nate, Olivia, Pete, Quinn, Rosa, Sam, Tara, Uri, Vera, Wade

Badge & Genesis Flow — NFTs, EIP-712 Badges, Community Shares

Mints the soulbound Genesis Creator NFT · grants SIGNER_ROLE to Alice · Alice signs an EIP-712 badge authorization for Bob · Bob mints a FarmerRank badge · verifies badge on-chain · mints Community Shares (Builder 15%, Maintainer 10%) · revokes a share. Covers the full credentialing pipeline.

Admin: Deployer · Badge Signer: Alice · Badge Recipient: Bob · Share Holders: Alice (Builder), Bob (Maintainer)

Guild Lifecycle — Create → Join → Leave → Disband

Full guild membership lifecycle: Alice creates “Phoenix Order” · Bob and Charlie join · verify 3 members · Bob leaves · verify 2 members · Alice disbands the guild · verify guild is inactive. Tests all four guild membership operations.

Guild Master: Alice · Members: Bob, Charlie

Faucet & Doubling Season NFT — ETH Claim + Season NFT Mint

Claims ETH from the faucet contract · warps forward one season · forces a guaranteed Doubling Season (100% chance) · mints the exclusive Doubling Season NFT · verifies wallet boost on-chain. Covers the ETH faucet and season NFT mechanics.

Claimer: Alice · Admin: Deployer

MockUSDC Faucet Testnet

Mint 10,000 test USDC to your wallet. Use this to fund quest creation and mail transfers.

Your USDC Balance

Mint Custom Amount

ETH Faucet Testnet

Claim testnet ETH for gas. The faucet contract must hold ETH to drip.

Your ETH Balance
Faucet Contract Balance
Drip Amount
Cooldown Status

Fund the faucet (send ETH from your wallet):

Approve USDC

Approve a contract to spend your USDC.

Create Quest Giver

Deploy a new QuestEscrow clone with USDC reward. Approve USDC first.

Quest Inspector

Accept Quest Verifier

Requires VERIFIER_ROLE on Protocol. Quest must be Open and not past deadline.

Complete Quest Verifier

Mark work as complete. Starts 48h review window.
[TIME] Requires 24h minimum work duration after acceptance.

Release Funds Anyone

Release payment to farmer. Anyone can call.
[TIME] Must wait 48h review window after completion.

Dispute / Resolve / Refund

Dispute Record Query

Query the on-chain dispute record for any quest. Shows whether a quest was disputed, when, and who won.

Three Farmer Resolution Panel

Simulates the dispute resolution process where three Master Farmers (or higher) are randomly selected, weighted by reputation, to vote by majority within 72 hours. The admin then calls resolveDispute based on the majority decision.

Panelist Votes
Panelist 1 (Master+)
Panelist 2 (Master+)
Panelist 3 (Master+)

All Quests

Treasury Status

Incentive Pool
Community Pool
Total Fees Collected
Incentive Split
Community Split
Protocol USDC Balance (unprocessed)
Total Incentives Distributed (all-time)
# of Distributions

Fund Treasury

Send USDC to the Protocol contract to fund the treasury. This approves and transfers your USDC, then calls processFees to split it into incentive/community pools.

Your USDC Balance

"Fund Treasury" = approve + transfer + processFees. "Transfer Only" = approve + transfer (manual processFees later).

Process Fees

Split unprocessed USDC fees into incentive and community pools.

Distribute Incentives Admin

Distribute USDC from incentive pool to recipients.

Release Community Funds DAO

Update Fee Split DAO

Must sum to 10000. Default is 5000/5000 (50/50).

Mint Badge (EIP-712) User

Mint with backend signature. In this simulator, you sign as both the backend (SIGNER_ROLE) and the minting user since you're the deployer.

Mint Genesis Creator Separate Contract

Soulbound, non-transferable. One-of-one NFT on its own contract (GenesisCreatorNFT). Only the deployer or 0x3f11...9543 can mint. Always mints to the hardcoded genesis address.

Badge Inspector

Check Mint Status

Share Inspector

Submit Proposal (FQP)

Proposal Inspector & Actions

Governance State

Share Count
Proposal Count

Send Mail Transfer

Send USDC via in-platform mail. Approve USDC to Payments contract first.

Transfer Inspector

Create Dispute Escrow Admin

Dispute Escrow Inspector

My Transfers

Season Status SeasonController

Current season info, Doubling Season resolution, and rate-limiting config from the SeasonController contract.

Resolve Season

Determine if the current season is a Doubling Season. Uses on-chain randomness (block.prevrandao). Anyone can call this once per season.

Season Lookup & Snapshot

Look up any season by number. Shows resolution status, Doubling Season result, current treasury state, incentive distributions, and season multiplier.

Doubling Season NFT Soulbound

Mint a soulbound NFT during a Doubling Season. One per wallet per season. Grants a lasting boost to incentive probability.

Wallet Boost & Effective Probability

Check the additive boost from Doubling Season NFTs and compute the effective incentive probability for a wallet.

Farmer Eligibility Rate Limit

Full eligibility check including Doubling Season info, wallet boost, and season multiplier.

Admin Config Admin

Update Doubling Season chance and NFT boost. Requires admin role on SeasonController.


Transfer Admin — transfer SeasonController admin to a new address (e.g., your connected wallet or a multisig).

NFT Inspector

Look up a Doubling Season NFT by token ID.

Protocol Snapshot

Aggregated read-only view of the entire protocol in a single call.

User Profile

User Roles

Quest Lookup

Quest Browser

Governance Overview

Protocol Analytics (TVL)

Rate Limiting / Eligibility

Secondary enforcement layer. Checks if a farmer can accept a new quest based on rank caps, season counts, and cooldowns.

Season Config

Current rate-limiting configuration. Reconfigurable through FQP governance.

Badge Matrix

Grant Role

Check Role

Community Shares Governance

Community Shares represent platform roles with income allocation from the community pool. Only the Genesis Creator can mint/revoke shares. Each share defines a title (e.g. "Platform Support", "Fetch Quests Team") and a BPS allocation of the community pool salary.


Mint New Share Genesis Creator


Revoke Share

Grant Admin Roles to Genesis NFT Holder Scenario

IMPORTANT: The Genesis Creator NFT and admin roles are independent systems. Minting the Genesis NFT does not automatically grant admin access. This scenario impersonates the deployer wallet and grants the Genesis holder (0x3f11...9543) the same admin roles the deployer received at deploy time across all 7 role-gated contracts. On mainnet, these grantRole() calls must be executed manually from the deployer wallet. See docs/GenesisCreatorNFT.md for the full role matrix.

Granter: Deployer (impersonated) · Recipient: Genesis NFT Holder (0x3f11...9543)

Register Wallet Anyone

Register your wallet in the Reputation Registry. Starts with a base score of 5000 (50%).

Reputation Profile

Look up any wallet's reputation profile, score, tier, and incentive probability.

Record Benevolent Action Verifier

Record a verified benevolent action via the Protocol. Requires VERIFIER_ROLE on Protocol.

Record Sniping Verifier

Record a sniping penalty via the Protocol. Requires VERIFIER_ROLE.

Nullify Dispute Admin

Nullify a disputed quest — refunds giver, penalizes farmer reputation. Requires DEFAULT_ADMIN_ROLE on Protocol.

Negative Reputation Read

Check sniping count, malicious disputes, losses, and nullifications.

Submit Review Participant

Submit a review for a completed quest. Both giver and farmer can review each other within 14 days of completion.

Quest Reviews Read

View giver and farmer reviews for a completed quest. Also shows review window status.

Review Stats Read

Look up aggregate review statistics for any wallet — total reviews received and average rating.

Create Guild Master Farmer

Create a guild. Requires 50+ quest completions (Master Farmer) and Benevolent Tier 3+ (Mass Benevolent). Mints an ERC-721 membership NFT.

Join / Leave Guild

Join an existing guild or leave your current guild. Joining mints a membership NFT, leaving burns it.

Guild Info Read

View guild details including name, leader, members, quest completions, and leader reward split.

My Guild Read

Check your current guild membership, rank, and quest count within the guild.

Disband Guild Leader

Only the guild leader can disband it. All NFT memberships are invalidated.

Guild Overview Read

Total guilds created on the platform.