{
  "name": "Badger Memes \u2014 agent interface",
  "purpose": "Everything an autonomous agent needs to mint a Badger and enter trader raffles. Manual humans welcome too.",
  "network": "solana-mainnet",
  "token": {
    "symbol": "BADGER",
    "mint": "2FZjoWKuAZB2gyTwUSSGiDN1GVtydZ2T2smkCReJpump",
    "standard": "token-2022",
    "decimals": 6
  },
  "nft_mint": {
    "standard": "mpl-core-candy-machine",
    "candy_machine": "A47yeU6PAgAiiTxWkqpFtmvfv1dfVwF2F1YRFPL9nMdd",
    "collection": "9Ywq5eKiXF7hXkppvPRk5xkxoMCM8omNxYuiVWMBPZ9K",
    "guards": {
      "token2022Payment": {
        "amount_raw": "1000000000000",
        "note": "1,000,000 $BADGER transferred to the incinerator ATA (irrecoverable) atomically at mint",
        "destination_ata": "75vQzZLAtndGLstpJcBmmtrcjDJNtfrN5SD2STomeXCz"
      },
      "botTax": {
        "sol": 0.01,
        "note": "charged if a guard fails \u2014 hold the tokens before minting"
      }
    },
    "how": "Use @metaplex-foundation/mpl-core-candy-machine mintV1 with mintArgs.token2022Payment { mint, destinationAta }. Reference implementation: scripts/mint-test.mjs in the repo.",
    "requirements": "wallet holds >= 1,000,000 $BADGER and ~0.02 SOL"
  },
  "raffle": {
    "season": 1,
    "prize_pool": "1 SOL to top-volume $BADGER traders",
    "eligibility": "hold >= 1 Badger NFT in the trading wallet (verified trader)",
    "tickets": "proportional to your $BADGER trading volume during the season \u2014 manual or agentic trading both count",
    "draw": "weighted raffle drawn with public drand randomness (BLS-verifiable), same beacon that shuffled the mint order; draw script: scripts/raffle-draw.mjs",
    "payout": "from the community treasury: https://trade.vet/badgermemes",
    "lp_farming_bonus": {
      "rule": "add liquidity to the Meteora DAMM v2 pool and keep the position for a MINIMUM of 3 consecutive days \u2014 then earn EXTRA raffle tickets for every day the liquidity stays (day 1-2: nothing yet; day 3: 3 days of bonus tickets unlock retroactively; every day after: +1 day of bonus tickets)",
      "pool": "DuoLR9oNf9YTiBjy1mguTuqJWD6XU77vKiwkQEuGfHMJ",
      "note": "positions are snapshotted; removing liquidity before day 3 earns no bonus"
    }
  },
  "verify": {
    "vrf_proof": "https://badgermemes.com/collection/vrf-proof.json",
    "incinerator": "https://solscan.io/account/75vQzZLAtndGLstpJcBmmtrcjDJNtfrN5SD2STomeXCz",
    "souls": "https://badgermemes.com/collection/souls.json"
  },
  "trading": {
    "easiest_route": "Jupiter aggregator (https://quote-api.jup.ag) routes $BADGER across all venues below \u2014 one swap API for agents; verify the output mint is 2FZjoWKuAZB2gyTwUSSGiDN1GVtydZ2T2smkCReJpump",
    "meteora_dammv2": {
      "pool": "DuoLR9oNf9YTiBjy1mguTuqJWD6XU77vKiwkQEuGfHMJ",
      "url": "https://www.meteora.ag/dammv2/DuoLR9oNf9YTiBjy1mguTuqJWD6XU77vKiwkQEuGfHMJ",
      "how": "Swap or LP via Meteora DAMM v2. Agents: use @meteora-ag/cp-amm-sdk (TypeScript) \u2014 load the pool above, then swap() for trades or createPosition()/addLiquidity() to LP. All volume through this pool counts for raffle tickets.",
      "pools": [
        {
          "pair": "BADGER/USDC",
          "pool": "DuoLR9oNf9YTiBjy1mguTuqJWD6XU77vKiwkQEuGfHMJ",
          "lp_raffle_bonus": true
        },
        {
          "pair": "BADGER/CRCLx",
          "pool": "BUSaDpYwrcQ7t8ud44GLYK9PyAceDABV1GfQnBinqSLZ",
          "lp_raffle_bonus": false
        }
      ],
      "note": "pools are paired and grown gradually for the health of $BADGER"
    },
    "pumpswap": {
      "what": "pump.fun's native AMM \u2014 $BADGER trades there once graduated from the bonding curve",
      "how": "Trade via pump.fun UI, the PumpPortal trade API (https://pumpportal.fun), or @pump-fun/pump-swap-sdk. Jupiter also routes PumpSwap pools automatically, so the Jupiter swap API covers this venue too."
    },
    "raydium": {
      "pair": "BADGER/USDC",
      "pool": "DLo28jKWu1LCJZSaQbLyqCXQC6Rv6pyDPo9KwWjpZ8Yj",
      "url": "https://raydium.io/liquidity/increase/?mode=add&pool_id=DLo28jKWu1LCJZSaQbLyqCXQC6Rv6pyDPo9KwWjpZ8Yj",
      "how": "Swap or LP on Raydium; Jupiter routes this pool automatically. Volume through this pool counts for raffle tickets."
    }
  }
}