Beli Kripto
Pasar
Spot
Futures OILBTC
Tabungan
Pusat Acara
Hub Hadiah
Lainnya
Fest. 0-Biaya
ERC-721: Apa Itu ERC-721?ERC-721 adalah standar token Ethereum untuk membuat dan mengelola non-fungible token, yang umum disebut NFT.Setiap token ERC-721 memiliki ID token unik yang membedakannya dari semua toERC-721: Apa Itu ERC-721?ERC-721 adalah standar token Ethereum untuk membuat dan mengelola non-fungible token, yang umum disebut NFT.Setiap token ERC-721 memiliki ID token unik yang membedakannya dari semua to

ERC-721

2026/10/13 15:31
#Intermediate
Humanity
H$0.0558-5.27%
PX
PX$0.0128-3.03%
TokenFi
TOKEN$0.001986-5.87%
AINFT
NFT$0.0000002371-0.83%
SPACE ID
ID$0.03585-8.61%

Apa Itu ERC-721?

ERC-721 adalah standar token Ethereum untuk membuat dan mengelola non-fungible token, yang umum disebut NFT.

Setiap token ERC-721 memiliki ID token unik yang membedakannya dari semua token lain yang dikelola oleh smart contract yang sama.

Spesifikasi ERC-721 resmi menetapkan aturan standar untuk melacak kepemilikan, mentransfer token, dan memberikan izin kepada alamat lain untuk mengelola NFT.

ERC-721 diklasifikasikan sebagai standar Ethereum Request for Comments berstatus Final.

Standar ini dibuat karena standar token fungibel tidak dapat merepresentasikan aset secara akurat jika setiap unitnya harus diidentifikasi dan dilacak secara terpisah.

Token ERC-721 dapat merepresentasikan koleksi digital, item game, kredensial keanggotaan, properti virtual, tiket acara, posisi keuangan, aset seperti domain, atau catatan yang terhubung dengan barang fisik.

Standar ini menetapkan perilaku kepemilikan dan transfer di blockchain, tetapi tidak secara otomatis menetapkan hak cipta, kepemilikan legal, keaslian, nilai finansial, atau hak atas aset eksternal.

Apa Arti ERC?

ERC adalah singkatan dari Ethereum Request for Comments.

ERC menjelaskan standar teknis yang dapat diikuti aplikasi dan smart contract untuk meningkatkan interoperabilitas di seluruh ekosistem Ethereum.

ERC-721 adalah nomor identifikasi yang ditetapkan untuk standar non-fungible token.

Nomor tersebut tidak menjelaskan suplai, harga, alamat blockchain, atau tanggal peluncuran token.

Kontrak yang menerapkan ERC-721 dapat menambahkan ekstensi opsional dan fungsi khusus selama perilaku wajibnya tetap kompatibel dengan standar.

Mengapa ERC-721 Dibuat?

Aset fungibel dapat dipertukarkan karena satu unit biasanya memiliki fungsi yang sama dengan unit lain dari aset yang sama.

Aset non-fungibel harus dilacak secara terpisah karena setiap unit dapat memiliki karakteristik, riwayat, kelangkaan, hak, atau nilai yang berbeda.

ERC-721 memberikan metode umum bagi wallet dan aplikasi untuk mengidentifikasi pemilik setiap token unik.

Standar ini juga menyeragamkan transfer, persetujuan, izin operator, dan log peristiwa terkait kepemilikan.

Tanpa standar bersama, setiap kontrak NFT dapat memerlukan integrasi yang berbeda.

Fungsi bersama memungkinkan wallet serbaguna, blockchain explorer, pengindeks, game, protokol pinjaman, dan aplikasi kripto lainnya berinteraksi dengan banyak koleksi NFT.

Cara Kerja ERC-721

Smart contract ERC-721 menyimpan atau menghitung pemilik yang terkait dengan setiap ID token yang valid.

Kontrak juga melacak jumlah NFT yang dimiliki setiap alamat dalam koleksi tersebut.

Saat transfer yang diotorisasi terjadi, kontrak menghapus kepemilikan dari pengirim dan menetapkan ID token kepada penerima.

Kontrak mengeluarkan peristiwa standar

Transfer
agar aplikasi eksternal dapat mengetahui perubahan tersebut.

Pemilik dapat menyetujui satu alamat untuk mentransfer NFT tertentu atau mengotorisasi operator untuk mengelola semua NFT yang dimiliki pemilik dalam kontrak tersebut.

Semua transfer dan persetujuan harus mengikuti aturan otorisasi yang tercantum dalam smart contract yang telah di-deploy.

Node Ethereum mengeksekusi transaksi dan memverifikasi bahwa status kepemilikan yang dihasilkan sesuai dengan aturan kontrak dan protokol.

Apa Itu ID Token?

ID token adalah bilangan bulat tanpa tanda yang mengidentifikasi satu NFT secara unik di dalam kontrak ERC-721.

ID token yang sama dapat ada di beberapa kontrak berbeda tanpa merepresentasikan aset yang sama.

Karena itu, NFT diidentifikasi secara bersamaan melalui jaringan blockchain, alamat kontrak, dan ID token.

Sebagai contoh, ID token 50 dalam satu kontrak tidak berkaitan dengan ID token 50 di kontrak lain.

ID token tidak harus dimulai dari nol atau bertambah dalam urutan sederhana.

Koleksi dapat menggunakan ID berurutan, ID yang ditetapkan secara acak, ID yang dikodekan, atau sistem lain yang didukung kontraknya.

Aplikasi sebaiknya memeriksa kontrak, bukan berasumsi bahwa setiap angka dalam suatu rentang mewakili NFT yang ada.

Apa yang Membuat ERC-721 Bersifat Non-Fungibel?

Setiap token ERC-721 dilacak sebagai objek blockchain tersendiri.

Dua NFT dari koleksi yang sama dapat memiliki metadata, riwayat, properti, kelangkaan, dan nilai pasar yang berbeda.

Kepemilikan atas satu ID token tidak memberikan hak kepemilikan atas ID token lainnya.

Token ERC-721 standar ditransfer sebagai satu token utuh, bukan sebagai jumlah desimal.

Kepemilikan ekonomi fraksional memerlukan smart contract atau struktur token terpisah di luar standar inti ERC-721.

Menyebut dua NFT sebagai non-fungibel tidak menjamin bahwa konten visualnya berbeda karena ID token yang berbeda dapat merujuk ke metadata yang serupa atau identik.

Fungsi Inti ERC-721

Standar inti mencakup fungsi untuk memeriksa kepemilikan, mentransfer NFT, dan mengelola izin transfer.

Fungsi wajibnya mencakup

balanceOf
,
ownerOf
,
transferFrom
, dua versi
safeTransferFrom
,
approve
,
getApproved
,
setApprovalForAll
, dan
isApprovedForAll
.

ERC-721 juga mengandalkan deteksi antarmuka ERC-165.

Standar ini tidak mewajibkan fungsi mint publik, fungsi burn publik, mekanisme penjualan, sistem royalti, suplai maksimum, atau kebijakan metadata yang tetap.

Fitur-fitur tersebut ditentukan oleh implementasi tertentu atau ekstensi terpisah.

Fungsi balanceOf

Fungsi

balanceOf
mengembalikan jumlah NFT yang dimiliki suatu alamat dalam satu kontrak ERC-721.

Jika sebuah alamat memiliki ID token 8, 19, dan 250 dari satu koleksi, saldonya adalah tiga.

Nilai yang dikembalikan tidak menunjukkan ID token mana yang dimiliki alamat tersebut.

Fungsi ini juga tidak melaporkan nilai pasar NFT tersebut.

Standar mewajibkan kueri saldo untuk zero address gagal.

Aplikasi yang memerlukan daftar token lengkap dapat menggunakan pengindeksan peristiwa atau ekstensi enumerasi opsional.

Fungsi ownerOf

Fungsi

ownerOf
mengembalikan alamat yang saat ini tercatat sebagai pemilik ID token tertentu.

Kueri untuk token yang tidak ada atau tidak valid harus gagal.

Alamat pemilik token yang valid tidak boleh berupa zero address.

Alamat yang dikembalikan oleh

ownerOf
memiliki hak kepemilikan dan transfer on-chain inti yang ditetapkan kontrak.

Catatan blockchain ini tidak secara otomatis membuktikan kepemilikan hak cipta, merek dagang, properti fisik, atau manfaat kontraktual.

Hak eksternal harus ditetapkan melalui ketentuan hukum proyek dan hukum yang berlaku.

Fungsi transferFrom

Fungsi

transferFrom
memindahkan NFT dari pemilik saat ini ke alamat lain.

Pemanggil harus merupakan pemilik, alamat yang disetujui untuk token tersebut, atau operator yang diotorisasi oleh pemilik.

Alamat pengirim yang diberikan harus sesuai dengan catatan pemilik terkini dalam kontrak.

Penerima tidak boleh berupa zero address.

Fungsi ini tidak memeriksa apakah smart contract penerima mengetahui cara mengelola NFT.

NFT yang ditransfer ke kontrak yang tidak kompatibel melalui

transferFrom
dapat menjadi tidak dapat diakses.

Transfer aman umumnya lebih disarankan jika penerimanya adalah kontrak.

Fungsi safeTransferFrom

ERC-721 menyediakan dua versi

safeTransferFrom
.

Satu versi menerima alamat pengirim, penerima, dan ID token.

Versi lainnya juga menerima kolom bytes yang berisi data khusus aplikasi.

Kedua versi melakukan pemeriksaan kepemilikan dan otorisasi standar.

Jika penerimanya adalah smart contract, kontrak NFT akan memanggil fungsi

onERC721Received
milik penerima.

Penerima harus mengembalikan selector yang diwajibkan; jika tidak, seluruh transfer akan dibatalkan.

Pemeriksaan ini mengurangi kemungkinan NFT terkirim secara tidak sengaja ke kontrak yang tidak dapat menerimanya dengan benar.

Pemeriksaan ini tidak menjamin bahwa penerima aman atau NFT dapat ditarik kembali nanti.

Apa Itu Penerima ERC-721?

Penerima ERC-721 adalah smart contract yang menerapkan

onERC721Received
.

Callback tersebut menerima informasi tentang operator, pemilik sebelumnya, ID token, dan data tambahan opsional.

Penerima yang kompatibel mengembalikan selector yang diharapkan, biasanya dinyatakan sebagai

0x150b7a02
.

Nilai pengembalian yang salah atau callback yang dibatalkan menyebabkan transfer aman gagal.

Dokumentasi implementasi ERC-721 saat ini mencakup antarmuka penerima dan utilitas penerima dasar untuk kontrak yang perlu menerima NFT.

Penerima sebaiknya memverifikasi kontrak NFT yang memicu callback sebelum mencatat deposit atau memberikan manfaat.

Persetujuan ERC-721

Persetujuan ERC-721 memungkinkan pemilik NFT mendelegasikan wewenang transfer tanpa langsung memindahkan kepemilikan.

Persetujuan khusus token berlaku untuk satu ID token.

Persetujuan operator berlaku untuk semua NFT yang dimiliki satu alamat dalam kontrak tersebut.

Persetujuan dicatat on-chain dan dapat digunakan tanpa tanda tangan tambahan dari pemilik selama masih berlaku.

Pengguna sebaiknya memperlakukan permintaan persetujuan NFT sebagai izin finansial yang sensitif.

Menyetujui alamat yang tidak tepercaya dapat memungkinkan pihak tersebut mentransfer NFT bernilai tinggi.

Fungsi approve

Fungsi

approve
mengotorisasi satu alamat untuk mentransfer satu ID token tertentu.

Pemilik atau operator yang disetujui untuk seluruh koleksi biasanya dapat memberikan izin ini.

Alamat yang disetujui tidak menjadi pemilik NFT.

Persetujuan khusus token dihapus saat NFT ditransfer.

Persetujuan juga dapat dihapus dengan menetapkan alamat yang disetujui ke zero address.

Pemilik sebaiknya memverifikasi alamat yang disetujui dan ID token yang dimaksud sebelum menandatangani transaksi.

Fungsi getApproved

Fungsi

getApproved
mengembalikan alamat yang memiliki persetujuan khusus token untuk NFT yang valid.

Fungsi ini biasanya mengembalikan zero address jika tidak ada persetujuan khusus token.

Hasilnya tidak mencakup izin operator untuk seluruh koleksi.

Aplikasi yang memeriksa apakah suatu akun dapat mentransfer NFT juga harus mempertimbangkan

isApprovedForAll
.

Fungsi setApprovalForAll

Fungsi

setApprovalForAll
memberikan atau mencabut wewenang operator untuk seluruh koleksi.

Operator yang disetujui dapat mentransfer setiap NFT yang saat ini dimiliki pemilik dalam kontrak tersebut.

Persetujuan ini juga dapat berlaku untuk NFT dari koleksi yang sama yang diterima pemilik di kemudian hari.

Izin ini umum digunakan saat aplikasi perlu mengelola beberapa NFT.

Cakupannya jauh lebih luas daripada persetujuan untuk satu ID token.

Operator berbahaya dapat mengambil semua NFT yang tercakup selama persetujuan masih aktif.

Memutuskan koneksi wallet dari situs web tidak mencabut persetujuan yang tercatat di blockchain.

Fungsi isApprovedForAll

Fungsi

isApprovedForAll
menunjukkan apakah operator diizinkan mengelola NFT milik seorang pemilik dalam satu koleksi.

Fungsi ini mengembalikan

true
atau
false
.

Persetujuan dalam satu kontrak ERC-721 tidak memberikan wewenang atas NFT dalam kontrak lain.

Pengguna sebaiknya meninjau izin operator aktif dan mencabut akses yang tidak lagi diperlukan.

Peristiwa ERC-721

ERC-721 menetapkan peristiwa

Transfer
,
Approval
, dan
ApprovalForAll
.

Log peristiwa ini membantu wallet, blockchain explorer, pengindeks data, dan aplikasi melacak aktivitas NFT.

Peristiwa disimpan dalam tanda terima transaksi setelah smart contract berhasil dieksekusi.

Peristiwa harus ditafsirkan sesuai konteks kontrak yang mengeluarkannya.

Kontrak berbahaya dapat mengeluarkan nama peristiwa yang familiar tanpa merepresentasikan koleksi NFT yang sah.

Peristiwa Transfer

Peristiwa

Transfer
mencatat pemilik sebelumnya, pemilik baru, dan ID token.

Transfer NFT biasa menggunakan alamat pengirim dan penerima yang bukan zero address.

Minting umumnya direpresentasikan sebagai transfer dari zero address kepada pemilik pertama.

Burning umumnya direpresentasikan sebagai transfer dari pemilik ke zero address.

Adanya peristiwa mint tidak membuktikan bahwa suplai terbatas atau token tambahan tidak dapat dibuat.

Aplikasi dapat merekonstruksi sebagian besar riwayat kepemilikan NFT dengan mengindeks peristiwa transfer.

Peristiwa Approval dan ApprovalForAll

Peristiwa

Approval
mencatat izin untuk satu NFT tertentu.

Peristiwa

ApprovalForAll
mencatat apakah wewenang operator untuk seluruh koleksi diaktifkan atau dinonaktifkan.

Peristiwa ini tidak menunjukkan perubahan kepemilikan NFT.

Pemantauan persetujuan dapat membantu pengguna dan sistem keamanan mendeteksi izin yang tidak terduga.

Mencabut persetujuan tidak membatalkan transfer yang telah dilakukan saat persetujuan tersebut aktif.

Deteksi Antarmuka ERC-165

Setiap kontrak ERC-721 yang patuh harus mendukung deteksi antarmuka ERC-165.

Standar ERC-165 menetapkan fungsi

supportsInterface
.

ID antarmuka inti ERC-721 adalah

0x80ac58cd
.

Kontrak yang patuh seharusnya mengembalikan

true
ketika ditanya apakah kontrak mendukung pengenal ini.

Ekstensi opsional memiliki ID antarmuka tersendiri.

Deteksi antarmuka membantu aplikasi menghindari pemanggilan fungsi yang tidak didukung.

Klaim dukungan oleh suatu kontrak tidak membuktikan bahwa implementasinya benar atau aman.

Metadata ERC-721

ERC-721 menyertakan ekstensi metadata opsional.

Ekstensi ini menambahkan fungsi

name
,
symbol
, dan
tokenURI
.

ID antarmuka ERC-165-nya adalah

0x5b5e139f
.

Nama dan simbol koleksi dipilih oleh pengembang kontrak dan tidak dijamin unik.

Nama atau simbol yang disalin tidak menjadikan suatu kontrak bagian dari koleksi asli.

Alamat kontrak tetap menjadi pengenal teknis utama.

Cara Kerja tokenURI

Fungsi

tokenURI
mengembalikan URI yang terkait dengan ID token yang valid.

URI tersebut biasanya mengarah ke dokumen metadata JSON yang berisi nama tampilan, deskripsi, gambar, animasi, dan atribut.

Metadata dapat disimpan di server tradisional, jaringan konten terdesentralisasi, atau langsung on-chain.

Standar ERC-721 mengizinkan metadata berubah.

Proyek dapat memperbarui URI, mengubah file yang dirujuk, atau mengganti konten yang disajikan di lokasi eksternal jika implementasi dan sistem penyimpanannya memungkinkan.

Pengguna sebaiknya memeriksa apakah metadata dapat diubah, disimpan secara permanen, atau dikendalikan administrator.

Memiliki NFT tidak secara otomatis mempertahankan gambar eksternal jika layanan hosting berhenti beroperasi.

Peristiwa Pembaruan Metadata

ERC-721 sendiri tidak menyediakan peristiwa standar untuk setiap perubahan metadata.

Ekstensi opsional pembaruan metadata ERC-4906 menambahkan peristiwa

MetadataUpdate
dan
BatchMetadataUpdate
.

Peristiwa ini memberi tahu aplikasi bahwa metadata terbaru untuk satu token atau rentang ID token perlu diambil.

ID antarmuka ERC-4906 adalah

0x49064906
.

Peristiwa pembaruan metadata meningkatkan sinkronisasi, tetapi tidak menjamin metadata baru akurat atau permanen.

Enumerasi ERC-721

Ekstensi enumerasi opsional membuat suplai NFT dan daftar kepemilikan dapat ditemukan melalui fungsi on-chain.

ID antarmukanya adalah

0x780e9d63
.

Ekstensi ini menambahkan

totalSupply
,
tokenByIndex
, dan
tokenOfOwnerByIndex
.

Fungsi

totalSupply
melaporkan jumlah NFT valid yang saat ini dilacak oleh kontrak.

Fungsi indeks memungkinkan pemanggil mengambil ID token dari koleksi atau kepemilikan satu pemilik.

Enumerasi menambah penulisan storage dan biaya gas.

Panduan implementasi terkini mencatat bahwa banyak kontrak tidak menyertakannya karena beban tambahan tersebut.

Aplikasi off-chain dapat merekonstruksi kepemilikan melalui peristiwa

Transfer
yang diindeks.

Minting Token ERC-721

Minting membuat ID token valid yang baru dan menetapkan pemilik pertamanya.

Standar inti ERC-721 tidak menetapkan siapa yang dapat melakukan mint atau bagaimana mint harus diminta.

Koleksi dapat mengizinkan mint publik, membatasi mint kepada peran yang diotorisasi, mewajibkan pembayaran, menggunakan allowlist, atau membuat semua NFT saat deployment.

Mint biasanya mengeluarkan peristiwa

Transfer
dari zero address.

Safe minting memeriksa apakah smart contract penerima mendukung antarmuka penerima ERC-721.

Pengguna sebaiknya memeriksa suplai maksimum, wewenang minting, izin upgrade, dan kontrol administrator sebelum mengandalkan klaim kelangkaan.

Burning Token ERC-721

Burning menghapus NFT dari catatan kepemilikan yang valid.

Antarmuka inti ERC-721 tidak mewajibkan fungsi burn publik.

Koleksi dapat mengizinkan pemilik, operator yang disetujui, administrator, atau logika protokol untuk melakukan burn token.

Burn biasanya mengeluarkan peristiwa

Transfer
ke zero address.

Burning NFT tidak selalu menghapus metadata off-chain atau menghapus riwayat blockchain sebelumnya.

Pengguna sebaiknya memastikan apakah burn bersifat permanen dan apakah token lain dengan ID yang sama dapat dibuat kembali menurut implementasinya.

Royalti ERC-721

Royalti kreator bukan bagian dari standar inti ERC-721.

Standar royalti NFT ERC-2981 opsional menyediakan metode untuk melaporkan penerima royalti dan jumlah yang disarankan berdasarkan harga jual.

ERC-2981 menyampaikan informasi royalti, tetapi tidak mewajibkan setiap transfer atau aplikasi membayarnya.

Koleksi dapat menetapkan pengaturan royalti default atau khusus token jika implementasinya mendukung.

Penerima dan tarif royalti dapat diubah jika kontrak memberikan wewenang tersebut kepada administrator.

Pengguna sebaiknya tidak berasumsi bahwa setiap transfer ERC-721 mencakup pembayaran kreator yang dapat ditegakkan.

ERC-721 vs. ERC-20

ERC-20 dirancang untuk saldo token fungibel, sedangkan ERC-721 dirancang untuk NFT yang diidentifikasi secara individual.

Akun ERC-20 dapat menyimpan jumlah token yang dapat dibagi.

Akun ERC-721 memiliki ID token yang berbeda-beda.

Fungsi

balanceOf
ERC-721 menghitung NFT, bukan melaporkan jumlah yang melekat pada satu ID token.

ERC-721 tidak menggunakan kolom desimal standar karena setiap NFT biasanya ditransfer sebagai satu token utuh.

Kedua standar ini juga menggunakan model persetujuan dan transfer yang berbeda.

ERC-721 vs. ERC-1155

ERC-721 merepresentasikan ID token yang dimiliki secara individual melalui satu kontrak koleksi NFT.

Standar multi-token ERC-1155 memungkinkan satu kontrak mengelola banyak ID token dengan saldo jumlah yang terpisah.

ID token ERC-1155 dapat merepresentasikan aset fungibel, semi-fungibel, atau unik.

Satu alamat dapat memiliki beberapa unit dari satu ID token ERC-1155.

Satu ID token ERC-721 yang valid memiliki satu pemilik dalam model standar.

ERC-1155 juga mendukung transfer batch standar, sedangkan transfer ERC-721 biasanya memproses satu NFT setiap kali.

Standar yang sesuai bergantung pada kebutuhan kepemilikan dan inventaris proyek.

Kasus Penggunaan ERC-721

Koleksi seni digital dapat menggunakan token ERC-721 untuk mencatat kepemilikan karya yang diidentifikasi secara individual.

Game blockchain dapat menggunakan NFT untuk karakter, tanah, perlengkapan, atau item unik lainnya.

Sistem keanggotaan dapat menggunakan NFT untuk merepresentasikan hak akses atau status komunitas.

Aplikasi keuangan dapat melakukan tokenisasi posisi utang unik, polis asuransi, posisi likuiditas, atau klaim.

Sistem acara dapat menerbitkan tiket dengan identitas unik dan aturan transfer yang dikendalikan.

Proyek dapat menghubungkan NFT dengan produk fisik, meskipun smart contract tidak dapat memverifikasi secara mandiri kepemilikan atau hak legal atas barang fisik tersebut.

Token ERC-721 juga dapat merepresentasikan kredensial, tetapi data pribadi sensitif sebaiknya tidak disimpan secara terbuka di blockchain publik.

Kepemilikan NFT vs. Hak Cipta

Memiliki token ERC-721 berarti kontrak blockchain mengakui alamat pemilik untuk ID token tersebut.

Hal itu tidak secara otomatis mengalihkan hak cipta atas karya seni atau media yang terkait.

Hak cipta dan hak penggunaan komersial bergantung pada lisensi kreator, perjanjian penjualan, dan hukum yang berlaku.

Proyek dapat memberikan hak komersial luas, penggunaan pribadi terbatas, atau tidak memberikan hak kekayaan intelektual tambahan.

Metadata juga dapat merujuk pada konten yang penggunaannya tidak diizinkan kepada penerbit token.

Pembeli sebaiknya meninjau ketentuan hukum proyek, bukan berasumsi bahwa kepemilikan token memberikan semua hak yang mungkin.

Risiko Persetujuan ERC-721

Permintaan persetujuan berbahaya merupakan risiko keamanan utama bagi pemilik NFT.

Aplikasi phishing dapat meminta

setApprovalForAll
sambil menjelaskan transaksi tersebut sebagai verifikasi akun atau konfirmasi akses.

Setelah persetujuan diberikan, operator dapat mentransfer NFT pemilik dari koleksi tersebut tanpa tanda tangan tambahan.

Persetujuan khusus token juga dapat mengekspos satu NFT bernilai tinggi.

Pengguna sebaiknya memeriksa alamat kontrak, alamat operator, jenis izin, dan jaringan yang dipilih sebelum menandatangani.

Izin yang telah diberikan sebelumnya sebaiknya ditinjau setelah berinteraksi dengan aplikasi yang tidak dikenal.

Transfer Aman dan Risiko Reentrancy

Transfer NFT aman memanggil kode eksternal saat penerimanya adalah smart contract.

Penerima dapat memanggil kembali aplikasi awal sebelum operasi pertama selesai sepenuhnya.

Perilaku ini dapat menimbulkan kerentanan reentrancy pada kontrak minting, penjualan, pinjaman, staking, escrow, atau penarikan.

Panduan keamanan Solidity resmi menyarankan agar pemeriksaan dan perubahan status penting diselesaikan sebelum interaksi eksternal jika logika yang dimaksud memungkinkan.

Developer juga sebaiknya mempertimbangkan reentrancy lintas fungsi karena penerima berbahaya dapat memanggil fungsi lain yang terbuka.

Callback penerima sebaiknya diuji dengan kontrak berbahaya, bukan dianggap sebagai notifikasi sederhana.

Risiko Keamanan Metadata

Konten yang terlihat pada NFT dapat bergantung pada data di luar blockchain.

Server eksternal dapat tidak tersedia, mengubah respons, atau menghapus file.

URI yang dapat diubah dapat mengarah ke konten berbeda setelah pembelian.

Metadata dapat berisi deskripsi menyesatkan, karya seni salinan, tautan eksternal tersembunyi, atau format file yang tidak aman.

Penyimpanan terdesentralisasi dapat meningkatkan persistensi, tetapi ketersediaan konten dan pengenal yang benar tetap diperlukan.

Metadata yang sepenuhnya on-chain mengurangi ketergantungan pada hosting eksternal, tetapi dapat meningkatkan biaya deployment dan pembaruan.

Risiko Keaslian Kontrak

Siapa pun dapat men-deploy kontrak ERC-721 dengan nama, simbol, gambar, atau ID token yang familiar.

Kompatibilitas antarmuka tidak membuktikan keaslian koleksi.

Pengguna sebaiknya memverifikasi jaringan blockchain dan alamat kontrak lengkap melalui sumber proyek yang tepercaya.

Publikasi source code terverifikasi menunjukkan kesesuaian kode, tetapi tidak menjamin perilaku bisnis yang jujur atau desain ekonomi yang aman.

Riwayat token, pernyataan kreator, izin administrator, dan kontrol metadata juga perlu ditinjau.

Kontrak ERC-721 yang Dapat Di-upgrade

Kontrak ERC-721 dapat menggunakan proxy yang memungkinkan logikanya diubah setelah deployment.

Upgrade dapat memperbaiki bug atau menambahkan fitur.

Upgrade juga dapat mengubah perilaku minting, transfer, persetujuan, metadata, royalti, jeda, atau burn.

Wewenang upgrade yang disusupi dapat memasang logika berbahaya yang memengaruhi kepemilikan NFT.

Pengguna sebaiknya mencari tahu siapa yang mengendalikan upgrade, berapa banyak tanda tangan yang diperlukan, dan apakah ada jeda waktu.

Koleksi yang disebut terdesentralisasi masih dapat memiliki peran administrator dengan wewenang besar.

Cara Developer Menerapkan ERC-721

Developer sebaiknya menggunakan implementasi yang telah ditinjau dan aktif dipelihara, kecuali desain khusus memang diperlukan.

Panduan pengembangan ERC-721 saat ini menjelaskan implementasi inti dan ekstensi opsional untuk metadata, enumerasi, burning, jeda, royalti, voting, dan penggunaan lainnya.

Akses minting harus sesuai dengan aturan suplai yang didokumentasikan untuk koleksi.

Transfer dan persetujuan harus menolak pemanggil yang tidak berwenang serta alamat yang tidak valid.

Safe minting sebaiknya digunakan jika token dapat diterbitkan langsung ke smart contract.

Developer sebaiknya menguji penerima berbahaya, reentrancy, ID token tidak valid, penghapusan persetujuan, izin operator, burn, dan deteksi antarmuka.

Fungsi administratif sebaiknya menggunakan kontrol akses yang jelas dan mengeluarkan peristiwa yang informatif.

Cara Mengevaluasi NFT ERC-721

Langkah pertama adalah memverifikasi jaringan, alamat kontrak, dan ID token.

Langkah kedua adalah memastikan kontrak mendukung antarmuka inti ERC-721.

Langkah ketiga adalah memeriksa pemilik saat ini dan riwayat transfer.

Langkah keempat adalah meninjau persetujuan khusus token dan persetujuan untuk seluruh koleksi.

Langkah kelima adalah memeriksa cara metadata dan media terkait disimpan.

Langkah keenam adalah mengidentifikasi wewenang minting, burning, jeda, pembekuan, dan upgrade.

Langkah ketujuh adalah menentukan apakah klaim suplai dan kelangkaan dapat diverifikasi on-chain.

Langkah kedelapan adalah meninjau audit dan source code tanpa menganggapnya sebagai jaminan.

Langkah kesembilan adalah memahami hak legal atau komersial yang menyertai NFT.

Langkah kesepuluh adalah menguji kontrak yang tidak dikenal dengan transaksi bernilai rendah sebelum mempertaruhkan aset bernilai tinggi.

Contoh Transfer ERC-721

Misalkan Alice memiliki ID token 101 dalam koleksi ERC-721.

Fungsi

ownerOf
kontrak mengembalikan alamat Alice.

Alice memutuskan mengirim NFT tersebut ke kontrak yang dirancang untuk menyimpan NFT dengan aman.

Wallet-nya memanggil

safeTransferFrom
dengan alamat Alice, kontrak penerima, dan ID token 101.

Kontrak ERC-721 memeriksa apakah Alice memiliki NFT dan berwenang mentransfernya.

Kontrak memperbarui catatan kepemilikannya dan memanggil

onERC721Received
pada penerima.

Penerima memverifikasi koleksi, operator, pemilik sebelumnya, dan ID token.

Jika selector yang benar dikembalikan, transfer selesai dan kontrak NFT mengeluarkan peristiwa

Transfer
.

Jika penerima menolak NFT, seluruh transaksi dibatalkan dan Alice tetap menjadi pemiliknya.

Kesalahan Umum ERC-721

Salah satu kesalahan umum adalah menganggap nama koleksi dapat mengidentifikasi NFT secara unik.

Kesalahan lain adalah memberikan akses operator untuk seluruh koleksi tanpa memeriksa alamat operator.

Kesalahan ketiga adalah percaya bahwa memutus koneksi wallet akan menghapus persetujuan on-chain.

Kesalahan keempat adalah menggunakan

transferFrom
untuk mengirim NFT ke kontrak yang tidak dikenal.

Kesalahan kelima adalah menganggap penerimaan aman menjamin penarikan di kemudian hari.

Kesalahan keenam adalah menganggap metadata permanen tanpa memeriksa metode penyimpanannya.

Kesalahan ketujuh adalah menganggap ERC-721 secara otomatis menegakkan pembayaran royalti.

Kesalahan kedelapan adalah menganggap setiap koleksi mendukung enumerasi on-chain.

Kesalahan kesembilan adalah menyamakan kepemilikan NFT dengan hak cipta atau kepemilikan aset fisik.

Kesalahan kesepuluh adalah menganggap kepatuhan terhadap standar membuktikan NFT autentik, bernilai, atau aman.

FAQ

Apa arti ERC-721?

ERC-721 adalah standar Ethereum yang menetapkan aturan kepemilikan, transfer, persetujuan, dan antarmuka untuk non-fungible token.

Apakah ERC-721 sama dengan NFT?

ERC-721 adalah standar teknis NFT, sedangkan NFT merupakan istilah lebih luas yang dapat mencakup token yang dibuat berdasarkan standar lain.

Apakah ERC-721 bersifat fungibel?

Tidak. Setiap ID token ERC-721 yang valid dilacak secara individual dan dapat memiliki properti serta nilai berbeda.

Apa ID antarmuka ERC-721?

ID antarmuka inti ERC-721 adalah

0x80ac58cd
.

Apa yang mengidentifikasi NFT ERC-721?

NFT diidentifikasi secara bersamaan melalui jaringan blockchain, alamat smart contract, dan ID token.

Apa yang dikembalikan balanceOf?

Fungsi tersebut mengembalikan jumlah NFT yang dimiliki suatu alamat dalam satu kontrak ERC-721.

Apa yang dikembalikan ownerOf?

Fungsi tersebut mengembalikan alamat pemilik saat ini untuk ID token yang valid.

Apa perbedaan transferFrom dan safeTransferFrom?

safeTransferFrom
memeriksa apakah kontrak penerima mendukung callback penerima ERC-721, sedangkan
transferFrom
tidak.

Bisakah NFT ERC-721 dikirim ke smart contract?

Bisa, tetapi transfer aman biasanya sebaiknya digunakan agar penerima harus mengonfirmasi bahwa mereka dapat menerima NFT.

Apa fungsi approve?

Fungsi ini memberikan izin kepada satu alamat untuk mentransfer satu NFT tertentu.

Apa fungsi setApprovalForAll?

Fungsi ini mengotorisasi operator untuk mengelola semua NFT yang dimiliki pemilik dalam kontrak ERC-721 tersebut.

Apakah persetujuan operator kedaluwarsa otomatis?

Tidak. Persetujuan operator standar tetap aktif sampai pemilik mencabutnya atau logika kontrak khusus mengubah dampaknya.

Apakah transfer NFT menghapus persetujuan khusus token?

Ya, persetujuan khusus token dihapus saat NFT ditransfer.

Apakah metadata wajib untuk ERC-721?

Tidak. Antarmuka metadata bersifat opsional, meskipun sebagian besar koleksi NFT menerapkannya.

Bisakah metadata ERC-721 berubah?

Bisa. Metadata dapat berubah kecuali kontrak dan sistem penyimpanan memberikan jaminan imutabilitas yang dapat diverifikasi.

Apakah setiap kontrak ERC-721 memiliki totalSupply?

Tidak.

totalSupply
merupakan bagian dari ekstensi enumerasi opsional.

Apakah ERC-721 menetapkan aturan minting?

Standar ini mengenali minting melalui peristiwa kepemilikan, tetapi tidak mewajibkan fungsi mint publik atau kebijakan suplai tertentu.

Apakah ERC-721 menetapkan aturan burning?

Tidak. Fungsi burn bersifat opsional dan bergantung pada implementasi masing-masing.

Apakah ERC-721 menegakkan royalti?

Tidak. Royalti memerlukan logika atau standar terpisah, dan informasi royalti tidak secara otomatis mewajibkan pembayaran.

Apakah kepemilikan token ERC-721 memberikan hak cipta?

Tidak. Hak kekayaan intelektual bergantung pada lisensi dan perjanjian hukum yang berlaku.

Bisakah kontrak ERC-721 di-upgrade?

Sebagian kontrak dapat di-upgrade melalui sistem proxy, sementara yang lain tidak dapat diubah setelah deployment.

Bisakah NFT ERC-721 difraksionalkan?

Kepemilikan fraksional memerlukan kontrak atau mekanisme token terpisah karena token inti ERC-721 dimiliki sebagai satu unit utuh.

Bisakah persetujuan ERC-721 digunakan untuk mencuri NFT?

Bisa. Alamat berbahaya yang disetujui dapat mentransfer NFT yang tercakup dalam izinnya.

Apakah kepatuhan ERC-721 membuktikan keaslian?

Tidak. Siapa pun dapat men-deploy kontrak yang kompatibel, sehingga alamat koleksi dan penerbitnya harus diverifikasi secara independen.

Apa manfaat utama ERC-721?

Manfaat utamanya adalah perilaku kepemilikan dan transfer yang terstandar sehingga banyak aplikasi kripto dapat berinteraksi dengan aset tokenisasi yang unik.

Kesimpulan

ERC-721 adalah standar utama Ethereum untuk merepresentasikan non-fungible token yang diidentifikasi secara individual.

Standar ini menetapkan kueri kepemilikan, transfer, persetujuan, izin operator, peristiwa, dan aturan deteksi antarmuka yang umum.

Setiap NFT diidentifikasi secara unik melalui jaringan blockchain, alamat kontrak, dan ID token.

ID antarmuka intinya adalah

0x80ac58cd
.

Ekstensi opsional dapat menyediakan metadata, enumerasi on-chain, informasi royalti, dan notifikasi pembaruan metadata.

Standar ini tidak secara otomatis menetapkan akses minting, suplai maksimum, hak burning, royalti, permanensi metadata, kepemilikan legal, atau keaslian koleksi.

Pengguna sebaiknya memverifikasi alamat kontrak, memeriksa persetujuan, meninjau penyimpanan metadata, dan memahami izin administrator sebelum berinteraksi dengan NFT.

Developer sebaiknya menggunakan implementasi yang dipelihara, mengamankan setiap jalur otorisasi, dan memperlakukan callback penerima transfer aman sebagai panggilan eksternal yang berpotensi berbahaya.

Interoperabilitas ERC-721 memudahkan penggunaan NFT di berbagai aplikasi kripto, tetapi kompatibilitas teknis tidak menghilangkan risiko smart contract, phishing, metadata, hukum, atau pasar.

Memahami ERC-721 membantu pengguna membedakan kepemilikan blockchain atas token unik dari konten, hak, nilai, dan janji yang lebih luas terkait token tersebut.
Menarik Kembali / Peluang?
Menarik Kembali / Peluang?Menarik Kembali / Peluang?
Simak arus masuk ETF BTC $2,4 miliar pada likuidasi