Beli Kripto
Pasar
Spot
Futures OILBTC
Tabungan
Pusat Acara
Hub Hadiah
Lainnya
Fest. 0-Biaya
Standar Multi-Token ERC-1155: Apa Itu Standar Multi-Token ERC-1155?ERC-1155 adalah standar token Ethereum yang memungkinkan satu smart contract mengelola banyak jenis token secara bersamaan.Satu kontrak ERC-1155 dapat merepresentaStandar Multi-Token ERC-1155: Apa Itu Standar Multi-Token ERC-1155?ERC-1155 adalah standar token Ethereum yang memungkinkan satu smart contract mengelola banyak jenis token secara bersamaan.Satu kontrak ERC-1155 dapat merepresenta

Standar Multi-Token ERC-1155

2026/10/13 15:30
#Intermediate
TokenFi
TOKEN$0.00199-6.57%
Humanity
H$0.05361-11.16%
PX
PX$0.0123-6.10%
Smart Blockchain
SMART$0.004354-2.42%
STANDARD
STANDARD$0.3065+39.38%

Apa Itu Standar Multi-Token ERC-1155?

ERC-1155 adalah standar token Ethereum yang memungkinkan satu smart contract mengelola banyak jenis token secara bersamaan.

Satu kontrak ERC-1155 dapat merepresentasikan token fungibel, token nonfungibel, token semi-fungibel, atau gabungan dari jenis aset tersebut.

Spesifikasi ERC-1155 resmi menetapkan standar untuk kueri saldo, transfer tunggal, transfer batch, persetujuan operator, callback penerima, event, dan metadata opsional.

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

Standar ini umum disebut Multi-Token Standard karena setiap ID token dalam satu kontrak dapat merepresentasikan aset kripto yang berbeda.

Setiap ID token dapat memiliki suplai, saldo, metadata, kelangkaan, tujuan, dan karakteristik ekonominya sendiri.

ERC-1155 dirancang untuk mengurangi biaya dan kompleksitas deployment serta interaksi dengan koleksi besar aset blockchain.

Mengapa ERC-1155 Dibuat?

Model token sebelumnya umumnya memerlukan kontrak terpisah untuk aset fungibel atau koleksi NFT yang berbeda.

Karena itu, game blockchain yang memiliki ratusan mata uang, sumber daya, senjata, karakter, dan item acara mungkin membutuhkan banyak kontrak.

Deployment kontrak yang berulang menambah bytecode, pekerjaan administrasi dan integrasi, serta biaya transaksi.

ERC-1155 menempatkan banyak jenis token dalam satu kontrak dan menerapkan sistem transfer serta persetujuan bersama untuk semuanya.

Standar ini juga mendukung operasi batch untuk memindahkan beberapa ID token dalam satu transaksi.

Hal ini membuat standar tersebut berguna untuk game, koleksi digital, sistem keanggotaan, inventaris tokenisasi, posisi keuangan, program reward, dan aplikasi kripto lain yang memiliki banyak kategori aset.

Standar ini tidak terbatas pada game dan dapat digunakan di mana pun kontrak perlu mengelola beberapa jenis token secara efisien.

Cara Kerja ERC-1155

Kontrak ERC-1155 menyimpan saldo terpisah untuk setiap kombinasi alamat akun dan ID token.

Dalam kontrak yang sama, sebuah alamat dapat memiliki sepuluh unit token ID 1, satu unit token ID 2, dan tidak memiliki unit token ID 3.

Setiap ID token dapat berperilaku sebagai aset fungibel, NFT unik, atau aset dengan suplai terbatas yang dapat dipertukarkan.

Saat token berpindah, kontrak mengurangi saldo pengirim untuk setiap ID terkait dan menambah saldo penerima yang sesuai.

Kontrak mengeluarkan event standar agar wallet dan indexer dapat menyusun kembali informasi pembuatan, transfer, dan pemusnahan token.

Jika penerima adalah smart contract, kontrak ERC-1155 akan memanggil fungsi penerima untuk memastikan bahwa penerima menerima aset tersebut.

Node Ethereum menjalankan aturan ini dan memverifikasi perubahan saldo yang dihasilkan berdasarkan kode kontrak yang telah di-deploy.

Apa Itu ID Token dalam ERC-1155?

ID token adalah bilangan bulat tak bertanda yang mengidentifikasi satu jenis token di dalam kontrak ERC-1155.

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

Karena itu, aset ERC-1155 diidentifikasi melalui kombinasi jaringan blockchain, alamat kontrak, dan ID token.

Token ID 25 dapat merepresentasikan sumber daya game fungibel dalam satu kontrak dan koleksi unik dalam kontrak lain.

Standar ini tidak mengharuskan ID dimulai dari nol, bertambah secara berurutan, atau memiliki arti tertentu.

Developer dapat menetapkan ID sesuai arsitektur aplikasi mereka.

Aplikasi sebaiknya mengambil data kontrak yang tepercaya, bukan menebak ID token yang tersedia.

Token Fungibel dalam ERC-1155

ID token ERC-1155 dapat merepresentasikan aset fungibel jika terdapat beberapa unit ID tersebut yang dapat dipertukarkan.

Misalnya, token ID 1 dapat merepresentasikan mata uang game dengan satu juta unit identik.

Setiap pemegang memiliki saldo kuantitas yang terkait dengan token ID 1.

Unit dengan ID yang sama biasanya memiliki properti yang identik sesuai definisi kontrak.

Tidak seperti ERC-20, antarmuka inti ERC-1155 tidak menetapkan fungsi suplai total, simbol, nama, atau desimal terpisah untuk setiap ID token.

Proyek harus menyediakan informasi suplai atau tampilan yang diperlukan melalui ekstensi, metadata, atau fungsi khusus.

Token Nonfungibel dalam ERC-1155

ID token ERC-1155 dapat merepresentasikan aset nonfungibel dengan membatasi suplai ID tersebut menjadi satu unit.

Alamat yang memiliki satu unit tersebut berfungsi sebagai pemilik token.

ID token lain dalam kontrak yang sama dapat merepresentasikan item unik yang berbeda.

Misalnya, token ID 1001 dapat merepresentasikan satu pedang, sedangkan token ID 1002 merepresentasikan sebidang tanah virtual.

Standar inti tidak mewajibkan suplai maksimum sebuah ID token hanya satu.

Logika minting kontrak harus menegakkan keunikan jika suatu ID dimaksudkan untuk berfungsi sebagai NFT.

Token Semi-Fungibel

Token semi-fungibel dimulai dengan unit yang dapat dipertukarkan, tetapi kemudian dapat memiliki makna atau kegunaan terbatas yang berbeda.

Tiket acara merupakan contoh umum karena beberapa tiket untuk bagian yang sama dapat dipertukarkan sebelum acara berlangsung.

Setelah digunakan, setiap tiket dapat menjadi catatan koleksi yang terkait dengan pengalaman tertentu.

Item game edisi terbatas atau dengan status yang berubah juga dapat menggunakan model semi-fungibel.

ERC-1155 tidak secara formal mengklasifikasikan ID sebagai fungibel, nonfungibel, atau semi-fungibel.

Klasifikasi tersebut ditentukan oleh suplai, metadata, aturan transfer, dan desain aplikasi token.

Fungsi Inti ERC-1155

Antarmuka inti mencakup fungsi untuk memeriksa saldo, mentransfer token, dan mengelola persetujuan operator.

Fungsi yang diwajibkan adalah

balanceOf
,
balanceOfBatch
,
setApprovalForAll
,
isApprovedForAll
,
safeTransferFrom
, dan
safeBatchTransferFrom
.

ERC-1155 juga mewajibkan deteksi antarmuka ERC-165.

Antarmuka inti tidak mewajibkan minting publik, burning, suplai total, royalti, nama token, simbol, atau desimal.

Fitur tersebut dapat ditambahkan melalui ekstensi atau logika implementasi khusus.

Fungsi balanceOf

Fungsi

balanceOf
mengembalikan jumlah satu ID token yang dimiliki oleh satu alamat.

Fungsi ini memerlukan alamat akun dan ID token sebagai input.

Hal ini berbeda dari ERC-20, yang biasanya menggunakan satu kontrak untuk merepresentasikan satu jenis token dan hanya memerlukan alamat akun dalam fungsi tersebut.

Hal ini juga berbeda dari ERC-721, yang menggunakan

balanceOf
untuk menunjukkan jumlah NFT berbeda yang dimiliki sebuah alamat dalam suatu koleksi.

Saldo ERC-1155 dapat bernilai nol, satu, atau bilangan bulat yang lebih besar sesuai ketentuan kontrak.

Standar ini mewajibkan kueri saldo untuk alamat nol agar gagal.

Fungsi balanceOfBatch

Fungsi

balanceOfBatch
mengambil saldo beberapa akun dan ID token dalam satu pemanggilan.

Pemanggil memberikan array alamat akun dan array ID token yang sesuai.

Setiap nilai yang dikembalikan sesuai dengan akun dan ID pada posisi array yang sama.

Kedua array input harus memiliki panjang yang sama.

Fungsi ini dapat memeriksa beberapa aset untuk satu akun atau satu aset di beberapa akun.

Kueri saldo batch mengurangi jumlah pemanggilan terpisah yang diperlukan oleh wallet, game, dan aplikasi analitik.

Fungsi safeTransferFrom

Fungsi

safeTransferFrom
mentransfer sejumlah token dari satu ID token dari satu alamat ke alamat lain.

Pemanggil harus merupakan pemegang token atau operator yang disetujui oleh pemegang tersebut.

Pengirim harus memiliki saldo yang cukup untuk ID token yang dipilih.

Penerima tidak boleh berupa alamat nol.

Fungsi ini juga menerima kolom bytes yang dapat memuat informasi khusus aplikasi.

Transfer yang berhasil mengeluarkan event

TransferSingle
.

Jika penerima adalah smart contract, kontrak tersebut harus menerima transfer melalui callback penerima ERC-1155 yang diwajibkan.

Fungsi safeBatchTransferFrom

Fungsi

safeBatchTransferFrom
memindahkan beberapa ID token dan jumlahnya dalam satu transaksi.

Pemanggil memberikan array ID token dan array nilai yang sesuai.

ID token pada setiap posisi array ditransfer sebanyak nilai pada posisi yang sama.

Kedua array harus memiliki panjang yang sama.

Pemanggil harus merupakan pemegang atau operator yang disetujui, dan pemegang harus memiliki saldo yang cukup untuk setiap item dalam batch.

Jika salah satu transfer yang diperlukan gagal, seluruh transaksi biasanya dibatalkan.

Transfer batch yang berhasil mengeluarkan satu event

TransferBatch
, bukan event transfer terpisah untuk setiap ID token.

Mengapa Transfer Batch Penting?

Transfer batch memungkinkan beberapa jenis aset berpindah melalui satu transaksi blockchain.

Pengguna game dapat mentransfer mata uang, material, zirah, dan item koleksi sekaligus.

Aplikasi juga dapat mendistribusikan beberapa jenis reward kepada satu penerima dalam satu operasi.

Batching dapat mengurangi overhead transaksi berulang dan menurunkan total biaya dibandingkan mengirim banyak transaksi terpisah.

Besarnya penghematan bergantung pada jumlah ID, implementasi kontrak, perubahan penyimpanan, kondisi jaringan, dan logika penerima.

Batch yang sangat besar tetap dapat menggunakan terlalu banyak gas dan gagal karena batas gas blok.

Aplikasi sebaiknya menetapkan batas yang wajar untuk ukuran batch yang dikendalikan pengguna.

Persetujuan Operator ERC-1155

ERC-1155 menggunakan model persetujuan operator untuk seluruh koleksi.

Fungsi

setApprovalForAll
memungkinkan pemegang mengizinkan atau mencabut izin operator.

Operator yang disetujui dapat mengelola setiap ID token ERC-1155 yang dimiliki pemegang tersebut dalam kontrak.

Persetujuan tersebut berlaku untuk saldo yang sudah ada dan token dari kontrak yang sama yang diterima pemegang di kemudian hari.

Standar ini tidak menyediakan fungsi inti untuk menyetujui hanya satu ID token atau jumlah terbatas.

Izin yang luas ini meningkatkan kemudahan penggunaan aplikasi, tetapi menimbulkan risiko keamanan yang signifikan.

Pengguna sebaiknya memverifikasi alamat operator dan kontrak sebelum memberikan persetujuan.

Fungsi isApprovedForAll

Fungsi

isApprovedForAll
menunjukkan apakah satu alamat memiliki wewenang sebagai operator atas token milik alamat lain.

Fungsi ini mengembalikan

true
atau
false
.

Persetujuan hanya berlaku pada kontrak ERC-1155 tempat persetujuan tersebut dicatat.

Persetujuan itu tidak otomatis memberikan wewenang atas token ERC-20, NFT ERC-721, atau aset dalam kontrak ERC-1155 lain.

Pengguna sebaiknya meninjau persetujuan operator yang aktif secara berkala dan mencabut izin yang tidak lagi diperlukan.

Memutuskan koneksi wallet dari situs web tidak menghapus persetujuan operator yang tersimpan on-chain.

Ekstensi Persetujuan Terperinci

Model persetujuan ERC-1155 yang luas mungkin tidak sesuai jika pengguna hanya ingin mengizinkan ID token atau jumlah tertentu.

Standar tambahan atau kontrak khusus dapat menyediakan izin yang lebih terbatas.

Ekstensi allowance ERC-5216 menetapkan jumlah persetujuan untuk ID token ERC-1155 tertentu.

Dukungan untuk ekstensi semacam ini bersifat opsional dan tidak boleh diasumsikan tersedia.

Wallet harus membedakan dengan jelas allowance terbatas untuk ID token dari persetujuan standar untuk seluruh koleksi.

Antarmuka Penerima ERC-1155

Smart contract yang menerima token ERC-1155 melalui transfer aman standar harus mengimplementasikan fungsi penerima yang sesuai.

Antarmuka penerima mencakup

onERC1155Received
untuk transfer tunggal dan
onERC1155BatchReceived
untuk transfer batch.

ID antarmuka ERC-165 untuk antarmuka penerima adalah

0x4e2312e0
.

Kontrak penerima memeriksa operator, pemegang sebelumnya, ID token, jumlah, dan data yang dilampirkan.

Kontrak tersebut harus mengembalikan nilai penerimaan yang diharapkan, jika tidak transfer akan dibatalkan.

Sistem ini mengurangi risiko transfer tidak sengaja ke kontrak yang tidak dapat memproses aset ERC-1155.

Callback Penerima untuk Transfer Tunggal

Fungsi

onERC1155Received
dipanggil setelah saldo penerima diperbarui untuk transfer tunggal.

Nilai penerimaan yang diharapkan adalah

0xf23a6e61
.

Penerima dapat memvalidasi kontrak token, operator, pengirim, ID token, jumlah, dan data yang dilampirkan.

Penerima dapat menerima transfer dengan mengembalikan nilai yang diwajibkan.

Penerima dapat menolak transfer dengan membatalkannya atau mengembalikan nilai lain.

Kontrak penerima tidak boleh mencatat deposit hanya berdasarkan data callback tanpa memverifikasi kontrak token yang memanggilnya.

Callback Penerima untuk Transfer Batch

Fungsi

onERC1155BatchReceived
menangani penerimaan beberapa ID token dalam satu transfer.

Nilai penerimaan yang diharapkan adalah

0xbc197c81
.

Array ID dan jumlah harus ditafsirkan berdasarkan urutan yang sama.

Penerima sebaiknya memvalidasi panjang array dan memastikan setiap ID token yang didukung sesuai dengan aturan aplikasi.

Mengembalikan nilai yang salah atau membatalkan transaksi akan menyebabkan seluruh transfer batch gagal.

Kontrak penerima batch harus dirancang dengan cermat karena satu transaksi dapat mengirim banyak jenis aset yang berbeda.

Callback Penerima dan Reentrancy

Callback penerima ERC-1155 menjalankan kode kontrak eksternal sebelum transaksi transfer awal selesai.

Kontrak penerima dapat memanggil kembali kontrak token atau aplikasi lain selama callback berlangsung.

Hal ini membuka kemungkinan terjadinya reentrancy.

Spesifikasi ERC-1155 mewajibkan saldo dan event transfer diperbarui sebelum fungsi penerima dipanggil.

Kontrak aplikasi tetap perlu melindungi logika akuntansi dan otorisasinya sendiri.

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

Developer sebaiknya menguji kedua fungsi penerima dengan kontrak berbahaya yang mencoba reentrancy pada fungsi yang sama maupun lintas fungsi.

Event ERC-1155

Standar inti menetapkan event

TransferSingle
,
TransferBatch
,
ApprovalForAll
, dan
URI
.

Log ini memungkinkan wallet, explorer, indexer, dan sistem analitik melacak aktivitas token.

Standar ini dirancang agar saldo token dan perubahan suplai dapat disusun kembali dari event transfer.

Implementasi harus mengeluarkan event yang benar setiap kali token dibuat, ditransfer, atau dimusnahkan.

Event harus selalu ditafsirkan bersama alamat kontrak yang mengeluarkannya.

Event TransferSingle

Event

TransferSingle
mencatat operator, pengirim, penerima, ID token, dan jumlah untuk satu jenis token.

Transfer biasa mencakup alamat pengirim dan penerima yang bukan alamat nol.

Minting menggunakan alamat nol sebagai pengirim.

Burning menggunakan alamat nol sebagai penerima.

Transfer bernilai nol juga harus menghasilkan event yang sesuai.

Pengamat dapat menggunakan log ini untuk memperbarui catatan saldo yang mereka indeks.

Event TransferBatch

Event

TransferBatch
mencatat beberapa ID token dan jumlah yang ditransfer dalam satu operasi.

ID dan jumlah muncul pada posisi array yang bersesuaian.

Event ini juga mencatat operator, pengirim, dan penerima.

Minting batch menggunakan alamat nol sebagai pengirim, sedangkan burning batch menggunakan alamat nol sebagai penerima.

Indexer harus memproses setiap elemen dalam array untuk menghitung saldo dan suplai secara akurat.

Event ApprovalForAll

Event

ApprovalForAll
mencatat apakah pemilik mengaktifkan atau menonaktifkan operator.

Event ini mengidentifikasi pemilik, operator, dan status persetujuan.

Event ini tidak dengan sendirinya mentransfer token.

Event ini mengubah apakah operator dapat memulai transfer berikutnya dari pemilik.

Mencabut izin tidak membatalkan transaksi yang telah diselesaikan saat izin tersebut aktif.

Deteksi Antarmuka ERC-1155

ERC-1155 mewajibkan dukungan untuk standar deteksi antarmuka ERC-165.

ID antarmuka inti ERC-1155 adalah

0xd9b67a26
.

Kontrak yang kompatibel harus mengembalikan

true
saat
supportsInterface
dipanggil dengan nilai ini.

Standar ERC-165 menjelaskan cara smart contract mengumumkan dan mendeteksi antarmuka yang didukung.

Deteksi antarmuka membantu aplikasi menghindari pemanggilan fungsi yang tidak didukung.

Kontrak dapat mengklaim dukungan secara keliru atau mengimplementasikan fungsi dengan tidak benar, sehingga respons positif bukan jaminan keamanan menyeluruh.

Metadata ERC-1155

ERC-1155 mencakup ekstensi URI metadata opsional.

Ekstensi ini menambahkan fungsi

uri
yang mengembalikan lokasi metadata untuk ID token.

ID antarmukanya adalah

0x0e89341c
.

Lokasi yang dikembalikan biasanya mengarah ke dokumen JSON berisi informasi seperti nama, deskripsi, gambar, atribut, dan sumber daya eksternal.

Tidak seperti antarmuka metadata ERC-20 dan ERC-721, desain inti ERC-1155 tidak mewajibkan fungsi on-chain

name
atau
symbol
.

Proyek tetap dapat menambahkan fungsi tersebut melalui ekstensi khusus.

Substitusi Metadata {id}

URI metadata ERC-1155 dapat memuat placeholder

{id}
.

Aplikasi mengganti placeholder ini dengan ID token yang diminta dalam format heksadesimal huruf kecil.

Nilai tersebut harus berisi 64 karakter, termasuk nol di awal, dan tidak boleh menyertakan awalan

0x
.

Struktur ini memungkinkan satu URI dasar menunjukkan lokasi metadata untuk banyak ID token.

Aplikasi harus melakukan substitusi dengan benar agar tidak meminta file metadata yang keliru.

Risiko Penyimpanan Metadata

Metadata ERC-1155 dapat disimpan di server tradisional, jaringan berbasis alamat konten, atau langsung secara on-chain.

Konten yang di-host di server dapat berubah atau hilang.

Penyimpanan berbasis alamat konten meningkatkan integritas jika pengidentifikasi sesuai dengan file, tetapi tetap bergantung pada ketersediaan berkelanjutan.

Metadata on-chain mengurangi ketergantungan pada hosting eksternal, tetapi meningkatkan biaya penyimpanan dan deployment.

URI kontrak yang dapat diubah bisa mengubah nama, gambar, atribut, atau deskripsi setelah pengguna memperoleh token.

Pengguna sebaiknya memeriksa pihak yang dapat mengubah metadata dan memastikan apakah konten yang dirujuk diperkirakan akan tetap tersedia.

Minting Token ERC-1155

Minting membuat unit token dan memberikannya ke suatu alamat.

Antarmuka inti ERC-1155 tidak menetapkan fungsi minting publik.

Setiap implementasi menentukan pihak yang dapat melakukan minting, ID yang dapat dibuat, dan apakah berlaku batas suplai.

Minting harus mengeluarkan

TransferSingle
atau
TransferBatch
dengan alamat nol sebagai pengirim.

Jika token di-mint ke smart contract, callback penerima yang sesuai biasanya berlaku.

Pengguna sebaiknya memeriksa izin minting dan tidak berasumsi bahwa ID mirip NFT memiliki suplai terbatas secara permanen.

Burning Token ERC-1155

Burning menghapus unit token secara permanen dari saldo sesuai implementasi kontrak.

Antarmuka inti tidak mewajibkan fungsi burn publik.

Proyek dapat mengizinkan pemegang, operator yang disetujui, administrator, atau logika protokol lain untuk melakukan burn aset.

Burning harus mengeluarkan event transfer yang sesuai dengan alamat nol sebagai penerima.

Burning seluruh unit yang ada dari suatu ID tidak serta-merta mencegah kontrak melakukan minting ID tersebut kembali.

Hasilnya bergantung pada aturan suplai dan kontrol akses kontrak.

Suplai Total ERC-1155

Standar inti ERC-1155 tidak menetapkan fungsi

totalSupply
.

Suplai untuk setiap ID token dapat dihitung dari event minting dan burning jika implementasi mengikuti aturan event yang diwajibkan.

Kontrak dapat menambahkan ekstensi pelacakan suplai untuk memudahkan kueri on-chain.

API implementasi ERC-1155 terkini mencakup ekstensi suplai opsional yang melacak suplai total berdasarkan ID token.

Aplikasi tidak boleh berasumsi bahwa setiap kontrak ERC-1155 menyediakan fungsi suplai yang sama.

Enumerasi ERC-1155

ERC-1155 tidak menetapkan fungsi inti untuk mencantumkan setiap ID token atau setiap pemegangnya.

Standar ini mengharapkan sistem off-chain menyusun kembali aktivitas token dari event

TransferSingle
,
TransferBatch
, dan
URI
.

Indexer biasanya memulai dari blok deployment kontrak dan memproses event hingga blok terbaru.

Event yang terlewat dapat menghasilkan catatan saldo atau suplai yang keliru.

Kontrak dapat menambahkan fungsi enumerasi khusus, tetapi fungsi tersebut tidak tersedia secara universal.

Royalti ERC-1155

Standar inti ERC-1155 tidak menetapkan royalti kreator.

Standar royalti ERC-2981 opsional dapat memberikan alamat penerima royalti dan jumlah pembayaran yang disarankan untuk penjualan token.

ERC-2981 kompatibel dengan ERC-1155 dan dapat menetapkan informasi royalti default atau khusus untuk token tertentu.

Standar royalti menyampaikan informasi pembayaran, tetapi tidak memaksa setiap aplikasi untuk membayarnya.

Pengaturan royalti juga dapat diubah jika implementasi memberikan wewenang tersebut kepada administrator.

Error Terstandar ERC-1155

Standar ERC-1155 asli tidak menetapkan custom error Solidity modern.

Standar ERC-6093 berstatus Final menetapkan error umum untuk implementasi ERC-1155.

Error tersebut mencakup saldo yang tidak mencukupi, pengirim tidak valid, penerima tidak valid, persetujuan operator yang tidak ada, operator tidak valid, serta panjang array yang tidak sesuai.

Error terstandar dapat membantu wallet dan developer menjelaskan kegagalan transaksi secara konsisten.

Kontrak ERC-1155 yang sudah ada tidak diwajibkan untuk mengadopsinya.

ERC-1155 vs. ERC-20

ERC-20 biasanya merepresentasikan satu jenis token fungibel per kontrak.

ERC-1155 dapat merepresentasikan banyak ID token fungibel maupun nonfungibel dalam satu kontrak.

ERC-20 menggunakan allowance numerik untuk spender individual, sedangkan ERC-1155 inti menggunakan persetujuan operator untuk seluruh koleksi.

ERC-1155 mendukung transfer batch terstandar dan callback penerima.

Standar inti ERC-20 tidak menyediakan kedua fitur tersebut.

ERC-20 mungkin tetap lebih sederhana jika proyek hanya membutuhkan satu aset kripto fungibel.

ERC-1155 vs. ERC-721

ERC-721 merepresentasikan ID token nonfungibel yang dimiliki secara individual.

Satu ID token ERC-721 yang valid memiliki satu pemilik, bukan saldo kuantitas untuk setiap akun.

ERC-1155 menyimpan jumlah untuk setiap kombinasi akun dan ID token.

Dengan demikian, satu ID dapat memiliki banyak unit yang dapat dipertukarkan, sementara ID lain dalam kontrak yang sama memiliki suplai satu.

ERC-1155 juga mendukung transfer batch terstandar, sedangkan ERC-721 biasanya mentransfer satu NFT dalam satu waktu.

ERC-721 dapat memberikan model kepemilikan yang lebih sederhana jika setiap token bersifat unik.

Kasus Penggunaan ERC-1155

Game blockchain dapat menggunakan satu kontrak ERC-1155 untuk mata uang, material, karakter, senjata, tanah, dan item edisi terbatas.

Sistem acara dapat menerbitkan beberapa kategori dan jumlah tiket dari satu kontrak.

Proyek keanggotaan dapat mengelola berbagai tingkat akses, kelompok masa berlaku, atau paket manfaat melalui ID token terpisah.

Proyek koleksi digital dapat membuat edisi yang berisi beberapa salinan karya yang dapat dipertukarkan.

Aplikasi keuangan dapat menggunakan ID untuk merepresentasikan tanggal jatuh tempo, klaim, kelompok risiko, atau kategori posisi.

Sistem reward dapat mendistribusikan beberapa jenis poin atau item pencapaian dalam satu batch.

Standar ini tidak memverifikasi bahwa token merepresentasikan hak hukum yang sah atau aset dunia nyata.

Risiko Phishing Persetujuan

Aplikasi berbahaya dapat meminta pengguna memanggil

setApprovalForAll
sambil menjelaskan permintaan itu sebagai verifikasi atau koneksi wallet.

Setelah disetujui, operator dapat mentransfer setiap ID token yang dimiliki pengguna dalam kontrak ERC-1155 tersebut.

Persetujuan tersebut juga dapat berlaku untuk token yang diterima pengguna di kemudian hari.

Pengguna sebaiknya memeriksa jaringan, kontrak token, alamat operator, dan jenis izin sebelum menandatangani transaksi.

Mencabut akses situs web dari antarmuka wallet tidak otomatis mencabut persetujuan blockchain.

Frasa pemulihan atau kunci privat tidak pernah diperlukan untuk membatalkan izin operator ERC-1155.

Risiko Pemrosesan Batch

Operasi batch memproses array yang elemennya harus tetap selaras dengan benar.

Ketidakcocokan antara ID dan jumlah seharusnya menyebabkan transaksi gagal.

Pengindeksan yang salah dapat mentransfer jumlah aset yang keliru.

Batch besar dapat melampaui batas gas transaksi atau menimbulkan kondisi denial-of-service.

Penerima mungkin dapat menerima sebagian ID token secara ekonomi, tetapi tidak menerima ID lainnya. Karena itu, penerima harus memvalidasi seluruh batch sebelum mengonfirmasi penerimaan.

Aplikasi sebaiknya membatasi ukuran batch dan menguji ID token berulang atau tidak berurutan sesuai aturan implementasinya.

Risiko Penerima dan Reentrancy

Transfer aman memanggil kode penerima eksternal setelah saldo diperbarui.

Penerima berbahaya dapat mencoba melakukan reentrancy ke fungsi minting, transfer, penjualan, staking, pinjaman, atau penarikan.

Kontrak dapat tetap rentan meskipun satu fungsi memiliki perlindungan reentrancy, jika fungsi lain mengekspos status terkait.

Developer sebaiknya menggunakan logika transisi status yang konsisten untuk operasi tunggal maupun batch.

Callback penerima harus memverifikasi kontrak token yang memanggilnya dan tidak boleh langsung memercayai data yang diberikan pengguna.

Pengujian keamanan harus mencakup transfer bertingkat, penerima yang meneruskan aset, callback yang dibatalkan, dan interaksi lintas kontrak.

Risiko Suplai dan Keaslian

ID token ERC-1155 mungkin tampak unik karena saat ini hanya ada satu unit.

Namun, minter yang berwenang mungkin masih dapat membuat unit tambahan di kemudian hari.

Nama koleksi, gambar, atau ID token juga dapat disalin ke kontrak lain.

Alamat kontrak dan jaringan merupakan bagian penting dari identitas aset.

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

Kepatuhan terhadap ERC-1155 tidak membuktikan keaslian, dukungan aset, kelangkaan, atau nilai finansial.

Risiko Kontrak yang Dapat Di-upgrade

Kontrak ERC-1155 dapat beroperasi melalui proxy yang dapat di-upgrade.

Administrator yang berwenang mungkin dapat mengubah minting, transfer, persetujuan, metadata, biaya, atau perilaku penerima.

Upgrade dapat memperbaiki cacat, tetapi juga dapat memperkenalkan kode berbahaya atau tidak aman.

Kunci upgrade yang disusupi dapat membahayakan setiap ID token dalam kontrak.

Pengguna sebaiknya memeriksa kewenangan upgrade, jeda waktu, persyaratan multisignature, dan kontrol darurat.

Kontrak dapat mendukung antarmuka yang benar sekaligus mempertahankan izin tersentralisasi yang kuat.

Cara Developer Mengimplementasikan ERC-1155

Developer sebaiknya memulai dengan implementasi yang aktif dipelihara dan telah ditinjau, alih-alih menulis ulang logika saldo yang sensitif tanpa alasan kuat.

Panduan pengembangan ERC-1155 terkini menyediakan kontrak inti dan menjelaskan saldo multi-token serta operasi batch.

Fungsi minting dan administrasi sebaiknya menggunakan kontrol akses yang jelas.

Batasan suplai harus diterapkan dalam logika kontrak, bukan hanya dijelaskan dalam dokumentasi proyek.

Developer harus mengeluarkan setiap event yang diwajibkan dan mengembalikan nilai antarmuka ERC-165 yang benar.

Pengujian harus mencakup transfer tunggal, transfer batch, persetujuan, burning, minting, ketidakcocokan array, penerima tidak valid, callback berbahaya, dan perubahan metadata.

Cara Pengguna Mengevaluasi Token ERC-1155

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

Langkah kedua adalah memastikan apakah ID tersebut dimaksudkan sebagai token fungibel, nonfungibel, atau semi-fungibel.

Langkah ketiga adalah memeriksa suplai saat ini, kewenangan minting, dan batas suplai.

Langkah keempat adalah meninjau persetujuan operator yang terkait dengan wallet.

Langkah kelima adalah memeriksa penyimpanan metadata dan menentukan apakah metadata dapat berubah.

Langkah keenam adalah mengidentifikasi kewenangan administrator, jeda, pembekuan, dan upgrade.

Langkah ketujuh adalah meninjau audit dan kode sumber terverifikasi tanpa menganggapnya sebagai jaminan.

Langkah kedelapan adalah memastikan hak atau utilitas yang benar-benar diberikan token tersebut.

Langkah kesembilan adalah menguji kontrak yang belum dikenal dengan jumlah terbatas sebelum mentransfer aset bernilai tinggi.

Contoh Transfer Batch ERC-1155

Misalkan Alice memiliki 100 unit token ID 1, lima unit token ID 2, dan satu unit token ID 3.

Ia ingin mengirim sepuluh unit ID 1, dua unit ID 2, dan satu unit ID 3 kepada Bob.

Wallet-nya memanggil

safeBatchTransferFrom
dengan array yang berisi tiga ID beserta jumlah yang sesuai.

Kontrak memverifikasi saldo Alice dan kewenangan pemanggil.

Kontrak mengurangi saldo Alice dan menambah saldo Bob untuk setiap ID yang tercantum.

Kontrak mengeluarkan satu event

TransferBatch
yang menjelaskan seluruh perpindahan tersebut.

Jika Bob adalah smart contract, kontrak token akan memanggil

onERC1155BatchReceived
.

Jika penerima mengembalikan nilai penerimaan yang benar, transaksi selesai.

Jika pemeriksaan saldo atau persyaratan penerima gagal, seluruh transfer batch dibatalkan.

Kesalahan Umum dalam ERC-1155

Salah satu kesalahan umum adalah berasumsi bahwa setiap ID token ERC-1155 merupakan NFT.

Kesalahan lainnya adalah berasumsi bahwa satu unit merupakan suplai maksimum ID token.

Kesalahan ketiga adalah memberikan persetujuan operator tanpa memahami bahwa persetujuan tersebut mencakup setiap ID dalam kontrak.

Kesalahan keempat adalah mengira bahwa memutuskan koneksi wallet akan menghapus persetujuan on-chain.

Kesalahan kelima adalah menggunakan ketersediaan metadata sebagai bukti bahwa token telah di-mint.

Kesalahan keenam adalah menganggap ERC-1155 menetapkan fungsi suplai total untuk setiap ID.

Kesalahan ketujuh adalah memproses array batch tanpa memeriksa kesesuaian panjang dan posisi elemennya.

Kesalahan kedelapan adalah mengabaikan callback penerima eksternal dan risiko reentrancy.

Kesalahan kesembilan adalah menganggap royalti dapat diberlakukan secara otomatis.

Kesalahan kesepuluh adalah menganggap kepatuhan antarmuka sebagai bukti keaslian, kelangkaan, atau keamanan.

FAQ

Apa arti ERC-1155?

ERC-1155 adalah Multi-Token Standard Ethereum untuk mengelola beberapa jenis token fungibel, nonfungibel, dan semi-fungibel dalam satu kontrak.

Apakah ERC-1155 merupakan mata uang kripto?

ERC-1155 adalah standar teknis, sedangkan kontrak yang menerapkannya dapat membuat berbagai jenis aset kripto.

Apa ID antarmuka ERC-1155?

ID antarmuka inti ERC-1155 adalah

0xd9b67a26
.

Apa ID antarmuka penerima ERC-1155?

ID antarmuka penerima adalah

0x4e2312e0
.

Bisakah ERC-1155 membuat token fungibel?

Ya, satu ID token dapat memiliki banyak unit yang dapat dipertukarkan dan dibagikan ke beberapa akun.

Bisakah ERC-1155 membuat NFT?

Ya, ID token dapat berfungsi sebagai NFT jika suplai yang diberlakukan kontrak dibatasi menjadi satu.

Apa itu token ERC-1155 semi-fungibel?

Token semi-fungibel memiliki unit yang dapat dipertukarkan dalam satu konteks, tetapi kemudian dapat memperoleh makna, status, atau utilitas yang berbeda.

Bisakah satu kontrak ERC-1155 memuat beberapa jenis aset?

Ya, satu kontrak dapat mengelola banyak ID dengan suplai, metadata, dan tujuan yang berbeda.

Apa yang dikembalikan balanceOf?

Fungsi ini mengembalikan jumlah satu ID token ERC-1155 tertentu yang dimiliki sebuah akun.

Apa fungsi balanceOfBatch?

Fungsi ini mengembalikan saldo beberapa pasangan akun dan ID token dalam satu pemanggilan.

Apa itu safeBatchTransferFrom?

Fungsi ini mentransfer beberapa ID token dan jumlahnya dalam satu transaksi serta memeriksa penerima jika penerimanya adalah kontrak.

Apa fungsi setApprovalForAll?

Fungsi ini memberi wewenang kepada operator untuk mengelola semua ID token yang dimiliki pemanggil dalam satu kontrak ERC-1155.

Bisakah pengguna menyetujui hanya satu ID token?

Tidak melalui fungsi persetujuan inti, meskipun ekstensi opsional atau kontrak khusus dapat menyediakan izin yang lebih terbatas.

Apakah persetujuan operator ERC-1155 kedaluwarsa?

Tidak. Persetujuan standar tetap aktif hingga dicabut atau logika kontrak khusus mengubah dampaknya.

Apakah ERC-1155 mewajibkan pemeriksaan penerima yang aman?

Ya, transfer standar ke smart contract harus mengikuti aturan callback penerima tunggal atau batch yang sesuai.

Bisakah penerima ERC-1155 menolak token?

Ya, penerima dapat membatalkan transaksi atau mengembalikan nilai penerimaan yang salah sehingga transfer gagal.

Apakah ERC-1155 mendukung metadata?

Ya, ERC-1155 menetapkan ekstensi URI metadata opsional dengan ID antarmuka

0x0e89341c
.

Apakah setiap token ERC-1155 memiliki nama dan simbol?

Tidak. Standar inti tidak mewajibkan fungsi nama atau simbol on-chain.

Apakah ERC-1155 menetapkan desimal?

Tidak. Jika diperlukan, aplikasi harus mendapatkan informasi denominasi dari metadata atau logika khusus proyek.

Apakah ERC-1155 mencakup totalSupply?

Tidak. Kueri suplai total memerlukan pengindeksan event atau ekstensi suplai opsional.

Bisakah metadata ERC-1155 berubah?

Ya, metadata dapat berubah jika kontrak atau sistem penyimpanan eksternal mengizinkan pembaruan.

Apakah ERC-1155 memberlakukan royalti?

Tidak. Informasi royalti memerlukan standar terpisah, dan kontrak token inti tidak otomatis memberlakukan pembayaran royalti yang dilaporkan.

Bisakah transfer batch ERC-1155 menghemat gas?

Ya, mentransfer beberapa ID token dalam satu transaksi dapat mengurangi overhead transaksi berulang.

Bisakah callback ERC-1155 menyebabkan reentrancy?

Ya, callback penerima menjalankan kode eksternal yang dapat memanggil kembali fungsi kontrak lain sebelum transaksi awal selesai.

Apakah kepatuhan ERC-1155 membuktikan bahwa token aman?

Tidak. Kontrak yang kompatibel tetap dapat memiliki kode tidak aman, izin berlebihan, metadata yang dapat diubah, kontrol suplai yang lemah, atau klaim penipuan.

Kesimpulan

ERC-1155 adalah standar Ethereum untuk mengelola banyak jenis token melalui satu smart contract.

Setiap ID token dapat merepresentasikan aset fungibel, NFT unik, item semi-fungibel, atau aset kripto lain berbasis saldo.

Standar ini menetapkan kueri saldo tunggal dan batch, transfer aman, persetujuan operator untuk seluruh koleksi, callback penerima, event, dan deteksi antarmuka.

Operasi batch dapat mengurangi overhead transaksi saat beberapa ID token perlu diperiksa atau ditransfer sekaligus.

Callback penerima wajib mengurangi risiko transfer tidak sengaja ke kontrak yang tidak kompatibel, tetapi menimbulkan risiko panggilan eksternal dan reentrancy.

Standar inti tidak menetapkan minting publik, burning, suplai total, desimal, royalti, atau metadata permanen.

Karakteristik tersebut bergantung pada ekstensi opsional dan implementasi masing-masing kontrak.

Pengguna sebaiknya memverifikasi jaringan, alamat kontrak, ID token, kontrol suplai, persetujuan operator, sistem metadata, dan izin administrator.

Developer sebaiknya menggunakan implementasi yang terpelihara, mengeluarkan semua event yang diwajibkan, mengamankan callback penerima, membatasi kompleksitas batch, dan menguji setiap jalur otorisasi.

ERC-1155 menyediakan infrastruktur multi-token yang fleksibel dan efisien, tetapi kompatibilitas teknis tidak menjamin keaslian, kelangkaan, nilai finansial, atau keamanan smart contract.
Menarik Kembali / Peluang?
Menarik Kembali / Peluang?Menarik Kembali / Peluang?
Simak arus masuk ETF BTC $2,4 miliar pada likuidasi