0Pricing
Web3 & DApp Development Fundamentals · Lección

Acuñación y quema

Gestión del suministro

Acuñación y quema es una lección gratuita de Web3 & DApp Development Fundamentals en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Web3 & DApp Development Fundamentals, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Web3 & DApp Development Fundamentals incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

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

Preguntas frecuentes

¿La lección «Acuñación y quema» es gratis?

Sí — el texto completo de «Acuñación y quema» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Web3 & DApp Development Fundamentals, actualiza a CoddyKit PRO. El curso de Web3 & DApp Development Fundamentals incluye 4 lecciones en total.

¿Qué aprenderé en «Acuñación y quema»?

Gestión del suministro Practicas Web3 & DApp Development Fundamentals con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Web3 & DApp Development Fundamentals?

No se requiere experiencia previa. Web3 & DApp Development Fundamentals en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Acuñación y quema»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Web3 & DApp Development Fundamentals?

Sí. Cada lección de Web3 & DApp Development Fundamentals incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. El estándar ERC-20
  2. Implementación de un token
  3. Allowances
  4. Acuñación y quema
← Volver a Web3 & DApp Development Fundamentals