ERC-721-standarden
Non-fungible tokens
ERC-721-standarden er en gratis Grundlæggende udvikling af Web3- og DApp-programmer-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende udvikling af Web3- og DApp-programmer, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende udvikling af Web3- og DApp-programmer-kurset indeholder 4 lektioner i alt.
Hvad er ERC-721?
ERC-721 er standarden for non-fungible tokens (NFT'er). I modsætning til ERC-20 er hvert token unikt og identificeres af et særskilt tokenId.
NFT'er repræsenterer ejerskab af unikke genstande: kunst, samlerobjekter, aktiver i spil og meget mere.
Fungible og non-fungible tokens
Den vigtigste forskel:
- ERC-20 – alle tokens er identiske og kan ombyttes, og de registreres via en saldo
- ERC-721 – hvert token er unikt og registreres via ejeren for hvert tokenId
Du ejer det specifikke token nr. 42, ikke en brøkdel af en pulje.
Centrale ejerskabsfunktioner
ERC-721 registrerer ejerskab med to centrale forespørgsler:
ownerOf(tokenId)– hvem der ejer et bestemt tokenbalanceOf(owner)– hvor mange tokens en adresse ejer
<code>function ownerOf(uint256 tokenId) external view returns (address);
function balanceOf(address owner) external view returns (uint256);</code>Overførselsfunktioner
ERC-721 tilbyder transferFrom og den sikrere safeTransferFrom, som kontrollerer, at en modtagende kontrakt kan håndtere NFT'er.
<code>function transferFrom(address from, address to, uint256 tokenId) external;
function safeTransferFrom(address from, address to, uint256 tokenId) external;</code>Godkendelsesfunktioner
Ejere kan give andre tilladelse til at overføre bestemte tokens med approve eller give en generel tilladelse til alle deres tokens med setApprovalForAll.
<code>function approve(address to, uint256 tokenId) external;
function setApprovalForAll(address operator, bool approved) external;
function getApproved(uint256 tokenId) external view returns (address);
function isApprovedForAll(address owner, address operator) external view returns (bool);</code>Påkrævede hændelser
ERC-721 definerer tre hændelser: Transfer, Approval og ApprovalForAll. Bemærk, at tokenId er indekseret, så overførsler af en bestemt NFT er nemme at spore.
<code>event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);</code>safeTransferFrom og onERC721Received
safeTransferFrom beskytter mod, at NFT'er bliver fastlåst. Hvis modtageren er en kontrakt, skal den implementere onERC721Received og returnere den korrekte magiske værdi; ellers rulles overførslen tilbage.
<code>// receiving contract must implement:
function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data)
external returns (bytes4);</code>Metadataudvidelsen
De fleste NFT'er implementerer den valgfrie metadataudvidelse, som tilføjer name(), symbol() og især tokenURI(tokenId), der peger på tokenets JSON-metadata uden for kæden.
<code>function name() external view returns (string memory);
function symbol() external view returns (string memory);
function tokenURI(uint256 tokenId) external view returns (string memory);</code>Registrering af ERC-165-grænseflader
ERC-721 bygger på ERC-165, som lader kontrakter angive, hvilke grænseflader de understøtter, via supportsInterface. Markedspladser bruger det til at registrere NFT'er.
<code>function supportsInterface(bytes4 interfaceId) external view returns (bool);</code>Brug af OpenZeppelin ERC721
Ligesom med ERC-20 er den praktiske tilgang at nedarve OpenZeppelins reviderede ERC721-implementering og tilføje din mintinglogik.
<code>// import '@openzeppelin/contracts/token/ERC721/ERC721.sol';
// contract MyNFT is ERC721 {
// constructor() ERC721('MyNFT', 'MNFT') {}
// }</code>Hvor aktivet findes
En NFT på kæden er blot et id og en ejer. Det faktiske billede eller medie findes normalt uden for kæden, ofte på IPFS, og refereres af tokenURI. Kæden beviser ejerskab, ikke selve filen.
Hurtigt tjek
Test din forståelse af ERC-721-standarden.
Opsummering
Du har lært ERC-721-standarden:
- NFT'er er unikke, identificeres af tokenId og spores via
ownerOf - Overførsler bruger
transferFromog den sikreresafeTransferFrom - Godkendelser:
approvepr. token ogsetApprovalForAllfor alle tokens - Metadataudvidelsen tilføjer
tokenURI; ERC-165 muliggør registrering af grænseflader - Aktiver findes normalt uden for kæden og refereres af URI'en
Lær Grundlæggende udvikling af Web3- og DApp-programmer med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 29
- Lektioner
- 105
Ofte stillede spørgsmål
Er lektionen “ERC-721-standarden” gratis?
Ja — alle 3 lektioner i læringssporet Grundlæggende udvikling af Web3- og DApp-programmer, inklusive “ERC-721-standarden”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende udvikling af Web3- og DApp-programmer-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “ERC-721-standarden”?
Non-fungible tokens Du øver dig i Grundlæggende udvikling af Web3- og DApp-programmer med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Grundlæggende udvikling af Web3- og DApp-programmer?
Der kræves ingen tidligere erfaring. Grundlæggende udvikling af Web3- og DApp-programmer på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “ERC-721-standarden”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Grundlæggende udvikling af Web3- og DApp-programmer-lektion?
Ja. Alle Grundlæggende udvikling af Web3- og DApp-programmer-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- ERC-721-standarden
- Minting af NFT'er
- Tokenmetadata
- Markedspladser