Alt hvad du behøver at vide om at skabe NFT'er på Velas
Oprettelse af NFT'er på Velas kan give teams forskellige fordele. Disse inkluderer udnyttelse af smarte kontrakter, der er Ethereum-kompatible, nyder lynhurtig transaktionshastighed, fri for høje gasgebyrer og mere.
Indhold:
Introduktion
NFT er en revolutionerende teknologi, som kan gavne brugerne på forskellige måder. For eksempel giver det brugere bevis for ejerskab over deres digitale aktiver som aldrig før. Desuden kan NFT'er føre til en helt ny skaberøkonomi.
Med alle de frynsegoder, NFT'er bringer, taler alle om at styrke deres projekter med NFT'er. Men ved du, hvordan man udvikler NFT-understøttede smarte kontrakter? Bare rolig, hvis ikke, for denne artikel vil lede dig gennem alle trinene til at skabe NFT smarte kontrakter på Velas Testnet.
Vær opmærksom på, at denne vejledning viser dig, hvordan du opretter en en-af-en NFT i stedet for en samling. Så denne smarte kontrakt vil gøre det muligt for brugere at præge alle deres billeder eller videoer som en NFT.
Hvorfor Velas?
Der er mange blockchain-protokoller tilgængelige derude. Men udviklere står stadig over for problemer, når de bruger dem. For eksempel kæmper Ethereum med høje gasgebyrer og langsom transaktionsbehandling, mens andre blockchains kræver, at udviklere bruger ukendte sprog som Rust.
Med Velas, de fleste af disse bekymringer eksisterer ikke. Velas' løsning arver det bedste DNA fra Solanas teknologi og supplerer det med yderligere funktioner for at understøtte kompatibilitet med EVM. Dette giver brugere og udviklere en ideel platform, der garanterer en fremragende brugeroplevelse med hurtigere transaktionstid. Desuden forenkler det udviklingsprocessen med Solidity-support.
Forudsætninger
For at følge med skal du have Node plus Yarn, pakkeadministratoren. Du skal også have grundlæggende viden om soliditet. Så hvis du ikke er bekendt med det, bedes du udstyre dig med det grundlæggende i Solidity og Hjelm først.
Opsætning
For at konfigurere vores projekt skal du udføre følgende kommando i terminalen.
npx hardhat
Du vil se følgende output, hvis du ikke har Hardhat installeret.
Type y og klik indtaste, og det fortsætter med at installere Hardhat. Men hvis du allerede har Hardhat, vil den ikke vise dig prompten om Hardhat-installation. I stedet vil den stille nogle spørgsmål om, hvordan du vil sætte projektet op.
Vi ønsker et grundlæggende Javascript-projekt i vores nuværende mappe, så bare klik indtaste for alt.
Så skal vi installere vores afhængigheder for projektet. For at installere dem bruger vi følgende kommando.
npm install --save-dev "^2.10.1" "@nomicfoundation/^1.0.1" "@openzeppelin/contracts" "dotenv"
Da vi bruger Yarn, er vi nødt til at installere biblioteker, som hardhat-toolbox bruger.
yarn add --dev @nomicfoundation/hardhat-toolbox @nomicfoundation/hardhat-network-helpers @nomicfoundation/hardhat-chai-matchers @nomiclabs/hardhat-ethers @nomiclabs/hardhat-etherscan chai ethers hardhat-gas-reporter solidity-coverage @typechain/hardhat typechain @typechain/ethers-v5 @ethersproject/abi @ethersproject/providers
Hvis du bruger npm version 7 eller nyere versioner, vil disse biblioteker blive installeret direkte.
Det er værd at bemærke, at vi skal tage et skridt mere, før vi skriver en smart kontrakt. Altså at fjerne evt .sol filer, du ser i kontraktmappen, og opret en ny fil kaldet VELASNFT.sol. Dette er mappen, hvor vi skriver vores kontrakt.
Sådan skriver du en NFT smart kontrakt
Constructor
Til at starte med vil vi lave en barebone smart kontrakt, hvor vi definerer solidity versionen og opretter en tom smart kontrakt krop.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9; contract VELASNFT { }
Vi er nødt til at importere en basis smart kontrakt og en utility smart kontrakt. Det er især de kontrakter, der skal bruges til at bygge vores NFT smart kontrakt. Grundkontrakten er ERC721URIStorage, en ERC721-implementering med lagerbaseret token-URI-styring.
Tællere er en forsyningskontrakt, der vil blive brugt til at tælle antallet af prægede NFT'er.
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
Vores kontrakt vil arve basiskontrakten. Dette vil give brugerne adgang til alle funktionerne i basiskontrakten og vores smarte kontrakter.
contract VELASNFT is ERC721URIStorage { }
Nu kan vi skrive konstruktør til vores kontrakt. Især vil vores konstruktør ikke have nogen argumenter, men du skal videregive navnet og symbolet til ERC721 konstruktøren.
constructor() ERC721("VELASNFT", "VN") {}
I slutningen af dette trin skal din smarte kontrakt se sådan ud.
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol"; contract VELASNFT is ERC721URIStorage { constructor() ERC721("VELASNFT", "VN") {} }
Skrivning af mint-funktionen
Til mint-funktionen skal vi først sætte tælleren op. Indsæt følgende uddrag i kontrakten over konstruktør.
using Counters for Counters.Counter; Counters.Counter private _tokenIds;
vi tildeler alle funktionerne i tællerbiblioteket til tællerstrukturen. Så vil vi oprette en privat variabel kaldet _tokenIds.
Lad os nu begynde at udvikle funktionen. Det kræver et argument: tokenURI,og det vil være url'en til json-filen, som gemmer alle metadata. Vi vil komme mere ind på metadata i de følgende afsnit. Mint-funktionen vil have offentlig synlighed og vil returnere ID'et for den prægede NFT, som vil være af typen uint256.
function mint(string memory tokenURI) public returns (uint256) { }
Inde i funktionen vil vi først få den aktuelle optælling af tælleren.
For at præge en NFT, vil vi bruge _mint funktion som tager adresse og ID som argumenter. Som adresse vil vi bruge adressen på den, der ringer op, og ID vil være det aktuelle antal. Derefter skal vi gemme tokenURI.
For at gøre det, er vi nødt til det _setTokenURI, som vil gemme URI med det tilsvarende ID som en nøgle. I sidste ende vil vi øge tælleren og derefter ID'et for den oprettede NFT.
function mint(string memory tokenURI) public returns (uint256) { uint256 newItemId = _tokenIds.current(); _mint(minter, newItemId); _setTokenURI(newItemId, tokenURI); _tokenIds.increment(); return newItemId; }
Tillykke! Nu kan din smarte kontrakt præge NFT'er! Her er oversigten over hele kontrakten.
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.9; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol"; contract VELASNFT is ERC721URIStorage { using Counters for Counters.Counter; Counters.Counter private _tokenIds; constructor() ERC721("VELASNFT", "VN") {} function mint(string memory tokenURI) public returns (uint256) { uint256 newItemId = _tokenIds.current(); _mint(msg.sender, newItemId); _setTokenURI(newItemId, tokenURI); _tokenIds.increment(); return newItemId; }
}
Sådan implementerer du kontrakten
Vi har bygget vores NFT smart kontrakt. Her kommer det spændende skridt, implementering. Men før vi implementerer kontrakten, skal vi kompilere den og skrive et script, der implementerer kontrakten. For at kompilere kontrakten skal du køre følgende kommando i terminal.
npx hardhat compile
Du vil se følgende output.
Lad os nu gå videre til næste fase og skrive et script til implementering af denne smarte kontrakt. For at gøre det går vi til mappen scripts og åbner filen deploy.js. Fjern derefter alt indholdet og indsæt følgende uddrag i den fil.
const hre = require("hardhat"); async function main () { // We get the contract to deploy const VELASNFT = await hre.ethers.getContractFactory('VELASNFT'); console.log("Deploying NFT contract..."); const velasnft = await VELASNFT.deploy(); await velasnft.deployed(); console.log('NFT contract deployed to:', velasnft.address); } main() .then(() => process.exit(0)) .catch(error => { console.error(error); process.exit(1);
});
Før vi implementerer kontrakten, skal vi tilføje detaljer om Velas testnet til filen hardhat.config.js. Åbn filen og tilføj Velas testnet-konfiguration.
require("@nomicfoundation/hardhat-toolbox");
const dotenv = require('dotenv');
dotenv.config(); /** @type import('hardhat/config').HardhatUserConfig */
module.exports = { solidity: "0.8.9", networks: { velastestnet: { url: `https://evmexplorer.testnet.velas.com/rpc`, accounts: [process.env.PRIVATE_KEY] } }
};
Det er også værd at nævne, at før du implementerer kontrakten, skal du tilføje private nøgler til din tegnebog til .env-filen og have noget testnet VLX-token i tegnebogen. Du kan få testnet-tokens fra link..
Nu hvor vi har alle ting sat op, skal du køre følgende kommando i terminalen.
npx hardhat run scripts/deploy.js --network velastestnet
Hvis kommandoen udføres med succes, vil du se output svarende til som vist nedenfor i din terminal.
Mønter NFT
Efterhånden som den smarte kontrakt er implementeret, kan vi præge NFT'en fra terminalen. For at gøre det skal du først starte hardhat-konsollen ved at bruge følgende kommando.
npx hardhat console --network velastestnet
Udgangen er vist nedenfor.
Derefter vil vi oprette kontraktvariablen kaldet “velasnft”. Det få KontraktAt metoden returnerer kontraktobjektet.
const velasnft = await ethers.getContractAt("VELASNFT", '0x587133187DEC8E1D5a964254B42FF3627a649313')
Se venligst output vist nedenfor.
For at præge NFT'en vil vi bruge mintmetoden velasnft variabel. Vi skal også videregive linket til metadata til metoden. Du kan læse mere om Metadata-standarder HER.
await velasnft.mint("https://metadatastorage.com/velasnft/0")
Tjek outputtet nedenfor.
Nu er det tid til at tjekke ejeren af NFT. Siden vi prægede ved hjælp af ejer af metode, lad os nu videregive indekset for den NFT, vi prægede.
await velasnft.ownerOf(0)
Sådan får vi resultatet af NFT-ejeren.
Konklusion
I artiklen har vi lært, hvordan man skriver en NFT smart kontrakt, der giver brugerne mulighed for at præge NFT'er. Derudover har vi formået at implementere det på Velas testnet. Nu kan du udvikle nye NFT-drevne applikationer og udforske det dynamiske Velas-økosystem.
Du kan også tjekke ud, hvordan man bygger en DAO på Velas via dette link.
Velas ønsker at styrke dem, der stræber efter at fremskynde udviklingen af Web3. Derfor har Velas lanceret et tilskudsprogram på 100 millioner dollars for at udføre denne mission. I mellemtiden har dette program også til formål at støtte udvidelsen af Velas-økosystemet.
Med Velas' bevillingsprogram, kan udviklere bringe deres spændende ideer ud i livet mere effektivt. Hvert projekt har mulighed for at modtage op til $100,000 i finansiering. Derudover vil udvalgte teams have adgang til andre ressourcer til at fremme udviklingen af deres projekter, herunder marketing, tekniske konsulenter og mere.
Tilskudsprogrammet dækker en bred vifte af kategorier, herunder, men ikke begrænset til, DeFi, NFT, blockchain-drevne spil og mere.
Hvis du er interesseret i at fremskynde masseadoptionen af kryptovalutaer og blockchain, ansøg nu for at blive medlem af Velas' stadigt udviklende økosystem.
Find mere om Velas:
Ansvarsfraskrivelse - Dette er en sponsoreret artikel. DappRadar støtter ikke noget indhold eller produkt på denne side. DappRadar sigter mod at give nøjagtige oplysninger, men læsere bør altid lave deres egen research, før de griber ind. Artikler af DappRadar kan ikke betragtes som investeringsrådgivning.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang her.
- Kilde: https://dappradar.com/blog/how-to-create-nft-on-velas
- $ 100 millioner
- 000
- 1
- 10
- 7
- 9
- a
- Om
- over
- accelererende
- adgang
- Konti
- præcis
- Handling
- Desuden
- Yderligere
- adresse
- Vedtagelse
- rådgivning
- Efter
- målsætninger
- Alle
- tillader
- allerede
- altid
- ,
- applikationer
- argument
- argumenter
- artikel
- artikler
- Aktiver
- til rådighed
- vente
- bund
- grundlæggende
- Grundlæggende
- fordi
- før
- være
- jf. nedenstående
- gavner det dig
- fordele
- BEDSTE
- blockchain
- blockchain-drevne
- blockchains
- krop
- bringe
- bygge
- bygget
- kaldet
- Caller
- Kan få
- kategorier
- kontrollere
- samling
- kompatibilitet
- kompatibel
- Bekymringer
- konklusion
- Konfiguration
- betragtes
- Konsol
- konsulenter
- indhold
- kontrakt
- kontrakter
- Tilsvarende
- Counter
- tællere
- Dækker
- skabe
- oprettet
- Oprettelse af
- skaberen
- Skaberøkonomi
- cryptocurrencies
- Nuværende
- DAO
- DappRadar
- data
- Defi
- indsætte
- indsat
- implementering
- implementering
- udruller
- detaljer
- udvikle
- udviklere
- Udvikling
- digital
- Digitale aktiver
- direkte
- dna
- Dont
- dynamisk
- hver
- økonomi
- økosystem
- effektivt
- bemyndige
- bemyndigelse
- muliggøre
- godkende
- helt
- ERC721
- fejl
- ethereum
- alle
- at alt
- eksempel
- fremragende
- spændende
- udføre
- udvidelse
- erfaring
- udforske
- eksport
- Ansigtet
- bekendt
- FAST
- hurtigere
- Funktionalitet
- Gebyrer
- File (Felt)
- Filer
- Fornavn
- følger
- efter
- Foster
- Gratis
- fra
- funktion
- funktioner
- finansiering
- Spil
- GAS
- gas gebyrer
- få
- Giv
- giver
- Go
- indrømme
- tilskud
- garantier
- link.
- Høj
- Hvordan
- How To
- Men
- HTTPS
- ideal
- ideer
- implementering
- importere
- in
- omfatter
- Herunder
- indeks
- oplysninger
- installere
- i stedet
- interesseret
- Introduktion
- investering
- spørgsmål
- IT
- JavaScript
- deltage
- json
- Nøgle
- nøgler
- Kend
- viden
- Sprog
- lanceret
- føre
- lærte
- løftestang
- biblioteker
- Bibliotek
- Livet
- Limited
- LINK
- Se
- ligner
- Main
- lykkedes
- ledelse
- leder
- mange
- Marketing
- Masse
- Masseadoption
- max-bredde
- I mellemtiden
- medium
- Hukommelse
- Metadata
- metode
- million
- mynte
- præges
- Mission
- MIT
- Moduler
- mere
- mest
- bevæge sig
- navn
- Behov
- net
- Ny
- næste
- NFT
- NFT smarte kontrakter
- NFT'er
- node
- især
- nummer
- objekt
- ONE
- åbent
- OpenSea
- Opportunity
- Andet
- oversigt
- egen
- ejer
- ejerskab
- pakke
- frynsegoder
- perron
- plato
- Platon Data Intelligence
- PlatoData
- Vær venlig
- plus
- forudsætninger
- præsentation
- private
- Private nøgler
- behandle
- forarbejdning
- Produkt
- Program
- projekt
- projekter
- bevis
- beskyttet
- protokoller
- give
- offentlige
- Spørgsmål
- rækkevidde
- Læs
- læsere
- modtage
- Fjern
- kræver
- forskning
- Ressourcer
- resultere
- afkast
- afkast
- revolutionerende
- Kør
- Rust
- Gem
- scripts
- sektioner
- valgt
- sæt
- setup
- bør
- Vis
- vist
- lignende
- siden
- langsom
- Smart
- smart kontrakt
- Smarte kontrakter
- So
- SOL
- soliditet
- løsninger
- nogle
- hastighed
- Sponsoreret
- Stage
- standarder
- starte
- Trin
- Steps
- Stadig
- forhandler
- stræbe
- kampe
- Succesfuld
- support
- symbol
- Tag
- tager
- tager
- taler
- hold
- Teknisk
- Teknologier
- terminal
- TestNet
- Grundlæggende
- deres
- Der.
- derfor
- ting
- Gennem
- tid
- til
- token
- Tokens
- transaktion
- transaktionshastighed
- sand
- tutorial
- ukendt
- URL
- brug
- Bruger
- Brugererfaring
- brugere
- nytte
- forskellige
- Velas
- udgave
- via
- Videoer
- synlighed
- W3
- tegnebog
- måder
- Web3
- WebP
- som
- mens
- WHO
- bred
- Bred rækkevidde
- vilje
- værd
- skriver
- skrivning
- Du
- Din
- dig selv
- zephyrnet