Grundlæggende udvikling af Web3- og DApp-programmer · Lektion

Tokenmetadata

tokenURI og JSON

Lektion 3 af 413 trin

Tokenmetadata er en gratis Grundlæggende udvikling af Web3- og DApp-programmer-lektion på CoddyKit. Dette er lektion 3 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 tokenmetadata?

Metadata beskriver, hvad en NFT faktisk repræsenterer: dens navn, beskrivelse, billede og attributter. Mens ejerskab gemmes på kæden, findes de beskrivende data normalt uden for kæden i en JSON-fil.

Forbindelsen mellem dem er tokenURI.

Funktionen tokenURI

Metadataudvidelsen definerer tokenURI(tokenId), som returnerer en URL, der peger på JSON-metadataene for det pågældende token.

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

JSON-skemaet for metadata

Standard-JSON'en har nogle få velkendte felter. Markedspladser som OpenSea læser dem for at vise NFT'en.

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

Attributter og egenskaber

Arrayet attributes oplister egenskaber som objekter med trait_type og value. De bruges til rangering efter sjældenhed og filtrering på markedspladser.

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

URI'er pr. token

En tilgang gemmer en unik URI for hvert token i en mapping. Det er fleksibelt, men bruger mere lagerplads.

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

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

Mønsteret med en basis-URI

En billigere tilgang gemmer én basis-URI og føjer token-id'et til den. Det fungerer, når filer navngives fortløbende som 1.json, 2.json og så videre.

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

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

Hvorfor IPFS?

Det er risikabelt at hoste metadata på en almindelig server: Hvis serveren går ned, eller filen ændres, går NFT'en i stykker. IPFS bruger indholdsadresserede hashes, så en URI som ipfs://Qm... altid peger på præcis det samme uforanderlige indhold.

Indholdsadressering

En IPFS-hash (CID) udledes af filens indhold. Hvis du ændrer én byte, ændres hash'en. Det garanterer, at metadataene ikke kan udskiftes ubemærket, og bevarer NFT'ens integritet.

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

Metadata på kæden

For fuldt decentraliserede NFT'er kan du gemme metadataene helt på kæden ved at returnere en base64-kodet data-URI. Det koster mere gas, men fjerner enhver afhængighed af data uden for kæden.

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

Reveal-mekanik

Mange udgivelser minter med en pladsholder-URI og skifter derefter basis-URI'en efter salget for at afsløre den rigtige kunst. Det forhindrer købere i at snuppe sjældne egenskaber før minting.

<code>bool public revealed = false;

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

Sådan læser markedspladser den

En markedsplads kalder tokenURI(id), henter den returnerede JSON og indlæser derefter image samt gengiver attributes. Det er brugen af standardskemaet, der får din NFT til at blive vist korrekt overalt.

Hurtigt tjek

Test din forståelse af tokenmetadata.

Opsummering

Du har lært om NFT-metadata:

  • tokenURI(id) returnerer et link til tokenets JSON-metadata
  • JSON'en indeholder navn, beskrivelse, billede og attributter
  • Brug URI'er pr. token eller et mønster med basis-URI + id
  • IPFS-indholdsadressering holder metadata uforanderlige; metadata på kæden fjerner afhængigheder helt
  • Reveal-mønstre skjuler kunsten indtil efter minting
Gratis at komme i gang

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 “Tokenmetadata” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende udvikling af Web3- og DApp-programmer, inklusive “Tokenmetadata”, 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 “Tokenmetadata”?

tokenURI og JSON 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 3 af 4.

Hvor lang tid tager lektionen “Tokenmetadata”?

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

  1. ERC-721-standarden
  2. Minting af NFT'er
  3. Tokenmetadata
  4. Markedspladser
← Tilbage til Grundlæggende udvikling af Web3- og DApp-programmer