Silas Beckett, On-Chain Critic & Market Columnist
July 18, 2026 · 12 min read
What is NFT minting and the gas war that taught me how
On April 30, 2022, the Ethereum network burned through roughly $160 million in gas fees during a single mint event.

Yuga Labs, the team behind Bored Ape Yacht Club, had opened the Otherdeed land sale for Otherside, and the chain choked under the weight of wallets racing to claim parcels of virtual soil. Two days later, Axios reported that Yuga had refunded a partial amount in ETH to cover failed transactions. That image — a nine-figure gas bill to attempt a mint, plus a public relations check to mop up the wreckage — is the single most useful lens I can offer anyone Googling "what is nft minting" at midnight before a public sale.
Because that's the part the brochures skip. Minting isn't a checkout button. It isn't a credit card swipe on a shop page. It's a programmatic transaction against a smart contract that either creates a token on-chain or runs into the chain's bidding war for block space. If you've ever wondered why collectors sound both reverent and exhausted when they talk about minting, it's because the same mechanism that produces a one-of-one NFT also produces the conditions for a five-figure gas bill on a contract that sells out in forty seconds.
Let me walk you through what actually happens under the hood — and what it costs.
The Mechanics of On-Chain Creation: Beyond the Mint Button
The question of what is nft minting collapses to a single technical event: a token comes into existence on a blockchain. On Ethereum, when that token follows the ERC-721 standard, the standard requires a Transfer event whose from field is set to the zero address 0x0000...0000. That zero-address-as-sender convention is how indexers, wallets, and marketplaces all recognize "this token was just minted." Anything else — a transfer between two user wallets on OpenSea, say — looks fundamentally different on-chain.
So minting is creation. Buying an existing NFT on a secondary marketplace is something else entirely: a transfer of an already-existing token from one wallet to another, with the seller's address as from. Confusing the two is the first mistake I see new collectors make. We treat a mint as a "purchase" and then act surprised when the rules of the drop — supply caps, allowlists, per-wallet limits — override the usual "add to cart" reflexes.
A mint is a creation event, not a checkout. The contract decides who gets one, and how many.
A second misconception: that the contract you're interacting with was just written. It wasn't. In the overwhelming majority of NFT drops I've covered, the collection's smart contract was deployed days or weeks before the mint opens. Deployment is a separate Ethereum transaction — it sends compiled contract code without a recipient address and pays gas in ETH. By the time you, the collector, click "mint," you're calling a function on a contract that is already live, audited (or not), and sitting at a deterministic address. The team deploys, then opens the mint function at a scheduled time. Two distinct transactions, two distinct cost events, two distinct failure modes.
This is why the minting process and the deployment cost are never lumped together in any honest postmortem. They shouldn't be lumped together in your mental model either.
Smart Contracts and the Lifecycle of a Token Drop
A modern Ethereum NFT drop is rarely a single "click to mint" button. Look at the infrastructure documentation from OpenSea's Drops API and SeaDrop, and you'll see the same architectural grammar: a drop is broken into stages. Each stage can be configured with a set of parameters — a label, a price, a start time, an end time, an allowlist, a total and maximum supply, a per-wallet cap, and other knobs. Different platforms and different projects mix and match these. Some drops are minimal: a flat price, a single public stage, a hard supply cap. Others layer in token-gating, signature-based allowlists, and multi-stage ramps. The fields are configurable; what gets used depends on what the team wants the drop to do.
What does that mean in practice? It means the project can run a server-signed presale restricted to a hand-curated list of wallet addresses, then open a Merkle-tree allowlist for a wider audience (the proof of inclusion sits in the contract), then a public stage with no gating. Some projects bolt on a token-gated stage that checks whether your wallet already holds a specific parent collection — the model CryptoPunks derivatives and Yuga-affiliated ecosystem drops popularized. Each gate is just logic bolted onto the same contract address.
The lifecycle, then, looks like this:
1. Deploy. The team publishes the contract. Supply, royalties, mint cap per wallet, and stage configuration are committed to bytecode. This is the moment when the rules stop being editable marketing copy and become enforceable code.
2. Configure stages. Some platforms allow stages to be added or scheduled after deployment; others bake them in at deploy time. Either way, the rulebook is locked before the public mint window opens.
3. Allowlist assembly. For presale and allowlist stages, the project — or its allowlist partner — collects wallet addresses. The list lives either in the contract itself (Merkle root), in a server signature scheme the contract verifies, or in a token balance check.
4. Open the mint. A scheduled block timestamp flips a flag. Wallets race to call the mint function. This is where the gas war starts.
5. Close and reveal. Supply hits zero, the public stage closes, metadata is revealed (often via IPFS or a separate pointer in the contract), and secondary trading begins.
That lifecycle explains why whitelist spots carry actual economic weight. A whitelist isn't a marketing perk — it's a credential that grants your specific wallet access to a function call the public will not be able to make for hours or days. When collectors say "the whitelist did 80% of the work," they mean it literally: in many drops, allowlisted wallets get the cheapest mint price, the highest per-wallet cap, and a guaranteed allocation in a contract that oversubscribes the public stage within seconds.
EIP-1559 and the Economics of Ethereum Gas Fees
Every mint transaction on Ethereum pays gas. Gas itself is a unit of computational effort, denominated in gwei — and one gwei equals 0.000000001 ETH, or 10⁻⁹ ETH. A simple ETH transfer consumes 21,000 gas. A contract call like an NFT mint consumes more, depending on the contract's logic: storage writes, signature checks, Merkle proof verifications, and event emissions all stack on top of the base cost.
What you actually pay is governed by EIP-1559, the fee-market reform that went live on Ethereum in August 2021. EIP-1559 replaced the old blind auction with a two-component pricing model:
- Base fee. Set by the protocol itself and adjusted block to block based on network usage. It is burned — permanently removed from circulation — not paid to validators. This is the deflationary pressure that makes ETH's supply dynamic.
- Priority fee. A tip you set, denominated in gwei per gas, that goes to the validator who includes your transaction. The lever you pull when block space is scarce and you need inclusion fast.
Your wallet signs off on a maxFeePerGas (a ceiling) and a maxPriorityFeePerGas (the tip ceiling). You pay the base fee plus your priority fee, up to the ceiling — never more, even if the base fee spikes mid-flight. The system is designed to make fee prediction tractable, but during an NFT mint with thousands of wallets submitting simultaneously, "tractable" loses all meaning.
Why this matters for minting: when a hot drop opens, every wallet in the queue races to set the highest priority fee that still clears the block builder's mempool. Wallets with poor gas estimation sit in the pending pool until their bids are outbid, their transactions expire, or the stage sells out from under them. By the time their transaction is finally included, the mint function may revert — out of stock, allowlist mismatch, or per-wallet cap already hit — and they've spent real ETH on a transaction that produced no token. That last clause is the one we collectors learn the hard way.
Anatomy of a Gas War: Lessons from the Otherside Sale
If you want a textbook case study, the Otherside land sale is it. On April 30, 2022, Yuga Labs opened the mint for its Otherside metaverse land drop, the most-hyped land sale of that cycle. Demand was absurd: the allowlist alone was reportedly oversubscribed multiple times over, and the public stage was a feeding frenzy. The exact sale mechanics and tokenomics circulated widely in the weeks around the event, but the broader lesson is what the day demonstrated: when a single high-profile mint goes viral, the entire Ethereum fee market is the auction.
The numbers speak for themselves. A 2022 paper from the Bank of Italy put the total gas expenditure for the event at roughly $160 million. The bulk of that went to validators, not Yuga — a fact that often gets lost in the moralizing. Axios reported on May 5, 2022 that Yuga ultimately refunded a partial amount in ETH to cover transactions that failed outright, a partial acknowledgment that some users had been charged for attempts that produced nothing.
Three lessons from that day, each of which I still reference when I review new drops:
| Lesson | What it actually meant |
|---|---|
| Demand concentrates in seconds | Block space is finite; thousands of wallets bidding in the same slot create a fee auction. |
| Failed transactions still cost ETH | A revert pays gas for the work done up to the failure point — typically the storage and signature checks before the require statement that killed the call. |
| Refunds are project-specific, not protocol-level | OpenSea's own Drops documentation explicitly states that gas fees occur for any transaction or attempted transaction on the blockchain, including a mint, and that OpenSea cannot refund gas. Any refund you hear about is the project choosing to compensate users, not a network guarantee. |
The cultural lesson is the one nobody wanted to learn: the Otherdeed gas war was a stress test of how brittle "permissionless infrastructure" becomes when the broader collector base converges on the same contract at the same minute. The chain worked. It worked exactly as designed. And "exactly as designed" cost the average joe trying to mint a hundred dollars to be early.
Navigating Mint Risks: Why Failed Transactions Still Cost ETH
This is the section I wish someone had written for me before my third public mint, when I lost 0.04 ETH to a revert I'd have called "free" a year earlier. The mental model most collectors carry is broken. We assume a failed transaction is reverted and the gas is returned. That's not how Ethereum works.
A failed or attempted mint transaction still incurs gas. The virtual machine executes the function call up to the point of failure — which can include storage reads, signature verifications, Merkle proof validation, balance checks, and any event emission that happens before the require or revert that kills the call. The miner or validator gets paid for that work, even though no state change persists and no token lands in your wallet. OpenSea's own Drops FAQ confirms this plainly: gas fees occur for any transaction or attempted transaction on the blockchain, including a mint. They explicitly state OpenSea cannot refund gas.
So the risks you actually price in before a mint aren't just the mint price. They're:
- Eligibility risk. Your wallet isn't on the allowlist, or it's on the wrong stage's list, or your token-gated balance is one transfer short. The contract reverts. You pay gas for the privilege of being told no.
- Supply risk. The stage sells out while your transaction sits in the mempool at a too-low priority fee. By the time you're included,
totalSupply >= maxSupply, and the require statement kills the call. You pay gas for the attempt. - Limit risk. You try to mint a quantity above the stage's
maxMintsPerWallet. The contract reverts. You pay gas. - Gas price risk. You set a competitive priority fee at submission, the base fee spikes before inclusion, your transaction still goes through — but your effective ETH cost is now multiples of what you budgeted.
- Phishing and fake-drop risk. You connect to a contract that mimics the real one's interface and drains your wallet outright. This one costs everything, not just gas.
The way to navigate this isn't optimism. It's preparation. Verify the contract address from the project's verified social accounts and ENS, not from a Discord link posted five minutes before the drop. Confirm the stage parameters on the drop page: start time in UTC, price, allowlist source, per-wallet cap. Set a priority fee slightly above the current mempool median, not a heroic number, because heroic numbers don't save you from supply exhaustion. And budget for at least one failed attempt on a competitive public sale — treat it as the cost of admission, not a surprise.
Budget for the failed mint, not just the successful one. The chain charges you either way.
There's a more philosophical point hiding here, and it's one I keep coming back to as a market observer. Minting is the moment where the cultural premium of a collection meets the cold, deterministic economics of block space. The art, the community, the road map — none of it changes the gas market. The drop is either calibrated to clear at a sane priority fee, or it isn't. The community Discord will be euphoric regardless. The on-chain data won't lie.
My sober takeaway, after watching more mints than I care to count: treat the mint button as the entry point into a system with non-negotiable physics, not as a feature toggle. Read the contract stage parameters the way you'd read a rugpull warning. Budget for the failed attempt. And never, ever let Discord hype outrun your wallet's actual exposure. The chain has no feelings about your conviction. It just charges the fee.