Crypto minting is the creation of new tokens on a blockchain. A program, usually a smart contract or the chain's own protocol, writes new units into existence and assigns them to an address, which raises the token supply. When people say "minting", they mean one of two things: adding more units of a fungible token (such as a stablecoin or an ERC-20 token), or creating a single non-fungible token (NFT), each with its own ID. Both use the same word, but they do different things to supply.
The two meanings of minting
| Minting fungible tokens | Minting an NFT | |
|---|---|---|
| What is created | More units of an existing token; every unit is interchangeable | One new token with its own unique ID |
| Ethereum standard | ERC-20 | ERC-721 |
| Effect on supply | Total token supply goes up by the minted amount | One more token exists in that collection |
| Who can mint | Whoever the contract allows; often a single owner or minter role | Whoever the contract allows; sometimes anyone |
| Recorded on-chain | Balances and total supply | Owner of each token ID, plus a link to metadata |
A third, related case is protocol issuance: a blockchain creating its own native coin as a reward for validators. It is covered below because it is often called minting too.
Minting fungible tokens (ERC-20)
ERC-20 is the Ethereum standard for fungible tokens. It defines how tokens are transferred and how balances and totalSupply are read. It does not define a mint function. The OpenZeppelin documentation says the way supply is created "is not defined in the ERC-20 document", so each token contract chooses its own method.
How it works
In practice, a token contract includes an internal mint function. When it runs, it:
- Adds the new units to the recipient's balance.
- Increases the token's total supply by the same amount.
- Emits a
Transferevent from the zero address (0x0) to the recipient. ERC-20 says a contract that creates tokens should emit this event, which is how block explorers show a mint.
A token can mint its whole supply once, when the contract is deployed, and never again. That is a fixed supply. Other tokens keep a mint function that can be called later, which makes supply open-ended.
Who can mint
The contract decides who may call the mint function. OpenZeppelin's access-control guide shows two common patterns: a single owner account, or a MINTER_ROLE that can be given to several accounts. This is the most important thing to check about any token: if one key can mint without limits, that key holder can increase supply at will.
The same idea on Solana
Solana does not use ERC-20. Each token there has a Mint Account that stores its supply, decimals, mint authority and freeze authority. The mint authority is the account allowed to create new units. Solana's documentation states that if no mint authority is present, the mint has a fixed supply and no further tokens can be minted. Checking whether that field is empty is the Solana equivalent of checking an Ethereum contract's mint permissions.
Minting an NFT (ERC-721)
ERC-721 is the Ethereum standard for non-fungible tokens. Each NFT has a tokenId (a uint256 number), and the pair of contract address and token ID is globally unique on that chain. ERC-721 says the creation of NFTs ("minting") is not included in the specification, so each collection's contract implements it its own way. When an NFT is created, the contract emits a Transfer event from the zero address, the same signal used for fungible tokens.
How it works
A typical mint, as in OpenZeppelin's ERC-721 example:
- The contract picks the next unused token ID.
- It records the recipient as the owner of that ID.
- It stores a token URI, a link that points to a JSON file with the NFT's name, description and image.
What the NFT actually contains
The blockchain records who owns which token ID. The image or other content usually does not live on the blockchain. ERC-721 describes the token URI as pointing to a JSON metadata file, and OpenZeppelin notes that in its example this information "isn't on-chain". Metadata can be stored on-chain, but OpenZeppelin calls that option costly. Before minting or buying an NFT, check where its metadata and image are hosted and whether the URI can be changed.
Can more of this token be minted?
Answer a few questions about the token you are looking at to see who can create new units and what to check next.
What kind of token are you checking?
- A fungible token on Ethereum or another EVM chain (ERC-20) → next question
- A token on Solana → next question
- An NFT (ERC-721) → next question
- A chain's own native coin, such as ETH → Protocol issuance, not a mint function
Does the token contract keep a mint function that can be called after deployment?
- No: the whole supply was minted once, when the contract was deployed → Fixed supply
- Yes: a mint function can still be called → next question
Which modifier or role guards the mint function?
- A single owner account → One key can add supply
- A MINTER_ROLE held by one or more accounts, or a multisig → Supply is open-ended for role holders
- I can't tell, or the contract is upgradeable or controlled by another contract → Read the code more closely
On the token's Mint Account, is a mint authority set?
- No: the mint authority field is empty → Fixed supply on Solana
- Yes: an account is set as mint authority → The mint authority can create more
Where do the NFT's metadata and image live?
- Stored on-chain → Content recorded on the chain
- Behind a token URI that points to a JSON file off-chain → Ownership on-chain, content elsewhere
Since The Merge, new ETH is created only on the consensus layer as validator rewards, and the base fee of every transaction is burned. Nobody calls a function to trigger this and no single key holder can change the reward; net supply depends on issuance versus burning.
If the whole supply was minted at deployment and no mint function remains, supply cannot grow. You can confirm the history by filtering Transfer events from the zero address, which show every past mint.
If a single owner can mint without limits, that key holder can increase supply at will. Check the contract for any cap, and review past mints through Transfer events from the zero address.
Every account given the MINTER_ROLE can create new units, and total supply rises by each minted amount. Check who holds the role and filter Transfer events from the zero address to see past mints.
The checks show who can mint, not whether they will. An upgradeable contract, or one controlled by another contract, needs a closer read of the code before you can say who controls supply.
Solana's documentation states that if no mint authority is present, the mint has a fixed supply and no further tokens can be minted.
The account set as mint authority is allowed to create new units, so supply can still grow. The Mint Account also lists a freeze authority worth checking.
The chain records who owns each token ID, and here the metadata is stored on-chain too. OpenZeppelin calls this option costly, so it is less common.
The blockchain records who owns the token ID, but the name, description and image sit in a JSON file the token URI points to. Check where that file and image are hosted and whether the URI can be changed.
This walks through the article's checks only: it cannot read a real contract for you, and it shows who is able to mint, not whether they will.
Protocol issuance: when a blockchain mints its own coin
Proof-of-stake chains create new native coins as validator rewards. On Ethereum, a validator needs at least 32 ETH to activate, and since the Pectra upgrade one validator can hold up to 2,048 ETH. Validators propose blocks, check other validators' work and earn ETH rewards. Validators that go offline miss rewards and lose small amounts of ETH; provably malicious behavior, such as signing two competing blocks, leads to slashing, where part of the stake is destroyed and the validator is removed.
According to ethereum.org, issuance is "the process of creating ETH that did not previously exist". Since The Merge, issuance happens only on the consensus layer, as validator rewards. At the same time, the base fee of every transaction is burned, so the net change in ETH supply depends on how much is issued versus how much is burned. On days with high enough gas prices, burning can bring net inflation to zero or below.
Unlike token minting, nobody calls a function to trigger this. The protocol's rules set the reward, and no single key holder can change it.
Minting versus mining
Mining is how proof-of-work chains such as Bitcoin produce blocks. A miner must find a block header hash below the network's target, which takes a significant amount of computing work. The first transaction in each Bitcoin block, called the generation transaction, collects the block reward: a block subsidy plus transaction fees. Minting, by contrast, needs no computing race: a contract or protocol rule creates the tokens directly.
How to check a token's minting rules
- Ethereum and EVM chains: open the token contract on a block explorer and look for a mint function and the modifier or role that guards it (owner,
MINTER_ROLE, multisig). - Solana: look up the token's Mint Account and check whether a mint authority is set.
- NFTs: check the token URI and where the metadata and image are stored.
- Supply history: filter
Transferevents from the zero address to see every past mint.
These checks show who can mint, not whether they will; contracts can also be upgradeable or controlled by other contracts, which needs a closer read of the code.
For more background, see [what a blockchain is](/blog/what-are-blockchains/), [how smart contracts work](/blog/how-do-ethereum-smart-contracts-work/), [how bitcoin mining works](/blog/what-is-bitcoin-mining/) and [lazy minting](/blog/free-nft-minting/).