Apa Itu Antarmuka ERC-721?
Antarmuka ERC-721 adalah sekumpulan fungsi dan peristiwa smart contract standar yang digunakan untuk merepresentasikan dan mentransfer non-fungible token di Ethereum dan jaringan blockchain yang kompatibel.Non-fungible token, atau NFT, merepresentasikan token dengan identitas unik, bukan kuantitas yang dapat dipertukarkan dari unit-unit identik.Spesifikasi ERC-721 resmi menetapkan cara wallet, aplikasi, smart contract, dan alat blockchain memeriksa kepemilikan NFT serta melakukan transfer standar.
Antarmuka ini tidak menentukan apa yang direpresentasikan NFT, berapa nilainya, atau apakah konten yang ditautkan autentik.Antarmuka ini menetapkan bahasa teknis bersama yang dapat digunakan berbagai aplikasi kripto saat berinteraksi dengan kontrak NFT.Standar ERC-721 mencapai status Final dalam proses Ethereum Improvement Proposal dan tetap menjadi salah satu standar utama untuk aset blockchain unik.ERC-721 dapat digunakan untuk koleksi digital, item game, kredensial keanggotaan, tanah virtual, tiket acara, aset mirip domain, posisi finansial, dan catatan yang ditokenisasi.Mengapa Antarmuka Penting?
Antarmuka smart contract menjelaskan fungsi eksternal dan peristiwa yang diharapkan tersedia pada kontrak yang kompatibel.Tanpa antarmuka bersama, setiap proyek NFT dapat menggunakan nama fungsi dan aturan transfer yang berbeda.Wallet dan aplikasi terdesentralisasi kemudian harus membuat kode khusus untuk setiap koleksi.Antarmuka ERC-721 memungkinkan software memanggil fungsi yang umum dikenal seperti
Apa yang Membuat Token ERC-721 Nonfungibel?
Setiap token ERC-721 memiliki bilangan bulat unik tanpa tanda yang disebut token ID.Identitas token ditentukan sepenuhnya oleh kombinasi jaringan blockchain, alamat kontrak, dan token ID.Token ID 100 dalam satu kontrak tidak berkaitan dengan token ID 100 dalam kontrak lain.Standar ini tidak mewajibkan token ID dimulai dari nol, bertambah secara berurutan, atau mengikuti pola yang dapat diprediksi.Aplikasi sebaiknya memperlakukan setiap token ID sebagai pengenal opak, bukan menebak token ID mana yang tersedia.Dalam model kepemilikan inti ERC-721, setiap token ID yang valid memiliki satu pemilik pada satu waktu.NFT dapat ditransfer sebagai satu token utuh, sedangkan kepemilikan fraksional memerlukan kontrak atau struktur token terpisah di luar antarmuka dasar.ID Antarmuka Inti ERC-721
Antarmuka inti ERC-721 diidentifikasi melalui ERC-165 dengan nilai
Kontrak yang kompatibel sebaiknya mengembalikan
Standar deteksi antarmuka ERC-165 menghitung pengenal antarmuka dengan menerapkan XOR pada selector fungsi yang disertakan dalam antarmuka tersebut.
ERC-165 memungkinkan aplikasi menanyakan antarmuka standar yang diklaim didukung kontrak sebelum mencoba berinteraksi dengannya.Respons positif berguna untuk pemeriksaan kompatibilitas, tetapi tidak secara mandiri membuktikan bahwa setiap fungsi diimplementasikan dengan benar.Aplikasi yang menangani aset bernilai mungkin juga memerlukan tinjauan kode, pengujian, dan simulasi transaksi.Fungsi Inti ERC-721
Antarmuka ERC-721 wajib mencakup kueri kepemilikan, fungsi transfer, dan fungsi pengelolaan persetujuan.Fungsi utamanya adalah
Fungsi balanceOf
Fungsi
Fungsi ownerOf
Fungsi
Fungsi transferFrom
Fungsi
Alamat
NFT yang dikirim menggunakan
Fungsi safeTransferFrom
ERC-721 mendefinisikan dua versi overload
Jika penerima adalah smart contract, proses transfer akan memanggil
Apa Itu IERC721Receiver?
Fungsi yang diwajibkan adalah
Penerima yang berhasil mengembalikan selector fungsinya, yang umumnya direpresentasikan sebagai
Dokumentasi implementasi ERC-721 terkini mencakup antarmuka penerima dan utilitas holder dasar untuk kontrak yang perlu menerima safe transfer.
Penerima sebaiknya memverifikasi kontrak NFT yang memanggilnya sebelum menggunakan callback untuk memperbarui pencatatan penting.Risiko Callback Penerima ERC-721
Safe transfer ke kontrak membuat pemanggilan eksternal ke penerima tersebut.Penerima dapat menjalankan kode tambahan sebelum transaksi awal selesai.Hal ini menciptakan potensi jalur reentrancy jika aplikasi pengirim belum menyelesaikan pembaruan state internalnya.Penerima berbahaya dapat mencoba memanggil fungsi lain dalam kontrak awal selama callback berlangsung.Panduan keamanan smart contract Solidity menyarankan agar pemeriksaan dan perubahan state penting diselesaikan sebelum interaksi eksternal jika desain yang dimaksud memungkinkan urutan tersebut.
Developer sebaiknya menguji safe transfer NFT dengan kontrak penerima berbahaya, bukan berasumsi bahwa callback tidak berbahaya.Fungsi approve
Fungsi
Memanggil
Fungsi getApproved
Fungsi
Aplikasi juga sebaiknya memeriksa
Fungsi setApprovalForAll
Fungsi
Fungsi isApprovedForAll
Fungsi
Peristiwa ERC-721
Antarmuka inti ERC-721 mendefinisikan peristiwa
Peristiwa Transfer
Peristiwa
Peristiwa Approval
Peristiwa
Peristiwa ApprovalForAll
Peristiwa
Antarmuka Metadata ERC-721 Opsional
Ekstensi metadata menambahkan
ID antarmuka ERC-165-nya adalah
Fungsi
Fungsi
Fungsi
Cara Kerja tokenURI
Fungsi
Panduan pengembangan ERC-721 terkini mencatat bahwa metadata off-chain dapat diubah oleh pihak yang mengendalikan lokasi penyimpanannya.
Kepemilikan token tidak otomatis menjamin ketersediaan permanen gambar atau file eksternal.Antarmuka Enumerable ERC-721 Opsional
Ekstensi enumerable memungkinkan aplikasi menemukan token ID melalui kueri on-chain.ID antarmuka ERC-165-nya adalah
Ekstensi ini menambahkan
Fungsi
Banyak aplikasi justru menyusun kembali kepemilikan NFT dari peristiwa
Mint dan Burn
Antarmuka inti ERC-721 tidak mewajibkan fungsi mint publik.Setiap proyek menentukan apakah mint terbuka, dibatasi, terjadwal, dibatasi jumlahnya, atau dinonaktifkan secara permanen.Standar ini juga tidak mewajibkan fungsi burn publik.Burn menghapus token dari catatan kepemilikan yang valid sesuai implementasi kontrak.Pengguna sebaiknya memeriksa siapa yang dapat melakukan mint atau burn NFT dan apakah administrator dapat memengaruhi token yang dimiliki akun lain.Antarmuka transfer yang sesuai standar tidak membuktikan bahwa suplai token bersifat tetap.Antarmuka ERC-721 vs. Implementasi ERC-721
Antarmuka menetapkan perilaku eksternal yang diwajibkan untuk kompatibilitas.Implementasi berisi logika penyimpanan, otorisasi, transfer, mint, metadata, dan administrasi yang sebenarnya.Dua kontrak dapat mendukung antarmuka ERC-721 yang sama tetapi menggunakan desain internal yang sangat berbeda.Satu implementasi dapat bersifat immutable, sedangkan implementasi lain dapat beroperasi melalui proxy yang dapat di-upgrade.Satu implementasi dapat memiliki suplai tetap, sedangkan implementasi lain memungkinkan administrator melakukan mint tanpa batas.Satu implementasi dapat menyimpan metadata on-chain, sedangkan implementasi lain menunjuk ke server yang dapat diubah.Pengguna sebaiknya meninjau implementasinya, bukan menganggap dukungan antarmuka sebagai penilaian keamanan yang lengkap.ERC-721 vs. ERC-20
ERC-20 merepresentasikan saldo fungibel, sedangkan ERC-721 merepresentasikan token yang diidentifikasi secara individual.Akun ERC-20 dapat memiliki jumlah yang dapat dibagi, misalnya 250 unit.Akun ERC-721 memiliki sejumlah token ID yang berbeda.Fungsi ERC-721
ERC-721 vs. ERC-1155
ERC-721 berfokus pada token nonfungibel yang diidentifikasi secara individual.ERC-1155 memungkinkan satu kontrak mengelola banyak token ID, termasuk aset fungibel, semi-fungibel, dan nonfungibel.Akun ERC-1155 dapat memiliki beberapa unit dari satu token ID.Token ID ERC-721 memiliki satu pemilik dan tidak mencatat saldo kuantitas untuk setiap akun.Standar terbaik bergantung pada model aset, pola transfer, kebutuhan operasi batch, dan persyaratan aplikasi.Royalti dan Antarmuka ERC-721
Antarmuka inti ERC-721 tidak menetapkan royalti kreator.Antarmuka royalti terpisah dapat menyampaikan penerima pembayaran dan jumlah yang disarankan.Informasi royalti tidak otomatis memaksa setiap sistem transfer melakukan pembayaran tersebut.Koleksi yang mengklaim memiliki royalti sebaiknya menjelaskan cara penghitungan informasi tersebut dan apakah nilainya dapat berubah.Pengguna tidak boleh berasumsi bahwa NFT ERC-721 mencakup hak royalti yang permanen atau dapat ditegakkan.Risiko Keamanan Persetujuan ERC-721
Phishing persetujuan merupakan salah satu risiko terpenting bagi pemegang NFT.Situs web berbahaya dapat meminta
Risiko Transfer yang Tidak Aman
Fungsi
Inilah alasan
Risiko Metadata dan Autentisitas
Siapa pun dapat menerapkan kontrak ERC-721 dengan nama atau simbol koleksi yang sudah dikenal.Alamat kontrak adalah pengenal teknis paling penting untuk suatu koleksi.Metadata juga dapat berisi nama yang menyesatkan, karya seni salinan, tautan eksternal berbahaya, atau file yang tidak tersedia.URI token yang dikendalikan administrator proyek dapat mengarah ke konten berbeda di kemudian hari.Kepemilikan on-chain tidak secara independen memverifikasi identitas kreator atau hak kekayaan intelektual.Pengguna sebaiknya mengonfirmasi alamat koleksi dan informasi proyek melalui sumber otoritatif.Risiko Kontrak yang Dapat Di-upgrade
Implementasi ERC-721 dapat beroperasi di balik proxy yang dapat di-upgrade.Administrator yang berwenang mungkin dapat mengubah aturan transfer, logika metadata, hak mint, atau perilaku lain setelah pengguna memperoleh NFT.Upgrade dapat memperbaiki bug, tetapi juga menimbulkan risiko tata kelola dan kompromi kunci.Pengguna sebaiknya memeriksa izin upgrade, jeda waktu, kontrol multisignature, dan peran administrator.Dukungan terhadap antarmuka ERC-721 tidak mengungkap semua fungsi istimewa dalam implementasi.Cara Developer Mengimplementasikan ERC-721
Developer sebaiknya menggunakan implementasi yang telah ditinjau dan aktif dipelihara, bukan menulis ulang logika kepemilikan yang sensitif tanpa alasan kuat.API ERC-721 OpenZeppelin terkini menyediakan komponen inti, metadata, enumerable, pausable, burnable, royalti, voting, dan komponen terkait penerima.
Akses mint sebaiknya dibatasi sesuai kebijakan suplai koleksi yang didokumentasikan.Safe mint sebaiknya dipertimbangkan saat NFT dapat di-mint langsung ke smart contract.Callback penerima sebaiknya diperlakukan sebagai pemanggilan eksternal yang berpotensi menimbulkan reentrancy.Pengujian sebaiknya mencakup kepemilikan, persetujuan, izin operator, penerima aman, penerima berbahaya, burn, token ID tidak valid, dan transfer tanpa otorisasi.Developer juga sebaiknya menguji apakah deteksi antarmuka mengembalikan nilai yang benar untuk setiap ekstensi yang diimplementasikan.Cara Aplikasi Mendeteksi Dukungan ERC-721
Aplikasi dapat memanggil
Nilai pengembalian
Contoh Transfer ERC-721
Misalnya, Alice memiliki token ID 42 dalam kontrak ERC-721.Fungsi
Wallet Alice memanggil
Kontrak memperbarui kepemilikan dan memanggil
Jika penerima mengembalikan selector yang benar, transfer selesai dan peristiwa
Kesalahan Umum terkait Antarmuka ERC-721
Salah satu kesalahan umum adalah menganggap nama koleksi dapat mengidentifikasi kontrak NFT secara unik.Kesalahan lainnya adalah menganggap
Kesalahan ketiga adalah menggunakan
FAQ
Apa itu antarmuka ERC-721?
Antarmuka ERC-721 adalah sekumpulan fungsi dan peristiwa standar untuk melacak kepemilikan, persetujuan, dan transfer non-fungible token.Apa ID antarmuka ERC-721?
ID antarmuka inti ERC-721 adalah
Apa yang dikembalikan balanceOf untuk kontrak ERC-721?
Fungsi ini mengembalikan jumlah NFT berbeda dari kontrak tersebut yang dimiliki suatu alamat.Apa fungsi ownerOf?
Fungsi ini mengembalikan pemilik terkini dari token ID yang valid.Apa perbedaan transferFrom dan safeTransferFrom?
Apa itu onERC721Received?
Fungsi ini adalah callback yang diimplementasikan smart contract untuk mengonfirmasi bahwa kontrak dapat menerima NFT melalui safe transfer.Bisakah safe transfer NFT gagal?
Ya, transfer gagal jika pemeriksaan otorisasi gagal atau kontrak penerima tidak mengembalikan selector callback yang diharapkan.Apa fungsi approve?
Fungsi ini memberi otorisasi kepada satu alamat untuk mentransfer satu NFT tertentu.Apa fungsi setApprovalForAll?
Fungsi ini memberikan wewenang kepada operator atas semua NFT yang dimiliki pemanggil dalam kontrak ERC-721 tersebut.Apakah persetujuan operator kedaluwarsa secara otomatis?
Tidak. Persetujuan standar untuk seluruh koleksi tetap aktif sampai pemilik mencabutnya atau kontrak menerapkan aturan khusus tambahan.Apakah transfer NFT menghapus persetujuan khusus tokennya?
Ya, implementasi ERC-721 biasa menghapus persetujuan yang terkait dengan token tersebut saat transfer.Apakah metadata diwajibkan oleh ERC-721?
Tidak. Antarmuka metadata bersifat opsional, meskipun sebagian besar koleksi NFT mengimplementasikannya.Apa ID antarmuka metadata ERC-721?
Ekstensi metadata menggunakan ID antarmuka
Apa ID antarmuka enumerable ERC-721?
Ekstensi enumerable menggunakan ID antarmuka
Apakah setiap kontrak ERC-721 mendukung totalSupply?
Tidak.
Apakah ERC-721 mewajibkan fungsi mint?
Tidak. Antarmuka inti tidak menetapkan cara pengguna atau administrator melakukan mint NFT.Apakah ERC-721 mewajibkan fungsi burn?
Tidak. Burn merupakan fitur implementasi, bukan fungsi inti yang diwajibkan.Apakah ERC-721 menerapkan royalti?
Tidak. Royalti berada di luar antarmuka inti ERC-721 dan memerlukan logika atau standar terpisah.Bisakah metadata ERC-721 berubah?
Ya. Standar ini mengizinkan token URI yang dapat berubah kecuali implementasinya memberikan jaminan immutability yang lebih kuat.Apakah kepatuhan ERC-721 membuktikan NFT autentik?
Tidak. Siapa pun dapat menerapkan kontrak yang kompatibel, sehingga pengguna harus memverifikasi alamat kontrak dan penerbitnya secara independen.Kesimpulan
Antarmuka ERC-721 menyediakan aturan umum untuk kepemilikan, persetujuan, transfer, dan peristiwa yang digunakan non-fungible token di berbagai aplikasi yang kompatibel dengan Ethereum.ID antarmuka intinya adalah
Anda Mungkin Juga Menyukai
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
POPULER
Mata uang kripto yang sedang tren saat ini dan menarik perhatian pasar yang signifikan
Volume TERATAS
Mata uang kripto dengan volume trading tertinggi
Baru Ditambahkan
Mata uang kripto yang baru saja masuk listing dan tersedia untuk trading

