nft-public-mint README

The project's README from github.com/morsyxbt/nft-public-mint. As one markdown file: README.md.

NFT Public Mint Sniper

A command-line tool for sniping public NFT mints on OpenSea's SeaDrop, across Ethereum, Base and Robinhood Chain.

It builds the mint transaction from on-chain data only - price, fee recipient and per-wallet limit all come straight from the SeaDrop contract. That means:

Multi-wallet: paste as many keys as you like and they all fire in parallel.


Requirements


Step 1 — Install

Run these one line at a time, pressing Enter after each:

git clone https://github.com/morsyxbt/nft-public-mint.git
cd nft-public-mint
npm install
npm run build

Before running npm install, check your prompt ends in nft-public-mint — if the cd didn't take, everything after it fails.

Then confirm the build worked:

npm start -- --help
Install errors

Set-Location : A positional parameter cannot be found (Windows PowerShell) Two commands got pasted onto one line — you'll see something like cd nft-public-mintnpm install. Run each line separately.

Could not read package.json / Missing script: build You're in the wrong folder. Run cd nft-public-mint first.

npm or git is not recognised Install Node.js 18+ and Git, then reopen your terminal.

cp .env.example .env

Open .env and add a private RPC URL for the chain you'll mint on, e.g.:

RPC_URL_BASE=https://base-mainnet.g.alchemy.com/v2/YOUR_KEY

A free Alchemy key takes two minutes and is the single biggest factor in whether you win a contested mint. You can also paste it at the prompt instead — the tool works without any .env at all, falling back to public nodes.

Never put private keys in .env. You paste them into the CLI at run time. They're held in memory for that run only and never written to disk.

Step 3 — Run it

npm start

The wizard asks you seven things:

Step What it wants
1. Private keys Paste one per line, hidden as you type. Blank line to finish. Each key is confirmed back to you by its wallet address, so you can check you pasted the right one.
2. Chain Ethereum, Base, or Robinhood.
3. Quantity How many NFTs per wallet.
4. NFT link An OpenSea collection link, an item link, a slug, or the raw 0x contract address. A contract address or item link always works with no API key; a collection slug needs a lookup that usually works unauthenticated.
5. RPC Paste a full URL, or just your Alchemy key and it expands automatically. Blank uses .env, or public nodes.
6. Gas Ceiling and tip. The live base fee is shown right above the prompt.
7. Timing Wait for the stage to open, or fire now if it's already live.

Then it shows a summary and asks Fire?. Nothing is sent until you type y.

Step 4 — Set it and walk away

If the drop opens later, choose "Wait for the stage". It pre-signs everything, holds, and fires at the exact start time — no supervision needed. The Fire? confirmation comes before the wait, so there's no second prompt at mint time.

Two things to get right if you're leaving it running:


Understanding gas

Three different numbers, and mixing them up is the most common way to lose a mint:

Term What it is Who sets it
Base fee The network's price. Burned. The chain
Priority fee (tip) Paid on top, to the block producer You
Max fee The ceiling you'll tolerate You

You pay base fee + tip. The max fee is only a cap — if the base fee is 0.006 gwei and your tip is 0.05, you pay 0.056 gwei no matter whether your ceiling is 2 or 200.

But the ceiling is not free. Before a node will even accept your transaction, it checks that your wallet holds gasLimit × maxFee + mint price. So a high ceiling with a thin wallet gets rejected outright, even though the real cost is tiny. The tool checks this before firing and tells you the highest ceiling your balance can support.

A SeaDrop mint uses roughly 135,000 gas for quantity 1.


What it protects you from

Each of these is checked before anything is broadcast:

If a transaction is rejected by every endpoint, it says so plainly instead of waiting for a receipt that will never exist.


Supported chains

Chain Chain ID Explorer
Ethereum 1 etherscan.io
Base 8453 basescan.org
Robinhood Chain 4663 robinhoodchain.blockscout.com

To add another, append one entry to src/chains.ts — no other code changes needed.


Security


Allowlist / FCFS mints

Not supported here, and it isn't an oversight. An allowlist stage uses SeaDrop's mintSigned(), which needs a signature that OpenSea generates per wallet — that genuinely requires an authenticated OpenSea session. There's no way to build it from on-chain data, which is the whole premise of this tool.

License

MIT

nft-public-mint (morsyxbt/nft-public-mint)

nft
Searching Database…

What is this?It is a CLI tool for sniping public NFT mints on OpenSea's SeaDrop contracts across Ethereum, Base, and Robinhood Chain, built to fire the exact moment a mint stage opens.
How is this different from using OpenSea's site to mint?It builds the mint transaction entirely from on-chain contract data (price, fee recipient, per-wallet limit) instead of going through OpenSea's API, so there is no account, login, or access token needed and no API rate limits.
How do I get it running?Clone the repo, run npm install, then npm run build, and start it with the CLI command; a wizard then walks you through seven prompts (keys, chain, quantity, NFT link, RPC, gas, timing) before asking to confirm with Fire?.
What do I need before running it?Node.js 18 or newer, and a wallet funded with some ETH on whichever chain you plan to mint on. A private RPC (e.g. a free Alchemy key) is optional but strongly recommended.
Can it snipe allowlist or FCFS mints too?No — only public, unauthenticated SeaDrop stages. Allowlist stages require OpenSea's signed mintSigned() signature, which can't be derived from on-chain data alone.
Does it run on Windows as well as Mac/Linux?Yes, it's a Node.js CLI, and the README specifically documents a common Windows PowerShell pitfall when pasting the install commands.
Are my private keys safe when I paste them in?Keys are pasted into the CLI at runtime and held only in memory for that run — they're never written to disk or sent anywhere except as part of a locally-signed transaction.
Which chains can I snipe mints on?Ethereum (chain ID 1), Base (8453), and Robinhood Chain (4663). Adding another chain only requires appending one entry to src/chains.ts.
What happens if the mint hasn't started yet?You choose 'Wait for the stage', and the tool pre-signs the transaction, holds it, and fires automatically at the exact start time with no further supervision needed.
How does it protect me from a bad gas setup?Before firing, it rejects a ceiling below the base fee, a tip above the ceiling, and any wallet that can't cover gasLimit × maxFee plus the mint price, and it tells you the highest ceiling your balance can actually support.
Can I mint with multiple wallets at once?Yes — you paste as many private keys as you like at the prompt and they all fire in parallel.
Creator
morsyxbt
Size
<0.1 MB
Stars
293
Updated
CommitAug 15
Age
2mo
Commits · 90 Days