Membuat Smart Contract NFT (ERC721) Sederhana dengan Alchemy
Membuat Smart Contract NFT (ERC721) Sederhana dengan Alchemy — Weekly Learning 1
Pada artikel kali ini, akan membahas sedikit mengenai ERC721 dengan Alchemy dan library Open Zeppelin.
Pertama buka Contracts Wizard OpenZeppelin , kemudian pilih tab ERC721
Pilih fitur yang ingin digunakan,
Mintable akan membuat fungsi mint yang hanya bisa dipanggil oleh akun atau wallet pemilik smartcontract
Auto increment IDs akan mengenerate id ke NFT kita
Enumerable akan memberikan fungsi mengakses on-chain token seperti totalSupply
URI Storage utuk mengaitkan URI ke NFT
Kode dari smart contract harusnya seperti berikut :
Modifikasi dan Deploy ERC721 contract dengan Remix IDE
Tambahkan max supply
Edit constructor agar ID NFT start dari 1
Edit fungsi safeMint
Fungsi safeMint dapat di panggil oleh siapapun, terdapat 2 require. Require pertama ketika NFT telah mencapai maxSupply maka NFT tidak bisa di mint dan akan menampilkan pesan. Require kedua mengecek atau max limit minting per wallet hanya satu. Sebagai contoh buat fungsi ownerMint tanpa max minting :
Proses modifikasi selesai, selanjutnya setup metmask wallet ke jaringan Goerli. Jika wallet belum mempunyai saldo bisa claim faucet eth goerli powered by Alchemy disini.
Compile dan Deploy Smart Contract NFT pada jaringan Goerli Testnet
Klik tombol compile contract
Pastikan wallet sudah terhubung, klik deploy dan approve transaksi
Smart contract berhasil terdeploy dijaringan eth goerli
Membuat metadata untuk field NFT
Upload metadata di IPFS
Pertama buka filebase.com, buat akun dan login kemudian create bucket
Upload foto sesuai keinginan, setelah upload kemudian copy url IPFS
Buka vscode dan paste kode JSON berikut :
Save sebagai ”metadata.json”, kemudian upload seperti gambar diatas dan copy IPFS linknya.
Mint Goerli NFT
Kembali ke REMIX IDE menu deploy, deployed contracts. Pada smart contract yang telah terdeploy dibagi menjadi dua bagian yaitu method orange dan biru, Method orange merupakan method yang tertulis pada blockchain.
Connect menggunakan wallet lain selain wallet pendeploy contract
Klik safeMint method, dropdown dan paste field : address, ipfs link metadata json
Klik transact dan lanjutkan minting
Visualisasi NFT di Opensea
Buka opensea tesnet login menggunakan metamask wallet dan pergi ke menu profile
Selamat NFT berhasil diminting, sekarang kita coba dengan wallet yang sama apakah max limit berhasil atau tidak
Muncul popup tersebut wallet tidak bisa minting lagi.
My Smart Contract : 0xF3B59e1ce0Ce472daA264894F2372AaAAC25F411
Next week Membuat dApp jual beli kopi, Sekian terimakasih…
Let’s connect together
Twitter : https://twitter.com/ekoyanu99
Github : https://github.com/ekoyanu99