Grunderna i Web3- och DApp-utveckling · Lektion

Tokenmetadata

tokenURI och JSON

Lektion 3 av 413 steg

Tokenmetadata är en gratis lektion i Grunderna i Web3- och DApp-utveckling på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Grunderna i Web3- och DApp-utveckling, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Grunderna i Web3- och DApp-utveckling innehåller totalt 4 lektioner.

Vad är tokenmetadata?

Metadata beskriver vad en NFT faktiskt representerar: dess namn, beskrivning, bild och attribut. Ägandet lagras på blockkedjan, medan den beskrivande informationen vanligtvis finns utanför blockkedjan i en JSON-fil.

Länken mellan dem är tokenURI.

Funktionen tokenURI

Metadatautökningen definierar tokenURI(tokenId), som returnerar en URL som pekar på JSON-metadata för den specifika tokenen.

<code>function tokenURI(uint256 tokenId) external view returns (string memory);</code>

JSON-schemat för metadata

Standard-JSON innehåller några välkända fält. Marknadsplatser som OpenSea läser dessa för att visa NFT:n.

<code>{
  'name': 'Cool Cat #42',
  'description': 'A very cool cat.',
  'image': 'ipfs://Qm.../42.png',
  'attributes': [
    { 'trait_type': 'Color', 'value': 'Blue' }
  ]
}</code>

Attribut och egenskaper

Arrayen attributes listar egenskaper som objekt med trait_type och value. Dessa används för sällsynthetsrankning och filtrering på marknadsplatser.

<code>'attributes': [
  { 'trait_type': 'Background', 'value': 'Sky' },
  { 'trait_type': 'Level', 'value': 5 }
]</code>

URI:er per token

Ett alternativ är att lagra en unik URI per token i en mappning. Det är flexibelt men använder mer lagringsutrymme.

<code>mapping(uint256 => string) private _tokenURIs;

function tokenURI(uint256 id) public view returns (string memory) {
    return _tokenURIs[id];
}</code>

Mönstret med en bas-URI

Ett billigare alternativ är att lagra en enda bas-URI och lägga till token-id:t. Detta fungerar när filerna namnges sekventiellt, till exempel 1.json, 2.json och så vidare.

<code>string private baseURI = 'ipfs://QmFolder/';

function tokenURI(uint256 id) public view returns (string memory) {
    return string(abi.encodePacked(baseURI, _toString(id), '.json'));
}</code>

Varför IPFS?

Det är riskabelt att lagra metadata på en vanlig server: om servern går ner eller filen ändras slutar NFT:n att fungera. IPFS använder innehållsbaserade hashvärden, så en URI som ipfs://Qm... pekar alltid på exakt samma oföränderliga innehåll.

Innehållsbaserad adressering

En IPFS-hash (CID) härleds från filens innehåll. Ändra en enda byte, så ändras hashvärdet. Detta garanterar att metadata inte kan bytas ut i smyg och bevarar NFT:ns integritet.

<code>// image: 'ipfs://bafybeih.../art.png'
// the CID itself proves the content is unaltered</code>

Metadata på blockkedjan

För helt decentraliserade NFT:er kan du lagra metadata helt på blockkedjan genom att returnera en base64-kodad data-URI. Detta kostar mer gas men tar bort alla beroenden utanför blockkedjan.

<code>// returns: data:application/json;base64,<encoded JSON>
// fully on-chain, no IPFS or server needed</code>

Reveal-mekanik

Många släpp mintar med en platshållar-URI och byter sedan bas-URI efter försäljningen för att avslöja den riktiga konsten. Detta hindrar köpare från att försöka få sällsynta egenskaper innan mintningen.

<code>bool public revealed = false;

function setRevealed() public onlyOwner {
    baseURI = 'ipfs://QmRealArt/';
    revealed = true;
}</code>

Hur marknadsplatser läser metadata

En marknadsplats anropar tokenURI(id), hämtar den returnerade JSON-datan, laddar sedan image och renderar attributes. Det är genom att följa standardschemat som din NFT visas korrekt överallt.

Snabb kontroll

Testa din förståelse av tokenmetadata.

Sammanfattning

Du har lärt dig om NFT-metadata:

  • tokenURI(id) returnerar en länk till tokenens JSON-metadata
  • JSON-datan innehåller namn, beskrivning, bild och attribut
  • Använd URI:er per token eller mönstret bas-URI + id
  • IPFS-innehållsadressering håller metadata oföränderlig; metadata på blockkedjan tar helt bort externa beroenden
  • Reveal-mönster döljer konsten tills efter mintningen
Gratis att börja

Lär dig Grunderna i Web3- och DApp-utveckling med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
29
Lektioner
105

Vanliga frågor

Är lektionen ”Tokenmetadata” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Grunderna i Web3- och DApp-utveckling, inklusive ”Tokenmetadata”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Grunderna i Web3- och DApp-utveckling innehåller totalt 4 lektioner.

Vad lär jag mig i ”Tokenmetadata”?

tokenURI och JSON Ni övar på Grunderna i Web3- och DApp-utveckling med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Grunderna i Web3- och DApp-utveckling?

Du behöver inga förkunskaper. Utbildningen i Grunderna i Web3- och DApp-utveckling på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Tokenmetadata”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Grunderna i Web3- och DApp-utveckling-lektionen?

Ja. Varje Grunderna i Web3- och DApp-utveckling-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. ERC-721-standarden
  2. Skapa NFT:er
  3. Tokenmetadata
  4. Marknadsplatser
← Tillbaka till Grunderna i Web3- och DApp-utveckling