Membuat Smart Contract NFT (ERC721) Sederhana dengan Alchemy

Eko Yanuarso Budi
4 min readOct 1, 2022

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

--

--