Standalone Python 3.11+ CLI for checking eligibility and minting NFTs from OpenSea drop URLs. It has no external project dependencies and reads secrets only from the project-local .env.
git clone <repo-url>
cd opensea-mint-bot
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt && .venv/bin/pip install -e .Copy .env.example to .env, fill in PRIVATE_KEY, OPENSEA_API_KEY, and preferred RPC URLs, then run:
opensea-mint "https://opensea.io/collection/example/drop" --check --dry-runopensea-mint <url> [--quantity N] [--wallet KEY|all] [--dry-run] [--gas-multiplier 1.5]
opensea-mint <url> --watch [--timeout 3600]
opensea-mint <url> --check
opensea-mint <url> --stage public|allowlistFlags:
--quantity, -q: number of NFTs to mint per wallet.--wallet: first configured wallet by default, a zero-based wallet index, an address, orall.--dry-run: simulate only; never broadcasts. Also enabled byDRY_RUN=true.--broadcast: allow a real transaction when eligibility and simulation pass.--gas-multiplier: overrideGAS_PRICE_MULTIPLIER.--watch: poll eligibility until mintable or timeout.--timeout: watch mode timeout in seconds.--check: inspect eligibility only; never broadcasts.--stage: explicitly usepublicorallowlist.--verbose, -v: verbose logs.
URL -> OpenSea metadata -> chain/contract target
-> adapter detection
-> SeaDrop
-> ERC721A generic
-> custom explorer ABI fallback
-> eligibility report
-> eth_call simulation
-> signed transaction
-> receipt + notification
Eligible dry run:
OpenSea Mint Report
Wallet Adapter Status Reason Tx
0x1234...abcd seadrop eligible eligible dry-run
Ineligible drop:
OpenSea Mint Report
Wallet Adapter Status Reason
0x1234...abcd seadrop ineligible stage not active until 2026-06-04 12:00:00 UTC
Successful mint:
OpenSea Mint Report
Wallet Adapter Status Reason Tx
0x1234...abcd seadrop minted eligible 0xabc123...
https://opensea.io/collection/{slug}https://opensea.io/collection/{slug}/drophttps://opensea.io/collection/{slug}/overviewhttps://opensea.io/{chain}/collection/{slug}https://opensea.io/assets/{chain}/{contract}/{tokenid}
MAX_GAS_PRICE_GWEIrejects expensive gas.MAX_VALUE_PER_MINT_ETHcaps mint price plus estimated gas.--dry-runand--checknever broadcast.- Private keys are loaded once at startup and are never logged.
- Richer watch mode scheduling with jitter around known start times.
- Telegram bot wrapper for remote mint approvals.
- Allowlist proof providers for OpenSea GraphQL, thirdweb, manifold, and scatter drops.
- Broader custom adapter support for thirdweb, manifold, scatter, and creator-specific contracts.
- Multi-wallet state tracking and mint history.
Use at your own risk. NFT mint contracts can be malicious or misconfigured. Always verify drop legitimacy, contract addresses, mint price, and transaction data before broadcasting.