$MEGACHAD
  • About
  • Buy
  • Burn
  • Protocol
  • Governance
  • Roadmap
  • Chadboard
  • Portal
  • Docs
← Back to App

Documentation

Overview

MegaChad is a two-token economy on MegaETH: a meme-burn primitive ($MEGACHAD) bolted to a full on-chain DeFi and governance stack (MEGA Protocol). This page is the canonical reference for every contract, surface, and API the project exposes.

Tokens. $MEGACHAD is the deflationary base asset — you burn 225,000 of it to mint a Looksmaxxed NFT. $MEGAGOONER is the governance and reward token — emitted over 225 weeks to stakers, LPs, and the treasury via a quadratic emission curve.

Chain. Everything below runs on MegaETH mainnet (chain ID 4326), with sub-second blocks and ~0.001 gwei fees.

1. Wallet Setup

Install a Web3 Wallet

You need a wallet that supports custom EVM networks:

  • MetaMask
  • Brave Wallet
  • Phantom (EVM mode)
  • Rabby

MegaETH Network Details

Auto-added when you press CONNECT WALLET. Manual values:

  • Name: MegaETH
  • Chain ID: 4326
  • RPC: https://mainnet.megaeth.com/rpc
  • WebSocket: wss://mainnet.megaeth.com/ws
  • Currency: ETH
  • Explorer: megaexplorer.xyz
  • Block time: ~250ms
  • Gas price: 0.001 gwei (use --legacy for tooling)

2. Get $MEGACHAD

225,000 $MEGACHAD is the cost of one Looksmaxxed image. Half is burned to the dead address; half goes to the Tren Fund treasury.

Contract: 0x374A17bd16B5cD76aaeFC9EAF76aE07e9aF3d888

How to buy: bridge ETH to MegaETH via Rabbithole (Ethereum, Base, Arbitrum, Optimism, Polygon, BNB, Avalanche, Scroll, zkSync, Linea), then swap on Kumbaya DEX or use the built-in swap on the main page.

3. Burn & Looksmaxx

  1. Go to /main
  2. Press CONNECT WALLET
  3. Upload a portrait (JPEG/PNG, max 4MB)
  4. Optionally enable Warren on-chain permanent storage (~$5)
  5. Press BURN & LOOKSMAXX
  6. Approve two transfers: 112,500 to the dead address + 112,500 to the Tren Fund
  7. AI generation runs (1–2 minutes), image pins to IPFS, NFT mints

Gasless option: sign an EIP-712 typed message; the relayer pays gas and submits your burn on-chain. Approve the relayer once, then no further transactions are required.

4. Storage

IPFS (default, free)

  • Pinned via Pinata, accessible from any public gateway
  • Content-addressed CID embedded in NFT metadata

Warren Protocol (~$5)

  • Image bytes written directly into MegaETH state
  • Cannot be censored, removed, or rugged
  • NFT metadata points at the on-chain bytes

5. MEGA Protocol Overview

MEGA Protocol is the governance and DeFi layer wrapped around $MEGACHAD. Every contract is a UUPS upgradeable proxy controlled by the admin role (Tren Fund) until governance hands itself the keys. The flow:

  1. Mint: EmissionController mints $MEGAGOONER each week from a hard-coded quadratic curve.
  2. Distribute: 45% goes to MoggerStaking, 40% to JESTERGOONER, 15% to the Tren Fund treasury.
  3. Earn: Stakers and LPs accrue rewards as a continuous Synthetix-style drip over 7-day windows.
  4. Govern: Top-3 weekly $MEGACHAD burners earn proposal rights; $MEGAGOONER holders vote.
  5. Backstop: The top-20 NFT holders form a Veto Council that can kill any malicious proposal.

Open the Protocol page to interact with all of this from one UI.

6. Token Economics: $MEGAGOONER

  • Symbol: MEGAGOONER
  • Standard: ERC20 with ERC20Snapshot extension (flash-loan-proof voting)
  • Contract: 0x11d819Dbd6e9aF0b13A54e88EA411155764e3F46
  • Max supply: 50,000,000 (hard cap, enforced in _mint)
  • Genesis airdrop: 2,500,000 minted to palantirthot at deploy (5% of cap)
  • Emission curve: 225 weeks (~4.33 years) of quadratic decay
  • Roles: MINTER_ROLE (EmissionController only), BURNER_ROLE (Framemogger only), SNAPSHOT_ROLE (Jestermogger for vote checkpoints)

Genesis

DeFi genesis timestamp: 1778941561 (2026-05-16 14:26:01 UTC). Week numbers count forward from this anchor; week 0 is the first 7-day window.

7. EmissionController

Proxy: 0x9CBB09555395643abc016b586D7d890E6911a013

The EmissionController is the single source of $MEGAGOONER supply during the 225-week emission window. It mints to the staking contracts and the treasury on a per-week basis using a deterministic quadratic decay formula.

Quadratic Decay Formula

weeklyEmission(w) = 662,245 × ((225 − w) / 225)²

  • Week 0: ~662,245 MEGAGOONER
  • Week 56 (25%): ~373k MEGAGOONER
  • Week 112 (50%): ~166k MEGAGOONER
  • Week 168 (75%): ~41k MEGAGOONER
  • Week 224 (final): ~13 MEGAGOONER
  • Week 225+: 0

The integral of the curve plus the 2.5M genesis airdrop hits the 50M cap exactly, so no extra $MEGAGOONER can ever be minted.

Emission Split

Each week's emission is split three ways (basis points):

  • MoggerStaking: 45% (4,500 bps) — drips to $MEGACHAD stakers
  • JESTERGOONER: 40% (4,000 bps) — drips to MC/MG LP stakers
  • Treasury (Tren Fund): 15% (1,500 bps) — protocol-owned liquidity, audits, ops

Governance can adjust each line ±5% within hard bounds (Treasury 10–20%, Staking 40–50%, LP 35–45%), once per 90-day cooldown. The sum must always equal 10,000 bps.

Catch-Up Distribution

distributeEmissions() walks every unclaimed week from lastProcessedWeekup to getCurrentWeek() in a single transaction, mints the aggregate, and callsnotifyRewardAmount() on both staking pools. Weeks can never be skipped — if nobody triggers a distribution for a month, the next caller scoops the entire backlog in one shot.

Auto-Distribution

A Vercel cron at /api/cron/distribute runs daily at 00:00 UTC. It callsMoggerStaking.distributeWeeklyRewards() (which routes through EmissionController and notifies both pools) but only when periodFinish < now, so it no-ops if the current 7-day drip window is still active. Users never need to touch this — the cron makes the protocol self-sustaining.

8. MoggerStaking

Proxy: 0xfd820E6189Eb3396dA71cB072643A0E1e1239853
Stake token: $MEGACHAD  ·  Reward token: $MEGAGOONER

Synthetix-style continuous drip pool. Stake any amount of $MEGACHAD, hold at least 1 Looksmaxxed NFT to be eligible, and earn $MEGAGOONER every block. There is no lock periodand no minimum stake — unstake anytime.

Reward Math

On notifyRewardAmount(R) the contract setsrewardRate = (R + leftover) / 7 days and starts a fresh 7-day drip window. Per-second reward share for a staker is:

userShare = (effectiveStake / totalEffectiveStake) × rewardRate × Δt

Where effectiveStake = stakedAmount × nftMultiplier / 10000. The UI's APR widget extrapolates: APR = rewardRate × secondsPerYear / totalEffectiveStake.

NFT Boost Tiers

  • No NFT: 0× (you cannot accrue any rewards)
  • Tier 1 (1–9 NFTs): 1.000×
  • Tier 2 (10–24 NFTs): 1.075×
  • Tier 3 (25+ NFTs): 1.150×

Multipliers are snapshotted on every stake / unstake / claim to block flash-borrow gaming. If you grow your NFT bag mid-stake, call refreshEffectiveStake() (or just touch the position) to upgrade your tier on-chain.

Buffered Rewards Safety

If notifyRewardAmount fires while totalEffectiveStake == 0 (nobody is staked yet) the rewards are parked in bufferedRewards instead of getting silently burned via division. As soon as someone stakes, the next notify auto-folds the buffer into the drip rate. Admins can also flushBufferedRewards() to release it immediately.

9. JESTERGOONER V4 (LP Staking)

Proxy: 0x2695965Dd283e2425fab5C4c1E0955656802569c
Implementation (V4): 0x8BD2ACF3F97d4398A16dC928cAb4C002824646F6
Stake token: MC/MG LP  ·  Reward token: $MEGAGOONER

Mirror of MoggerStaking but for liquidity providers. Stake your MC/MG LP tokens, earn the 40% LP-share of weekly $MEGAGOONER emissions on a continuous drip.

V4 Changes

V4 is the live version of this contract. Compared to V3 (deprecated):

  • No lock period. MIN_LOCK_DURATION = 0. Unstake anytime.
  • No time multiplier. getTimeMultiplier() always returns 10000 (1.000×). Your effective stake is just LP × nftMultiplier.
  • Buffer flush. Admins can call flushBufferedRewards() to release trapped buffer into a fresh 7-day drip. This was used at V4 upgrade to release 264,898 MEGAGOONER stuck in the buffer.

NFT Boost

Same tiers as MoggerStaking — 0× / 1.000× / 1.075× / 1.150× based on NFT count.

LP Token Migration

JESTERGOONER's lpToken can be set exactly once via setLpToken(), transitioning from the placeholder ERC20 to the real MC/MG pair. After that one-shot, the field is locked. Today's value points at 0x437a433534FF6e7712D7e0A03Fa6CE577EeA1fef(MegaChadLP_MC_MG).

10. MEGACHAD/MEGAGOONER AMM Pair

Pair: 0x437a433534FF6e7712D7e0A03Fa6CE577EeA1fef
Type: Constant-product (x · y = k) — Uniswap V2-equivalent math
Fee: 0.3% on swaps (accrues to LPs)

Custom in-house AMM pair (MegaChadLP.sol). LP tokens use the standardsqrt(a · b) − 1000 formula for initial mint and proportional shares thereafter.

Add Liquidity

Call addLiquidity(amountA, amountB, to) with $MEGACHAD and $MEGAGOONER. If the pool is empty you set the initial price; otherwise you must match the current ratio (reserveA / reserveB). LP tokens mint to to.

Remove Liquidity

removeLiquidity(liquidity, to) burns LP tokens and returnsamountA and amountB proportional to your share of totalSupply.

Swap

swap(amountAIn, amountBIn, to) takes one of the two inputs as zero. Output is computed with the standard (in × 997 × reserveOut) / (reserveIn × 1000 + in × 997)(Uniswap V2's 0.3% fee math). Pre-transfer input tokens before calling, just like Uni V2.

UI Integration

The Protocol page exposes Add Liquidity, Remove Liquidity, and Swap tabs that wire directly to this pair. Slippage is currently fixed at 1%; price impact and reserves are read live fromgetReserves().

11. Framemogger (Burn-to-Govern)

Proxy: 0xce320179Fb66E088635f789881A939321682E0c5

Framemogger is the on-ramp to governance. Burn $MEGACHAD to the Tren Fund, watch $MEGAGOONER get deflated in lockstep, and compete for one of three weekly proposal slots.

Burn Mechanics

  • Input: sendMegachad(amount) with at least 1 $MEGACHAD
  • Eligibility: caller must hold at least 1 Looksmaxxed NFT
  • $MEGACHAD route: transferred to Tren Fund (NOT burned — it's protocol revenue)
  • $MEGAGOONER deflation: 10% of the $MEGACHAD amount is burned from the caller's $MEGAGOONER balance (1 MEGACHAD ⇒ 0.1 MEGAGOONER burned)

So if you send 100,000 $MEGACHAD, you also burn 10,000 $MEGAGOONER. That deflationary pressure applies upward force on price as supply contracts.

Weekly Leaderboard

Each 7-day window tracks per-user $MEGACHAD sent. At all times the top 3 burners can callJestermogger.propose(). canPropose(account) returns true if you're in this week's current top 3. Slots are recomputed in real time as new burns land.

Historical Data

  • getWeekTop3(week) — final standings for a closed week
  • getWeekStats(week) — total burned, unique burners, time left
  • totalSentAllTime() — protocol-wide accumulator
  • totalMegagoonerBurned() — running deflation counter

12. Jestermogger (Governance)

Proxy: 0x75C38E514Ba9FEeb6EEEeF4cdEb88074Ade0582b

Token-weighted on-chain governance. The current top-3 weekly burners can submit proposals; all $MEGAGOONER holders vote, weighted by their snapshot balance at proposal start.

Proposal Lifecycle

  1. Propose — propose(targets, values, calldatas, description). Restricted to current week's top 3 burners. State = Pending.
  2. Voting delay — 1 day for community review before voting opens.
  3. Active — voting window opens for 3 days. Cast For, Against, or Abstain. One vote per address per proposal.
  4. Quorum check — needs ≥ 50% of $MEGAGOONER circulating supply (snapshotted) and a simple majority of For-vs-Against. Else Defeated.
  5. Succeeded — must be queued within 7 days (grace period) or the proposal expires.
  6. Queued — sits in 2-day timelock. During this window the NFT Veto Council can kill it.
  7. Executable — after timelock, execute() fires all targets in order. 7-day grace window before it expires.
  8. Executed / Vetoed / Expired — terminal states.

Parameters

  • VOTING_DELAY: 1 day
  • VOTING_PERIOD: 3 days
  • TIMELOCK_PERIOD: 2 days
  • GRACE_PERIOD: 7 days
  • QUORUM_PERCENTAGE: 50

Snapshot voting (via the ERC20Snapshot extension on $MEGAGOONER) means flash loans can't inflate vote weight — your balance is locked in at the proposal's start time.

13. NFT Veto Council

Proxy: 0xbE985E5159cDFE8d33b4E61644495B38cCb46468

A 20-seat council composed of the top Looksmaxxed NFT holders, recomputed on-demand byupdateCouncil(maxTokenId). Council members can veto any queued or executable proposal.

Veto Flow

  1. Anyone calls startVetoVote(proposalId) on a Queued proposal.
  2. The 20 council members have 2 days to cast a Yes/No vote.
  3. If ≥ 11 Yes votes arrive (>50% of seats), VetoCast → executeVeto() marks the proposal Vetoed. It can no longer be executed.
  4. If the window expires below threshold, the veto fails and the proposal proceeds.

This is an emergency brake — token-weighted governance handles the day-to-day, but if a hostile actor accumulates $MEGAGOONER and pushes a malicious proposal through, the long-term NFT holders can shut it down.

14. CircuitBreaker

Proxy: 0x8C6c634D0B698de2E98713E5a02f7905b117beAE

Global pause switch. Five guardian addresses (multisig-style) can trigger a pause; admin can unpause. When paused, distributeEmissions(), staking, and proposal execution all revert with ProtocolPaused. Reads remain live, so the UI keeps rendering.

  • Guardians: 5 addresses, any one can pause
  • Admin: Tren Fund (0x85bf…370C) until governance transfers itself the role

15. Contract Address Index (Mainnet)

Deployed: 2026-05-16  ·  Deployer: 0x85bf9272DEA7dff1781F71473187b96c6f2f370C

  • MegaChadToken: 0x374A17bd16B5cD76aaeFC9EAF76aE07e9aF3d888
  • MegaCHADNFT: 0x1f1eFd3476b95091B9332b2d36a24bDE12CC6296
  • MEGAGOONER: 0x11d819Dbd6e9aF0b13A54e88EA411155764e3F46
  • EmissionController: 0x9CBB09555395643abc016b586D7d890E6911a013
  • MoggerStaking: 0xfd820E6189Eb3396dA71cB072643A0E1e1239853
  • JESTERGOONER (V4 impl): 0x2695965Dd283e2425fab5C4c1E0955656802569c
  • MegaChadLP_MC_MG: 0x437a433534FF6e7712D7e0A03Fa6CE577EeA1fef
  • Framemogger: 0xce320179Fb66E088635f789881A939321682E0c5
  • Jestermogger: 0x75C38E514Ba9FEeb6EEEeF4cdEb88074Ade0582b
  • NFTVetoCouncil: 0xbE985E5159cDFE8d33b4E61644495B38cCb46468
  • CircuitBreaker: 0x8C6c634D0B698de2E98713E5a02f7905b117beAE
  • WETH: 0x4200000000000000000000000000000000000006
  • USDm: 0xfafddbb3fc7688494971a79cc65dca3ef82079e7
  • Burn (dEaD): 0x000000000000000000000000000000000000dEaD

16. Common DeFi Walkthroughs

Stake $MEGACHAD for $MEGAGOONER

  1. Hold at least 1 Looksmaxxed NFT (otherwise rewards accrue at 0×)
  2. Approve MoggerStaking to spend your $MEGACHAD
  3. Call stake(amount) — emits Staked event
  4. Watch earned(you) tick upward in real time
  5. Call claimRewards() any time to receive accrued $MEGAGOONER
  6. Call unstake(amount) to withdraw (no lock period)

Provide MC/MG Liquidity and Stake the LP

  1. On the Protocol page → JESTERGOONER section, open Add Liquidity
  2. Enter $MEGACHAD amount — $MEGAGOONER side auto-calculates from the pool ratio
  3. Approve both tokens, sign addLiquidity() — LP tokens land in your wallet
  4. Open Stake LP, approve the LP token, call stake(amount)
  5. Earn the 40% emission share on top of any 0.3% swap fees from LP volume
  6. Unstake / remove liquidity at any time — no lock

Burn Your Way Into Governance

  1. Hold 1+ Looksmaxxed NFT
  2. Acquire a meaningful $MEGACHAD bag
  3. Call Framemogger.sendMegachad(amount) — you also need a $MEGAGOONER bag to cover the 10% deflation
  4. Land in this week's top 3 (visible on the governance leaderboard)
  5. While ranked, call Jestermogger.propose(...) to submit a proposal

Vote on a Proposal

  1. Hold $MEGAGOONER at the moment the proposal was created (the snapshot moment)
  2. Wait for Pending → Active transition (1-day delay)
  3. Call castVote(proposalId, support) — support: 0 = Against, 1 = For, 2 = Abstain
  4. After voting closes, anyone can queue() a Succeeded proposal
  5. After timelock, anyone can execute() it

17. Portal & Natural Language

The MegaETH Portal is the command surface:

  • Portfolio: live balances across ETH, $MEGACHAD, $MEGAGOONER, WETH, USDm, LP
  • Protocols: curated MegaETH protocol directory
  • Activity: protocol-wide stats and stream of recent events

NLP examples:

  • "swap 0.1 ETH for megachad"
  • "looksmaxx from base"
  • "check wallet 0x…"
  • "compare 0xABC vs 0xDEF"
  • "show top burners"
  • "stake 50000 megachad"
  • "register me as an agent"

18. Cross-Chain Looksmaxxing

Looksmaxx from 10 source chains without manual bridging:

  • Ethereum, Base, Arbitrum, Optimism, Polygon
  • BNB Chain, Avalanche, Scroll, zkSync Era, Linea

The intent engine builds a 5-step plan: bridge → swap → burn → generate → mint. Use the NLP bar, the /api/cross-chain/intent endpoint, or the cross_chain_looksmaxx MCP tool.

19. Identity & Profiles

Every wallet has a profile page:

  • MegaNames: .mega domain and social links
  • Burns: full history with IPFS thumbnails
  • Tier: Normie (0) → Mewer (1+) → Bonesmasher (3+) → Chad (10+) → Gigachad (25+)
  • Reputation: ERC-8004 on-chain rating from peers
  • Stake positions: live MoggerStaking + JESTERGOONER balances and earned rewards
  • Referral stats: for registered agents

Profiles are queryable as JSON via /api/identity/ADDRESS by any MegaETH protocol.

20. Agent Referral Program

AI agents can register on-chain and earn commissions:

  • Reward: 11,250 $MEGACHAD (5%) per referred burn
  • Registration: registerAgent() on the referral contract or POST to /api/agent/register
  • Referral code: Base64URL of your wallet address
  • Tracking: getAgentStats() or /api/agent/referrals

21. MCP Server (20 Tools)

MegaChad exposes a full Model Context Protocol server. Connect:

npx @anthropic-ai/claude-code mcp add megachad https://megachad.xyz/api/mcp

  • get_megachad_stats — supply, circulating, burn count
  • get_price — $MEGACHAD price in ETH
  • get_swap_quote — ETH → $MEGACHAD calldata
  • get_wallet_info — balances, NFT count, burn eligibility
  • get_portfolio — full MegaETH token portfolio
  • get_gallery — looksmaxxed burns with IPFS images
  • get_chadboard — leaderboard with reputation and .mega names
  • get_identity — resolve wallet or .mega name
  • get_nft_metadata — ERC-721 metadata
  • get_looksmaxx_requirements — burn requirements + x402 info
  • get_looksmaxx_plan — full burn transaction plan
  • cross_chain_looksmaxx — cross-chain plan from 10+ chains
  • gasless_burn_info — EIP-712 typed data for meta-tx burns
  • get_bridge_info — bridge options to MegaETH
  • get_agent_info — ERC-8004 agent data
  • register_referral_agent — 11,250 $MEGACHAD per referral
  • get_referral_stats — referrals, earnings
  • register_early_access — beta registration
  • chat_with_megachad — natural language interface
  • get_megaeth_protocols — MegaETH protocol directory

22. API Reference

All endpoints are public and CORS-enabled.

Core

  • GET /api/stats — protocol statistics
  • GET /api/price — current price + burn cost
  • GET /api/wallet?address=0x... — balances
  • GET /api/gallery?limit=20 — recent burns
  • GET /api/chadboard — leaderboard

Generation & Minting

  • POST /api/generate — generate + mint with burn proof
  • GET|POST /api/x402/looksmaxx — x402-aware looksmaxx
  • GET /api/x402/quote?ethAmount=0.1 — swap quote
  • GET|POST /api/gasless/burn — EIP-712 gasless burn
  • POST /api/warren/deploy — Warren on-chain storage
  • GET /api/metadata/{tokenId} — ERC-721 metadata

Protocol Cron

  • GET /api/cron/distribute — daily Vercel cron, calls distributeWeeklyRewards() when period has elapsed. Protected by CRON_SECRET.

Agent & Chat

  • POST /api/agent/chat — NLP transaction engine
  • GET /api/agent/info — agent identity + ERC-8004
  • GET|POST /api/agent/register — agent registration
  • GET /api/agent/referrals?address=0x... — referral stats
  • GET /api/agent/looksmaxx?wallet=0x... — burn plan

Social & Messaging

  • POST /api/chat/auth — Ably chat auth
  • GET|POST /api/chat/messages — chat storage
  • GET|POST /api/chat/name — display name
  • POST /api/telegram — Telegram bot webhook
  • POST /api/telegram/alerts — burn/mint notifications
  • GET /api/frame — Farcaster frame

Cross-Chain

  • GET /api/cross-chain/intent?sourceChain=base — build plan
  • POST /api/cross-chain/intent — submit intent
  • GET /api/cross-chain/status?id=cc_... — track intent

Identity & Portal

  • GET /api/identity/ADDRESS — unified profile
  • GET /api/portal/tokens?address=0x... — MegaETH balances
  • GET /api/portal/protocols — protocol directory

Infrastructure

  • GET /api/bridge — bridge info
  • GET /api/events — on-chain event stream (SSE)
  • GET /api/analytics — usage tracking
  • POST /api/early/register — beta access

23. ChadChat

Burn-gated real-time chat on the Chadboard. Any wallet with at least one burn (Mewer tier+) can post.

  • Access: Chat panel on the Chadboard page
  • Display name: .mega name, custom name, or truncated address
  • Transport: Ably (sub-second delivery)

24. Telegram Alerts

The MegaChad Telegram bot pushes real-time alerts on burns, mints, governance state changes, and emission distributions. Join t.me/megachads.

  • POST /api/telegram/alerts — trigger notification
  • GET /api/telegram/setup — bot config info

25. Roles & Permissions

Each protocol contract uses OpenZeppelin AccessControl. Live mainnet role assignments:

  • Admin (DEFAULT_ADMIN_ROLE): Tren Fund (0x85bf…370C) — can grant/revoke roles, will transfer to Jestermogger once governance is mature
  • Treasury: Tren Fund — receives the 15% emission share + Framemogger burn flow
  • Guardians (CircuitBreaker): 5 multisig-style addresses — any one can trigger pause
  • MINTER_ROLE (MEGAGOONER): only EmissionController
  • BURNER_ROLE (MEGAGOONER): only Framemogger
  • SNAPSHOT_ROLE (MEGAGOONER): Jestermogger — takes vote-weight snapshots
  • UPGRADER_ROLE: admin only — UUPS upgrade authorization
  • GOVERNANCE_ROLE (EmissionController): Jestermogger — adjusts emission split

26. Troubleshooting

Stake / Unstake reverts

  • Confirm you've approved the staking contract for the right token (MEGACHAD or LP)
  • If APR is "idle", emissions haven't been notified yet — wait for the daily cron, or anyone can call distributeWeeklyRewards()
  • If canUnstake returns false, you have 0 staked — nothing to withdraw
  • If earned() shows 0 but you're staked: you likely have 0 NFTs → no NFT, no rewards. Buy one and call refreshEffectiveStake()

Add Liquidity reverts

  • If pool is empty, you're setting initial price — any ratio works
  • If pool has reserves, you must match the current ratio exactly (use the auto-calc field)
  • Approve both tokens — addLiquidity needs allowances for $MEGACHAD and $MEGAGOONER

Swap fails or returns 0

  • Check the pool has liquidity — empty pool can't quote
  • Pre-transfer the input token before swap() — this is Uni V2 style, not router-based
  • Slippage: the UI fixes 1% — manually-built transactions need their own slippage guard

Governance vote rejected

  • You can only vote during the Active state (after 1-day delay, before 3-day window closes)
  • Your vote weight is your $MEGAGOONER balance at the snapshot taken when the proposal entered Pending
  • You can vote once per proposal — no changing your mind

Wallet won't connect

  • Refresh, ensure wallet is unlocked, ensure you're on chain 4326
  • Try a different wallet (Rabby is reliable on MegaETH)

Generation issues

  • 1–2 minutes for AI generation — don't close the tab
  • IPFS pinning adds 30–60 seconds
  • Warren on-chain storage adds 1–2 minutes

27. Developer Resources

  • App repo: github.com/megachadxyz/mega-chad
  • Protocol contracts: private repo (verified on MegaETH Explorer)
  • OpenAPI spec: megachad.xyz/.well-known/openapi.json
  • Agent discovery (ERC-8004): megachad.xyz/.well-known/agent.json
  • Block explorer: megaexplorer.xyz (all contracts verified)
  • Chain ID: 4326
  • RPC: https://mainnet.megaeth.com/rpc
Open Protocol →