Minting und Burning
Supply-Verwaltung
Minting und Burning ist eine kostenlose Web3 & DApp Development Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Web3 & DApp Development Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Web3 & DApp Development Fundamentals-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
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
Häufig gestellte Fragen
Ist die Lektion „Minting und Burning“ kostenlos?
Ja — der vollständige Text von „Minting und Burning“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Web3 & DApp Development Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Web3 & DApp Development Fundamentals-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Minting und Burning“?
Supply-Verwaltung Du übst Web3 & DApp Development Fundamentals mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Web3 & DApp Development Fundamentals zu starten?
Keine Vorkenntnisse erforderlich. Web3 & DApp Development Fundamentals auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Minting und Burning“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Web3 & DApp Development Fundamentals-Lektion Code schreiben und ausführen?
Ja. Jede Web3 & DApp Development Fundamentals-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Der ERC-20-Standard
- Einen Token implementieren
- Allowances
- Minting und Burning