Blockchain-smart contracts met Solidity · Les

ERC-721-non-fungible tokens (NFT's)

Verken de ERC-721-standaard voor unieke digitale assets en leer hoe u NFT's mint en beheert.

Les 3 van 411 stappen

ERC-721-non-fungible tokens (NFT's) is een gratis Blockchain-smart contracts met Solidity-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Blockchain-smart contracts met Solidity. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Blockchain-smart contracts met Solidity bevat in totaal 4 lessen.

Inleiding tot unieke digitale activa

Welkom in de wereld van Non-Fungible Tokens (NFT's)! In tegenstelling tot gewoon geld of cryptovaluta zijn NFT's unieke digitale objecten.

Zie ze als zeldzame verzamelobjecten of unieke kunstwerken, maar dan volledig digitaal. Elke NFT heeft kenmerkende eigenschappen en kan niet door een andere worden vervangen.

De ERC-721-standaard

Op Ethereum worden NFT's gedefinieerd door een standaard met de naam ERC-721. Deze standaard is een set regels die smart contracts moeten volgen om unieke tokens te maken, beheren en over te dragen.

Zo werken alle NFT's die aan de standaard voldoen op vergelijkbare wijze op verschillende platforms, waardoor ze interoperabel zijn.

Belangrijke concepten: token-ID en eigendom

Elke ERC-721-token heeft een unieke Token ID (een groot getal). Deze ID onderscheidt de token van alle andere NFT's, zelfs van NFT's uit dezelfde verzameling.

De standaard definieert ook functies om eigendom bij te houden:

  • ownerOf(uint256 tokenId): retourneert het adres dat een specifieke NFT bezit.
  • balanceOf(address owner): retourneert het aantal NFT's dat een adres uit dat contract bezit.

Bouwen met OpenZeppelin

Een ERC-721-contract vanaf nul maken kan ingewikkeld zijn. Gelukkig biedt OpenZeppelin grondig geteste, veilige implementaties.

We kunnen hun contracten eenvoudig importeren en daarop voortbouwen. Dat bespaart tijd en verkleint het risico op kwetsbaarheden.

Je eerste ERC-721-contract

Hier zie je een basisstructuur voor een ERC-721-contract met OpenZeppelin. In de constructor definieert het een naam en symbool voor onze NFT-verzameling.

Vervolgens voegen we een functie toe om tokens te maken.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

contract SimpleNFT is ERC721 {
    constructor() ERC721("MySimpleNFT", "MSN") {
        // Constructor for ERC721 takes name and symbol
    }
}

Nieuwe NFT's maken: minten

Om nieuwe NFT's te maken, gebruiken we een proces dat minten heet. De functie _safeMint (geleverd door OpenZeppelin's ERC721) maakt een nieuwe token en wijst deze toe aan een eigenaar.

Laten we een openbare mint-functie aan ons contract toevoegen om nieuwe NFT's te maken.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

contract SimpleNFT is ERC721 {
    uint256 private _tokenIdCounter;

    constructor() ERC721("MySimpleNFT", "MSN") {
        _tokenIdCounter = 0;
    }

    function mint(address to) public returns (uint256) {
        uint256 newItemId = _tokenIdCounter;
        _tokenIdCounter++;
        _safeMint(to, newItemId); // Mints token and assigns to 'to' address
        return newItemId;
    }
}

NFT-metadata met een token-URI

De waarde van een NFT komt vaak voort uit wat deze vertegenwoordigt (een afbeelding, een lied of een game-item). Deze informatie, die metadata wordt genoemd, wordt vanwege de kosten niet rechtstreeks op de blockchain opgeslagen.

In plaats daarvan bevat de ERC-721-standaard een functie tokenURI(uint256 tokenId). Deze functie retourneert een URL die verwijst naar een JSON-bestand met een beschrijving van de metadata van de NFT (bijvoorbeeld de naam, beschrijving en afbeeldings-URL).

Eigendom overdragen

Zodra een NFT is gemint, kan deze tussen eigenaren worden overgedragen. De ERC-721-standaard bevat hiervoor functies:

  • transferFrom(address from, address to, uint256 tokenId): draagt het eigendom van tokenId over van from naar to.
  • safeTransferFrom(...): een veiligere versie die controleert of het ontvangende contract NFT's kan ontvangen.

Deze functies zorgen ervoor dat alleen de huidige eigenaar of een goedgekeurd adres een overdracht kan starten.

Gedelegeerde overdrachten: goedkeuringen

Soms wil je een ander adres, zoals een marktplaats, toestaan om namens jou je NFT over te dragen. Dit doe je met goedkeuringen.

Met de functie approve(address to, uint256 tokenId) kun je een ander adres to toestemming geven om een specifieke tokenId te beheren. Dit is essentieel voor gedecentraliseerde beurzen en andere dApps.

Kenniscontrole over ERC-721

Laten we testen of je ERC-721-NFT's goed begrijpt. Selecteer alle ware uitspraken.

Samenvatting: ERC-721-NFT's

Je hebt de fascinerende wereld van ERC-721 Non-Fungible Tokens verkend!

  • NFT's zijn unieke digitale bezittingen, in tegenstelling tot vervangbare cryptovaluta.
  • De ERC-721-standaard beschrijft hoe deze unieke tokens op Ethereum worden aangemaakt en beheerd.
  • Belangrijke functies zijn unieke token-ID's, het bijhouden van eigendom, minten en het koppelen aan metadata buiten de blockchain via tokenURI.
  • OpenZeppelin-contracten maken de ontwikkeling van ERC-721 eenvoudiger.

NFT's vormen een belangrijk onderdeel van digitaal eigendom en worden gebruikt voor kunst, games en vele andere toepassingen!

Gratis beginnen

Leer Blockchain-smart contracts met Solidity met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “ERC-721-non-fungible tokens (NFT's)” gratis?

Ja — de volledige tekst van “ERC-721-non-fungible tokens (NFT's)” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Blockchain-smart contracts met Solidity wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Blockchain-smart contracts met Solidity bevat in totaal 4 lessen.

Wat leer ik in “ERC-721-non-fungible tokens (NFT's)”?

Verken de ERC-721-standaard voor unieke digitale assets en leer hoe u NFT's mint en beheert. Je oefent met Blockchain-smart contracts met Solidity door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Blockchain-smart contracts met Solidity te beginnen?

Ervaring vooraf is niet nodig. Blockchain-smart contracts met Solidity op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “ERC-721-non-fungible tokens (NFT's)”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Blockchain-smart contracts met Solidity?

Ja. Elke les over Blockchain-smart contracts met Solidity bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. ERC-20-standaard voor fungibele tokens
  2. Een ERC-20-token implementeren
  3. ERC-721-non-fungible tokens (NFT's)
  4. ERC-1155-multitokennorm
← Terug naar Blockchain-smart contracts met Solidity