ミントとバーン
供給量の管理
「ミントとバーン」はCoddyKit上の無料Web3 & DApp Development Fundamentalsレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはWeb3 & DApp Development Fundamentals学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Web3 & DApp Development Fundamentalsコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
Managing Supply
Minting creates new tokens and burning destroys them. Together they let a token's totalSupply grow or shrink over time.
These operations are not part of the core ERC-20 interface, but they are extremely common extensions.
What Minting Does
Minting increases totalSupply and credits new tokens to a recipient's balance. It is how tokens enter circulation - at deployment, as rewards, or on demand.
Implementing Mint
A mint function adds to both totalSupply and the recipient's balance, then emits a Transfer event from the zero address.
<code>function _mint(address to, uint256 amount) internal {
require(to != address(0), 'mint to zero');
totalSupply += amount;
balanceOf[to] += amount;
emit Transfer(address(0), to, amount);
}</code>Mint Emits From Zero
By convention a mint is logged as a Transfer from address(0). Wallets and indexers interpret a transfer originating at the zero address as new tokens being created.
<code>emit Transfer(address(0), to, amount); // signals minting</code>What Burning Does
Burning reduces totalSupply and subtracts from a holder's balance, permanently removing tokens from circulation. It is used for deflationary mechanics, redemptions, and buybacks.
Implementing Burn
A burn function checks the holder's balance, decreases it and totalSupply, then emits a Transfer to the zero address.
<code>function _burn(address from, uint256 amount) internal {
require(balanceOf[from] >= amount, 'burn exceeds balance');
balanceOf[from] -= amount;
totalSupply -= amount;
emit Transfer(from, address(0), amount);
}</code>Burn Emits To Zero
Symmetrically, a burn is logged as a Transfer to address(0). Tokens sent to the zero address are unrecoverable, which is exactly the intent.
<code>emit Transfer(from, address(0), amount); // signals burning</code>Access Control on Mint
Minting must be restricted - an open mint function lets anyone create unlimited tokens, destroying value. Gate it behind an owner or minter role.
<code>address public owner;
modifier onlyOwner() { require(msg.sender == owner, 'not owner'); _; }
function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount);
}</code>Burning Your Own Tokens
Holders are usually allowed to burn their own tokens freely. A public burn simply burns from msg.sender.
<code>function burn(uint256 amount) public {
_burn(msg.sender, amount);
}</code>Capped Supply
To guarantee scarcity, a token can enforce a maximum supply by checking against a cap before minting.
<code>uint256 public immutable cap;
function mint(address to, uint256 amount) public onlyOwner {
require(totalSupply + amount <= cap, 'cap exceeded');
_mint(to, amount);
}</code>Burn From Allowance
Like transferFrom, a burnFrom lets an approved spender burn another account's tokens, decrementing the allowance first.
<code>function burnFrom(address from, uint256 amount) public {
require(allowance[from][msg.sender] >= amount, 'allowance');
allowance[from][msg.sender] -= amount;
_burn(from, amount);
}</code>Quick Check
Test your understanding of minting and burning.
Recap
You learned supply management:
- Mint increases totalSupply, credits a balance, emits Transfer from address(0)
- Burn decreases totalSupply, debits a balance, emits Transfer to address(0)
- Minting must be access-controlled; holders can usually burn their own tokens
- Caps enforce a maximum supply; burnFrom uses allowances
AI チューターと学ぶ Web3 & DApp Development Fundamentals — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 29
- レッスン
- 105
よくある質問
「ミントとバーン」レッスンは無料ですか?
はい。「ミントとバーン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Web3 & DApp Development Fundamentalsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Web3 & DApp Development Fundamentalsコースには全4レッスンが含まれています。
「ミントとバーン」で何を学びますか?
供給量の管理 ブラウザで直接実行するハンズオンコードでWeb3 & DApp Development Fundamentalsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Web3 & DApp Development Fundamentalsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのWeb3 & DApp Development Fundamentalsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「ミントとバーン」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このWeb3 & DApp Development Fundamentalsレッスンでコードを書いて実行できますか?
はい。すべてのWeb3 & DApp Development Fundamentalsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。