Standard ERC (ERC-20, ERC-721)
Studi gli standard comuni Ethereum Request for Comments (ERC), come ERC-20 per i token fungibili ed ERC-721 per i token non fungibili (NFT).
Standard ERC (ERC-20, ERC-721) è una lezione Web3 & DApp Development Fundamentals gratuita su CoddyKit. Questa è la lezione 1 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Web3 & DApp Development Fundamentals, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Web3 & DApp Development Fundamentals include 3 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
What are ERC Standards?
ERC stands for Ethereum Request for Comments. These are official proposals that define specific rules and functionalities for smart contracts on the Ethereum blockchain.
Think of them as blueprints or common agreements. They ensure that different contracts and applications can 'speak the same language' and interact seamlessly.
Understanding ERC-20 Tokens
An ERC-20 token is a standard for fungible tokens. Fungible means each unit is identical and interchangeable with another, just like regular currency.
If you have one dollar, it's the same as any other dollar. ERC-20 tokens are used for cryptocurrencies, stablecoins, and utility tokens.
ERC-20: Basic Operations
The ERC-20 standard defines a set of functions and events that all compliant tokens must implement. Key functions include:
totalSupply(): Returns the total number of tokens.balanceOf(address account): Gets the balance of an address.transfer(address recipient, uint256 amount): Sends tokens from the caller to a recipient.
ERC-20: Simple Transfer
Here's a simplified contract demonstrating the core idea of an ERC-20 token's transfer function. It manages balances and allows sending tokens.
Try deploying this in Remix and transferring tokens!
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleToken {
string public name = "MySimpleToken";
string public symbol = "MST";
uint8 public decimals = 18;
uint256 public totalSupply = 1000000 * (10 ** decimals);
mapping(address => uint256) public balances;
constructor() {
balances[msg.sender] = totalSupply;
}
function transfer(address recipient, uint256 amount)
public returns (bool)
{
require(balances[msg.sender] >= amount, "Insufficient balance");
balances[msg.sender] -= amount;
balances[recipient] += amount;
return true;
}
function balanceOf(address account)
public view returns (uint256)
{
return balances[account];
}
}ERC-20: Approve & TransferFrom
To allow other contracts (like decentralized exchanges) to spend tokens on your behalf, ERC-20 uses allowances:
approve(address spender, uint256 amount): Allows aspenderto withdraw up toamountfrom your account.transferFrom(address sender, address recipient, uint256 amount): Transfers tokens fromsendertorecipient, usually called by aspenderwho has an allowance.
Introducing ERC-721 NFTs
ERC-721 tokens are for non-fungible tokens (NFTs). Non-fungible means each token is unique and cannot be replaced by another.
Think of a unique piece of art or a specific collectible card. NFTs are used for digital art, unique game items, land in virtual worlds, and more.
ERC-721: Ownership & Transfers
The ERC-721 standard also defines specific functions:
ownerOf(uint256 tokenId): Returns the owner of a specific token ID.balanceOf(address owner): Returns the number of NFTs an owner has.safeTransferFrom(address from, address to, uint256 tokenId): Safely transfers a specific NFT from one address to another.
ERC-721: Simple NFT Minting
This contract shows a basic way to 'mint' (create) unique NFTs and track their ownership. Each NFT has a unique tokenId.
After deploying, try calling the mint function multiple times!
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleNFT {
string public name = "MySimpleNFT";
string public symbol = "SNFT";
uint256 private _nextTokenId;
mapping(uint256 => address) public ownerOf;
mapping(address => uint256) public balanceOf;
constructor() {
_nextTokenId = 0;
}
function mint(address recipient)
public returns (uint256)
{
_nextTokenId++;
uint256 newTokenId = _nextTokenId;
ownerOf[newTokenId] = recipient;
balanceOf[recipient]++;
return newTokenId;
}
}ERC-20 vs. ERC-721: Key Differences
Here's a quick comparison:
- Fungibility: ERC-20 tokens are fungible (interchangeable); ERC-721 tokens are non-fungible (unique).
- Uniqueness: ERC-20 tokens are tracked by quantity; ERC-721 tokens are tracked by unique IDs.
- Use Cases: ERC-20 for currencies, voting rights; ERC-721 for digital art, collectibles, deeds.
Identify the Standards
Which of the following statements correctly describe the characteristics or use cases of ERC-20 and ERC-721 tokens?
Recap: ERC Standards
We've explored two foundational Ethereum standards:
- ERC-20 for fungible tokens, ideal for currencies and utility tokens.
- ERC-721 for non-fungible tokens (NFTs), perfect for unique digital assets like art and collectibles.
These standards are crucial for interoperability and building a wide range of DApps on Ethereum.
Domande Frequenti
La lezione «Standard ERC (ERC-20, ERC-721)» è gratuita?
Sì — il testo completo di «Standard ERC (ERC-20, ERC-721)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Web3 & DApp Development Fundamentals, passa a CoddyKit PRO. Il corso Web3 & DApp Development Fundamentals include 3 lezioni in totale.
Cosa imparerò in «Standard ERC (ERC-20, ERC-721)»?
Studi gli standard comuni Ethereum Request for Comments (ERC), come ERC-20 per i token fungibili ed ERC-721 per i token non fungibili (NFT). Eserciti Web3 & DApp Development Fundamentals con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Web3 & DApp Development Fundamentals?
Non è richiesta alcuna esperienza precedente. Web3 & DApp Development Fundamentals su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 3.
Quanto tempo richiede la lezione «Standard ERC (ERC-20, ERC-721)»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Web3 & DApp Development Fundamentals?
Sì. Ogni lezione Web3 & DApp Development Fundamentals include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Standard ERC (ERC-20, ERC-721)
- Best practice per la sicurezza dei contract
- Contract aggiornabili