Beli Kripto
Pasar
Spot
Futures OILBTC
Tabungan
Pusat Acara
Hub Hadiah
Lainnya
Fest. 0-Biaya
ERC-20: Apa Itu ERC-20?ERC-20 adalah standar token Ethereum yang menetapkan antarmuka umum untuk aset kripto fungibel yang dibuat melalui smart contract.Fungibel berarti unit yang sama dari token yang sama daERC-20: Apa Itu ERC-20?ERC-20 adalah standar token Ethereum yang menetapkan antarmuka umum untuk aset kripto fungibel yang dibuat melalui smart contract.Fungibel berarti unit yang sama dari token yang sama da

ERC-20

2026/10/13 15:30
#Intermediate
Humanity
H$0.05582-1.32%
PX
PX$0.0129+2.38%
TokenFi
TOKEN$0.002003-0.93%
Smart Blockchain
SMART$0.00447+3.80%
SQUID MEME
GAME$42.6669-0.69%

Apa Itu ERC-20?

ERC-20 adalah standar token Ethereum yang menetapkan antarmuka umum untuk aset kripto fungibel yang dibuat melalui smart contract.

Fungibel berarti unit yang sama dari token yang sama dapat dipertukarkan berdasarkan aturan pencatatan kontrak token tersebut.

Sebagai contoh, satu unit penuh token ERC-20 biasa memiliki properti yang sama menurut definisi kontrak dengan unit lain dari token tersebut.

Spesifikasi ERC-20 resmi menetapkan fungsi untuk memeriksa suplai dan saldo token, mentransfer token, serta mengotorisasi pihak ketiga untuk menggunakan token.

Standar ini juga menetapkan peristiwa terstandar yang memungkinkan wallet dan aplikasi memantau transfer serta perubahan persetujuan.

ERC-20 adalah standar Ethereum Request for Comments berstatus Final dan tetap menjadi landasan teknis utama bagi token fungibel di ekosistem yang kompatibel dengan Ethereum.

Standar ini meningkatkan interoperabilitas karena wallet, smart contract, blockchain explorer, sistem kustodi, dan aplikasi kripto lainnya dapat menggunakan metode dasar yang sama untuk banyak token berbeda.

ERC-20 tidak menentukan harga token, kebijakan suplai, klasifikasi hukum, utilitas, dukungan kolateral, hak tata kelola, atau kualitas investasi.

Apa Arti ERC?

ERC adalah singkatan dari Ethereum Request for Comments.

ERC menjelaskan standar atau konvensi tingkat aplikasi yang dapat diterapkan developer dalam smart contract Ethereum dan perangkat lunak terkait.

Angka 20 mengidentifikasi proposal yang memperkenalkan antarmuka token fungibel ini.

Angka tersebut tidak mengacu pada jumlah token, tempat desimal, jaringan yang didukung, atau fungsi kontrak.

ERC-20 juga sering disebut EIP-20 karena dokumennya termasuk dalam proses Ethereum Improvement Proposal.

Mengapa ERC-20 Dibuat?

Sebelum adanya standar token fungibel bersama, setiap smart contract dapat menggunakan nama dan aturan berbeda untuk pemeriksaan saldo, transfer, dan penggunaan token oleh pihak yang diberi izin.

Wallet harus memiliki kode integrasi khusus untuk setiap token.

Aplikasi terdesentralisasi tidak dapat berasumsi bahwa dua kontrak token mendukung operasi yang sama.

ERC-20 menciptakan antarmuka bersama minimum yang memungkinkan satu aplikasi berinteraksi dengan banyak token fungibel.

Interoperabilitas ini membantu saldo token digunakan dalam pembayaran, tata kelola, pinjaman, sistem likuiditas, vault, game, program reward, dan aplikasi kripto lainnya.

Standar ini sengaja dibuat terbatas agar developer dapat menambahkan perilaku khusus tanpa mengubah antarmuka dasarnya.

Cara Kerja ERC-20

Token ERC-20 dikendalikan oleh smart contract yang di-deploy di Ethereum atau blockchain yang kompatibel.

Kontrak mencatat jumlah unit token yang dimiliki setiap alamat.

Kontrak juga mencatat total suplai token dan allowance yang diberikan pemilik kepada pihak yang diberi izin untuk menggunakan token.

Saat transfer yang valid terjadi, kontrak mengurangi saldo pengirim dan menambah saldo penerima.

Kontrak mengeluarkan peristiwa

Transfer
agar perangkat lunak eksternal dapat memantau perpindahan tersebut.

Saat pemilik menyetujui spender, kontrak memperbarui allowance dan mengeluarkan peristiwa

Approval
.

Node blockchain menjalankan aturan kontrak ini dan memverifikasi bahwa setiap perubahan status yang diterima valid.

Kontrak token tidak mengelola blockchain terpisah karena beroperasi dalam status dan model keamanan jaringan host-nya.

Fungsi Inti ERC-20

Antarmuka ERC-20 wajib mencakup enam fungsi utama.

Fungsi tersebut adalah

totalSupply
,
balanceOf
,
transfer
,
allowance
,
approve
, dan
transferFrom
.

Standar ini juga menjelaskan fungsi metadata opsional

name
,
symbol
, dan
decimals
.

Minting, burning, jeda, pajak, voting, pembekuan, dan batas suplai tidak diwajibkan oleh antarmuka inti.

Token dapat menambahkan fitur tersebut melalui logika khusus atau ekstensi terstandar.

Fungsi totalSupply

Fungsi

totalSupply
mengembalikan jumlah unit token yang saat ini tercakup dalam suplai yang dilaporkan token.

Nilainya dinyatakan dalam unit internal terkecil token.

Nilai ini tidak secara otomatis menunjukkan suplai maksimum yang mungkin.

Kontrak dapat mengizinkan penerbitan token tambahan di kemudian hari meskipun total suplai saat ini jauh di bawah batas maksimum yang dinyatakan.

Token juga dapat mendukung burning, yang dapat mengurangi total suplai saat ini.

Pengguna sebaiknya memeriksa izin minting dan kontrol suplai, bukan menggunakan

totalSupply
sebagai bukti kelangkaan permanen.

Fungsi balanceOf

Fungsi

balanceOf
mengembalikan saldo token yang tercatat untuk alamat tertentu.

Hasilnya dinyatakan dalam unit internal terkecil token.

Saldo yang ditampilkan wallet biasanya dihitung dengan memformat integer ini sesuai pengaturan desimal token.

Fungsi ini hanya melaporkan saldo dalam satu kontrak token.

Fungsi ini tidak mencakup token bernama serupa yang dibuat di alamat kontrak lain atau jaringan lain.

Beberapa token tidak lazim dapat mengubah saldo melalui rebasing atau logika pencatatan lain tanpa mengeluarkan transfer biasa untuk setiap pemegang.

Fungsi transfer

Fungsi

transfer
memindahkan jumlah tertentu dari saldo pemanggil ke penerima.

Pemanggil harus memiliki token yang cukup untuk menyelesaikan operasi.

Transfer yang berhasil harus mengeluarkan peristiwa

Transfer
.

Spesifikasi ERC-20 mewajibkan transfer bernilai nol diperlakukan sebagai transfer biasa dan mengeluarkan peristiwa tersebut.

Menurut standar, fungsi ini mengembalikan nilai keberhasilan Boolean.

Aplikasi tidak boleh berasumsi bahwa nilai yang dikembalikan tidak mungkin berupa

false
.

Banyak implementasi modern membatalkan transaksi saat gagal alih-alih mengembalikan

false
, tetapi integrasi harus mempertimbangkan perilaku token tertentu.

Fungsi approve

Fungsi

approve
memungkinkan pemilik token menetapkan jumlah token yang boleh ditransfer spender dari saldo pemilik.

Token tidak langsung diterima spender.

Kontrak mencatat allowance yang dapat digunakan spender nanti melalui

transferFrom
.

Persetujuan berlaku untuk satu pemilik, satu spender, dan satu kontrak token.

Persetujuan pada satu jaringan atau kontrak token tidak secara otomatis memberikan izin untuk menggunakan token di tempat lain.

Pengguna sebaiknya memperlakukan transaksi persetujuan sebagai izin finansial, bukan sekadar koneksi wallet yang tidak berbahaya.

Fungsi allowance

Fungsi

allowance
melaporkan jumlah token yang saat ini diizinkan untuk ditransfer spender dari pemilik.

Nilai tersebut dapat berkurang saat spender menggunakan

transferFrom
.

Pemilik dapat memperbarui jumlahnya melalui transaksi persetujuan lainnya.

Beberapa implementasi memperlakukan integer tanpa tanda maksimum sebagai persetujuan tanpa batas dan mungkin tidak mengurangi nilai tersebut setelah setiap transfer.

Persetujuan tanpa batas tetap berisiko selama spender masih memiliki akses dan pemilik memiliki saldo token.

Pengguna sebaiknya meninjau dan mencabut izin yang tidak lagi diperlukan.

Fungsi transferFrom

Fungsi

transferFrom
memungkinkan spender yang disetujui mentransfer token dari pemilik ke penerima.

Spender harus memiliki allowance yang cukup dan pemilik harus memiliki saldo yang cukup.

Panggilan yang berhasil biasanya mengurangi allowance yang tersedia, kecuali implementasinya memperlakukannya sebagai tanpa batas.

Fungsi ini harus mengeluarkan peristiwa

Transfer
untuk perpindahan token.

Model transfer delegasi ini memungkinkan smart contract memungut pembayaran, menerima deposit, mengunci kolateral, atau melakukan tindakan lain yang telah disetujui.

Model ini juga menimbulkan risiko karena spender berbahaya atau yang telah disusupi dapat menggunakan sisa allowance tanpa meminta persetujuan pemilik untuk setiap transfer.

Peristiwa ERC-20

Standar ERC-20 menetapkan peristiwa

Transfer
dan
Approval
.

Peristiwa adalah log transaksi yang dapat diindeks secara efisien oleh aplikasi off-chain.

Wallet, alat analitik, sistem akuntansi, dan blockchain explorer menggunakan log ini untuk melacak aktivitas token.

Peristiwa harus selalu ditafsirkan bersama alamat kontrak yang mengeluarkannya.

Kontrak berbahaya dapat menggunakan nama peristiwa yang familiar tanpa merepresentasikan token yang autentik atau bernilai.

Peristiwa Transfer

Peristiwa

Transfer
mencatat pengirim, penerima, dan jumlah token.

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

Pembuatan token umumnya direpresentasikan sebagai transfer dari zero address kepada penerima.

Pemusnahan token umumnya direpresentasikan sebagai transfer dari pemegang ke zero address.

Spesifikasi ERC-20 mewajibkan token yang baru dibuat memicu peristiwa

Transfer
dari zero address saat implementasi menciptakan suplai.

Peristiwa mint yang teramati tidak membuktikan bahwa minting di masa mendatang mustahil dilakukan.

Peristiwa Approval

Peristiwa

Approval
mencatat pemilik, spender, dan nilai allowance.

Aplikasi dapat menggunakannya untuk memantau perubahan wewenang penggunaan token yang didelegasikan.

Persetujuan tidak mentransfer token atau mengubah kepemilikan dengan sendirinya.

Persetujuan memungkinkan spender menggunakan

transferFrom
hingga batas yang diizinkan.

Mencabut allowance tidak membatalkan transfer token yang terjadi saat izin tersebut aktif.

Nama dan Simbol ERC-20

Fungsi

name
dan
symbol
menyediakan informasi token yang mudah dibaca.

Nama dapat menjelaskan aset, sedangkan simbol merupakan label tampilan yang lebih singkat.

Kedua fungsi tersebut bersifat opsional dalam spesifikasi ERC-20 asli.

Nama dan simbol tidak unik.

Siapa pun dapat men-deploy token yang menyalin nama dan simbol aset lain.

Wallet dan pengguna sebaiknya memverifikasi alamat kontrak lengkap dan jaringan blockchain, bukan hanya mengandalkan identitas merek.

Apa Itu Desimal ERC-20?

Fungsi

decimals
opsional memberi tahu aplikasi cara memformat unit terkecil token untuk ditampilkan agar mudah dibaca.

Token dengan 18 desimal membagi jumlah integer internalnya dengan 10 pangkat 18 untuk tampilan standar.

Sebagai contoh, jumlah internal 1.000.000 unit merepresentasikan satu token jika token menggunakan enam desimal.

Desimal tidak membuat saldo blockchain menjadi angka floating-point.

Smart contract melakukan pencatatan token menggunakan integer.

Nilai desimal memengaruhi tampilan dan denominasi, bukan model aritmetika yang mendasarinya.

Delapan belas desimal umum digunakan dan menjadi nilai default dalam implementasi ERC-20 OpenZeppelin saat ini, tetapi token ERC-20 dapat menggunakan nilai lain.

Model Suplai ERC-20

ERC-20 tidak menentukan cara suplai token harus dibuat.

Token dengan suplai tetap dapat mencetak seluruh suplainya saat deployment dan tidak menyediakan fungsi minting berikutnya.

Token dengan batas maksimum dapat mengizinkan minting hingga mencapai batas yang ditentukan kontrak.

Token tanpa batas maksimum dapat mengizinkan akun yang diotorisasi atau proses protokol membuat unit tambahan tanpa batas permanen.

Token algoritmik dapat menyesuaikan suplai berdasarkan kondisi terprogram.

Token wrapped dapat menerbitkan unit saat aset dasar disetorkan dan membakar unit saat aset tersebut ditarik.

Panduan suplai ERC-20 resmi menjelaskan bahwa logika suplai harus ditambahkan ke implementasi dasar melalui mekanisme minting yang sesuai.

Minting Token ERC-20

Minting membuat unit token baru dan meningkatkan total suplai.

Antarmuka inti ERC-20 tidak menetapkan fungsi mint publik atau menentukan siapa yang boleh memanggilnya.

Token dapat membatasi minting kepada administrator, proses tata kelola, bridge, sistem staking, vault, atau otoritas lain yang ditetapkan kontrak.

Izin minting yang tidak aman dapat mendilusi pemegang yang ada atau merusak asumsi kolateral.

Pengguna sebaiknya memeriksa apakah minting dapat dilakukan, siapa yang mengendalikannya, apakah ada batas suplai, dan apakah implementasinya dapat di-upgrade.

Pernyataan bahwa token memiliki suplai tetap sebaiknya diverifikasi melalui logika kontrak yang telah di-deploy dan izin istimewanya.

Burning Token ERC-20

Burning menghancurkan unit token dan biasanya mengurangi total suplai.

Standar inti tidak mewajibkan adanya fungsi burn publik bagi pemegang.

Implementasi dapat mengizinkan pemegang membakar token mereka sendiri atau mengizinkan spender yang disetujui membakar token melalui allowance.

Sistem lain hanya membakar token saat penebusan, penyelesaian, atau operasi protokol.

Mengirim token ke alamat yang tidak dapat diakses tidak selalu sama dengan burn pada tingkat kontrak karena total suplai yang dilaporkan dapat tetap tidak berubah.

Pengguna sebaiknya memeriksa logika burn token yang sebenarnya sebelum menafsirkan data suplai.

Persetujuan ERC-20 dan Kondisi Race Allowance

Mengubah allowance nonnol yang sudah ada langsung menjadi jumlah nonnol lainnya dapat menimbulkan risiko urutan transaksi.

Spender dapat menggunakan allowance lama sebelum persetujuan pengganti pemilik dikonfirmasi, lalu menerima allowance baru setelahnya.

Spesifikasi ERC-20 asli mencatat bahwa antarmuka pengguna sebaiknya mengatur allowance ke nol terlebih dahulu sebelum menetapkan jumlah nonnol yang berbeda.

Kontrak token sendiri sebaiknya tidak mewajibkan urutan ini karena dapat mengurangi kompatibilitas dengan aplikasi lama.

Fungsi bantuan yang dirancang dengan cermat untuk mengurangi atau menambah allowance dapat meningkatkan kemudahan penggunaan, tetapi dukungannya berbeda-beda pada tiap implementasi.

Pengguna sebaiknya tidak membiarkan allowance lebih besar daripada yang secara wajar diperlukan aplikasi.

Persetujuan Token Tanpa Batas

Persetujuan tanpa batas biasanya menetapkan allowance ke nilai maksimum yang didukung integer 256-bit tanpa tanda.

Pendekatan ini mengurangi kebutuhan untuk mengirim persetujuan baru sebelum setiap interaksi.

Pendekatan ini juga memberikan wewenang berkelanjutan kepada spender atas saldo token saat ini dan di masa mendatang.

Jika kontrak spender dieksploitasi, di-upgrade secara berbahaya, atau dikendalikan administrator yang akunnya disusupi, allowance dapat digunakan untuk mengambil token pemilik.

Kemudahan penggunaan perlu dipertimbangkan bersama jumlah dan durasi izin.

Allowance terbatas dapat mengurangi kerugian maksimum akibat satu spender yang disusupi.

Apa Itu Permit ERC-2612?

ERC-2612 adalah ekstensi yang memungkinkan pemilik ERC-20 membuat allowance melalui pesan bertanda tangan.

Izin bertanda tangan tersebut dapat dikirimkan on-chain oleh akun atau smart contract lain.

Hal ini dapat menggabungkan persetujuan dan tindakan aplikasi ke dalam satu alur pengguna.

Spesifikasi permit ERC-2612 resmi menambahkan

permit
,
nonces
, dan
DOMAIN_SEPARATOR
ke ERC-20.

Setiap permit yang berhasil menggunakan nonce sehingga tanda tangan yang sama biasanya tidak dapat digunakan kembali.

Batas waktu membatasi durasi berlaku tanda tangan.

Dukungan permit bersifat opsional dan bukan bagian dari antarmuka inti ERC-20 asli.

Risiko Tanda Tangan Permit

Tanda tangan permit dapat mengotorisasi penggunaan token meskipun menandatanganinya tidak langsung mengirim transaksi on-chain dari pemilik.

Situs phishing dapat menyajikan permit sebagai pesan login, verifikasi, atau pesan tanpa biaya gas yang tidak berbahaya.

Spender dapat mengirimkan permit bertanda tangan yang valid di kemudian hari dan menggunakan allowance yang dihasilkan sebelum batas waktunya.

Pengguna sebaiknya memeriksa token, spender, jumlah, jaringan, nonce, dan tanggal kedaluwarsa sebelum menandatangani.

Permintaan tanda tangan tidak boleh dianggap aman hanya karena wallet menyatakan tidak diperlukan pembayaran gas.

Wallet kontrak mungkin memerlukan dukungan validasi tanda tangan tambahan di luar pola dasar akun milik eksternal.

Apakah ERC-20 Mendukung Callback Penerima Otomatis?

Fungsi transfer inti ERC-20 tidak mewajibkan smart contract penerima mengonfirmasi token yang diterimanya.

Karena itu, transfer dapat berhasil meskipun kontrak penerima tidak memiliki fungsi untuk mencatat atau mengembalikan token.

Hal ini dapat membuat aset terjebak dalam kontrak yang tidak kompatibel.

ERC-20 juga tidak secara otomatis memanggil kode penerima setelah transfer biasa.

Ekstensi ERC-1363 menambahkan operasi transfer-and-call dan approve-and-call untuk aplikasi yang memerlukan perilaku callback.

Ekstensi dengan callback menambahkan panggilan eksternal dan harus ditinjau untuk risiko reentrancy serta keamanan penerima.

SafeERC20 dan Token Nonstandar

Spesifikasi ERC-20 menyatakan bahwa pemanggil harus menangani nilai balik

false
.

Dalam praktiknya, beberapa kontrak token lama atau tidak lazim tidak mengembalikan nilai Boolean meskipun transfer berhasil.

Implementasi lain membatalkan transaksi saat gagal alih-alih mengembalikan

false
.

Panggilan langsung ke antarmuka yang mengasumsikan satu jenis perilaku dapat gagal atau salah menafsirkan hasil.

Utilitas SafeERC20 saat ini membungkus operasi token dan menangani token yang mengembalikan

false
serta beberapa token yang tidak mengembalikan nilai.

Wrapper meningkatkan kompatibilitas, tetapi tidak dapat membuat token berbahaya menjadi aman secara ekonomi.

Token dengan Biaya Transfer

Token dengan biaya transfer memotong biaya saat token berpindah.

Penerima memperoleh jumlah yang lebih sedikit daripada jumlah yang diminta pengirim atau kontrak pemanggil.

Protokol yang mengkreditkan jumlah yang diminta alih-alih mengukur jumlah yang benar-benar diterima dapat menjadi kekurangan kolateral.

Aplikasi sebaiknya membandingkan saldo token sebelum dan sesudah transfer jika mendukung perilaku token ini.

Aturan biaya juga dapat berubah jika kontrak dapat di-upgrade atau dikendalikan administrator.

Nama fungsi ERC-20 standar tidak menjamin hasil transfer yang tetap.

Token ERC-20 Rebasing

Token rebasing mengubah saldo akun berdasarkan proses penyesuaian yang ditentukan kontrak.

Saldo yang ditampilkan oleh

balanceOf
dapat meningkat atau menurun tanpa transfer biasa yang dimulai oleh pemegang.

Rebase positif meningkatkan saldo yang ditampilkan, sedangkan rebase negatif menguranginya.

Beberapa sistem menggunakan share internal dan menghitung saldo yang terlihat melalui nilai tukar.

Aplikasi yang mengasumsikan saldo hanya berubah melalui transfer dapat mencatat token rebasing secara keliru.

Pengguna sebaiknya memahami apakah token merepresentasikan saldo unit tetap atau klaim proporsional yang berubah.

Token ERC-20 Wrapped

Token ERC-20 wrapped merepresentasikan aset lain melalui smart contract atau pengaturan kustodi.

Pengguna dapat menyetorkan aset dasar dan menerima unit ERC-20 yang setara.

Penebusan biasanya membakar atau mengembalikan unit wrapped dan melepaskan aset dasarnya.

Nilai wrapper bergantung pada ketersediaan dan integritas mekanisme pendukungnya.

Eksploitasi smart contract, kegagalan kustodi, kegagalan bridge, kolateral yang dibekukan, atau pencatatan yang keliru dapat merusak hubungan yang diharapkan.

Kepatuhan ERC-20 hanya membuktikan kompatibilitas antarmuka, bukan adanya dukungan aset yang memadai.

Token Tata Kelola ERC-20

Token ERC-20 dapat diperluas untuk merepresentasikan hak suara dalam sistem tata kelola on-chain.

Voting dapat bergantung pada saldo saat ini, saldo yang didelegasikan, atau snapshot saldo historis.

Pustaka implementasi ERC-20 saat ini mencakup ekstensi voting ERC-20 untuk delegasi dan kueri suara historis.

Memiliki token tata kelola tidak selalu mengaktifkan hak suara secara otomatis karena beberapa sistem mewajibkan delegasi.

Voting token juga dapat dipengaruhi oleh konsentrasi kepemilikan, aset pinjaman, tingkat partisipasi rendah, dan izin administrator.

Standar inti ERC-20 tidak menetapkan aturan tata kelola.

Share Vault ERC-20

Token ERC-20 dapat merepresentasikan share dalam vault tokenisasi.

Setiap share merepresentasikan klaim proporsional atas aset yang dikelola vault, bukan unit tetap dari token dasar.

Standar vault tokenisasi ERC-4626 memperluas ERC-20 dengan fungsi deposit, penarikan, mint, penebusan, dan konversi yang terstandar.

Nilai dasar share vault dapat meningkat atau menurun sesuai kinerja strategi, biaya, kerugian, dan aturan pencatatan.

Kompatibilitas ERC-20 saja tidak menjelaskan apa yang mendukung token share atau bagaimana token tersebut dapat ditebus.

Pesan Kesalahan ERC-20

Standar ERC-20 asli dibuat sebelum adanya custom error Solidity dan tidak menetapkan kumpulan pesan kegagalan standar.

Token yang berbeda dapat mengembalikan

false
, dibatalkan dengan pesan teks, dibatalkan dengan custom error, atau berperilaku keliru.

Standar ERC-6093 berstatus Final dan menetapkan custom error terstruktur untuk kegagalan token yang umum.

Contohnya mencakup saldo tidak mencukupi, pengirim tidak valid, penerima tidak valid, allowance tidak mencukupi, pemberi persetujuan tidak valid, dan spender tidak valid.

Error terstandar dapat membantu wallet dan aplikasi menjelaskan kegagalan dengan lebih konsisten.

ERC-6093 tidak mengubah antarmuka inti ERC-20 atau mewajibkan setiap token yang sudah ada untuk menggunakan error tersebut.

Apakah ERC-20 Menggunakan ERC-165?

Standar ERC-20 asli tidak mewajibkan deteksi antarmuka ERC-165.

Aplikasi tidak dapat berasumsi bahwa pemanggilan

supportsInterface
akan mengidentifikasi setiap token ERC-20.

Perangkat lunak biasanya mengenali kompatibilitas melalui ABI kontrak, source code terverifikasi, daftar token yang dikenal, data registri, dan pengujian fungsi secara langsung.

Keberadaan selector fungsi yang familiar tidak membuktikan kepatuhan penuh terhadap standar.

Kontrak berbahaya dapat meniru sebagian antarmuka sambil menerapkan perilaku yang merugikan atau tidak terduga.

ERC-20 vs. ETH Native

ETH adalah aset kripto native Ethereum dan bukan token ERC-20.

Akun Ethereum dapat mengirim ETH native melalui transfer nilai pada tingkat protokol.

Saldo ERC-20 berada di dalam masing-masing smart contract.

Pembayaran biaya transaksi Ethereum memerlukan ETH meskipun aset yang ditransfer adalah token ERC-20, kecuali sistem terpisah menyubsidi atau mengabstraksi biaya tersebut.

Representasi ETH dalam bentuk ERC-20 dapat dibuat untuk aplikasi yang memerlukan antarmuka token, tetapi aset wrapped tersebut tetap berbeda dari ETH native.

ERC-20 vs. ERC-721

ERC-20 merepresentasikan saldo fungibel, sedangkan ERC-721 merepresentasikan non-fungible token dengan identitas tersendiri.

Akun ERC-20 memiliki jumlah unit yang dapat dipertukarkan.

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

ERC-20 umumnya menggunakan format desimal, sedangkan satu token ERC-721 biasanya ditransfer sebagai satu unit unik yang utuh.

ERC-721 juga mencakup pemeriksaan penerima untuk transfer aman yang tidak ada dalam standar inti ERC-20.

ERC-20 vs. ERC-1155

ERC-20 mengelola satu jenis token fungibel per antarmuka kontrak.

ERC-1155 memungkinkan satu kontrak mengelola banyak ID token dengan saldo terpisah.

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

ERC-1155 juga menetapkan operasi transfer batch dan callback penerima.

Standar yang paling sesuai bergantung pada apakah proyek memerlukan satu aset fungibel atau banyak jenis aset yang dikelola oleh satu kontrak.

Kasus Penggunaan Umum ERC-20

Token bernilai stabil dapat menggunakan ERC-20 untuk merepresentasikan unit yang dapat ditransfer dan terhubung dengan cadangan, sistem kolateral, atau mekanisme algoritmik.

Sistem tata kelola dapat menggunakan saldo ERC-20 atau unit yang didelegasikan sebagai hak suara.

Game blockchain dapat menggunakan token ERC-20 sebagai mata uang, reward, atau sumber daya yang dapat dipertukarkan.

Vault dan sistem staking dapat menerbitkan token tanda terima ERC-20 yang merepresentasikan posisi yang disetorkan.

Aset wrapped dapat menggunakan ERC-20 untuk merepresentasikan klaim atas aset yang disimpan di tempat lain.

Proyek juga dapat menggunakan standar ini untuk poin loyalitas, kredit akses, unit pembayaran, atau klaim finansial yang ditokenisasi.

Antarmuka ini tidak menentukan apakah penggunaan tertentu sah, didukung aset sepenuhnya, terdesentralisasi, atau berkelanjutan secara ekonomi.

Risiko Smart Contract ERC-20

Implementasi ERC-20 dapat mengandung kesalahan pada logika transfer, allowance, minting, burning, pajak, atau kontrol akses.

Administrator dengan hak istimewa mungkin dapat menjeda transfer, membekukan saldo, memblokir alamat, mencetak suplai, mengubah biaya, atau meng-upgrade kontrak.

Upgrade proxy dapat mengubah perilaku token setelah pemegang memilikinya.

Panggilan eksternal dalam logika token khusus dapat menimbulkan risiko reentrancy atau penolakan layanan.

Integrasi yang keliru dapat menyebabkan hilangnya dana meskipun token itu sendiri berperilaku sesuai kodenya.

Kepatuhan terhadap standar meningkatkan interoperabilitas, tetapi tidak menggantikan audit, pengujian, peninjauan source code, dan analisis izin.

Phishing Persetujuan Token

Phishing persetujuan berupaya membujuk pengguna untuk mengotorisasi spender berbahaya.

Antarmuka dapat menjelaskan tindakan tersebut sebagai verifikasi, koneksi, kelayakan reward, atau pemulihan akun.

Setelah persetujuan dikonfirmasi, spender dapat menggunakan

transferFrom
untuk mengambil token hingga batas allowance.

Tanda tangan permit dapat memberikan wewenang serupa tanpa transaksi persetujuan on-chain langsung dari korban.

Pengguna sebaiknya memverifikasi kontrak token, alamat spender, jumlah allowance, jaringan, dan tujuan setiap persetujuan atau permit.

Frasa pemulihan atau kunci privat tidak boleh dimasukkan ke aplikasi untuk membatalkan allowance ERC-20.

Penipuan Transfer Token

Penipu dapat mengirim token ERC-20 yang tidak dikenal ke wallet tanpa izin pemiliknya.

Nama, simbol, atau metadata token dapat memuat situs web atau klaim yang menyesatkan.

Berinteraksi dengan situs yang diiklankan dapat memicu persetujuan atau tanda tangan berbahaya.

Penyerang juga dapat membuat alamat yang secara visual menyerupai alamat dalam riwayat transaksi pengguna.

Pengguna sebaiknya menyalin alamat terverifikasi dari catatan tepercaya, bukan memilih tujuan hanya karena karakter awal dan akhirnya cocok.

Menerima token yang tidak dikenal tidak mengharuskan pemilik wallet berinteraksi dengannya.

Cara Developer Menerapkan ERC-20

Developer umumnya sebaiknya memulai dengan implementasi yang telah ditinjau dan aktif dipelihara.

Panduan pengembangan ERC-20 terkini menyediakan kontrak inti dan ekstensi untuk permit, batas suplai, burn, jeda, voting, wrapping, vault, dan fungsi lainnya.

Pembuatan suplai harus dinyatakan secara jelas dan dilindungi dengan kontrol akses yang sesuai.

Penyesuaian transfer harus mempertahankan invarian saldo, suplai, peristiwa, dan allowance.

Developer sebaiknya menguji transfer bernilai nol, nilai maksimum, saldo tidak mencukupi, allowance tidak mencukupi, minting, burning, persetujuan, dan transfer yang melibatkan alamat tidak lazim.

Integrasi juga sebaiknya diuji dengan token yang mengembalikan false, tidak mengembalikan nilai, memiliki biaya transfer, rebasing, dijeda, atau mendukung callback jika aset tersebut didukung.

Cara Pengguna Mengevaluasi Token ERC-20

Langkah pertama adalah memverifikasi jaringan blockchain dan alamat kontrak token lengkap.

Langkah kedua adalah memeriksa suplai saat ini, klaim suplai maksimum, dan wewenang minting.

Langkah ketiga adalah meninjau izin administrator, jeda, pembekuan, daftar blokir, biaya, dan upgrade.

Langkah keempat adalah mengetahui apakah token didukung aset lain dan bagaimana penebusannya dilakukan.

Langkah kelima adalah memeriksa biaya transfer, perilaku rebasing, pembatasan, dan dampak yang tidak lazim pada wallet.

Langkah keenam adalah meninjau audit, source code terverifikasi, dan riwayat insiden tanpa menganggap audit sebagai jaminan.

Langkah ketujuh adalah memeriksa konsentrasi kepemilikan, likuiditas yang tersedia, dan kondisi yang dapat menyebabkan likuiditas menghilang.

Langkah kedelapan adalah memahami sumber permintaan atau imbal hasil yang sebenarnya, bukan mengandalkan identitas merek token.

Langkah kesembilan adalah memeriksa persetujuan sebelum dan sesudah menggunakan smart contract yang tidak dikenal.

Langkah kesepuluh adalah menguji token atau kontrak baru dengan jumlah terbatas sebelum mengekspos dana dalam jumlah signifikan.

Contoh Transfer ERC-20

Misalkan Alice memiliki 500 unit token ERC-20 dan ingin mengirim 75 unit kepada Bob.

Wallet Alice mengonfirmasi blockchain, kontrak token, alamat penerima, jumlah, dan biaya transaksi yang benar.

Wallet mengirimkan transaksi yang memanggil fungsi

transfer
token tersebut.

Kontrak token memverifikasi bahwa Alice memiliki setidaknya 75 unit.

Kontrak mengurangi saldo Alice menjadi 425 unit dan menambah saldo Bob sebanyak 75 unit.

Kontrak mengeluarkan peristiwa

Transfer
yang mencantumkan alamat Alice, alamat Bob, dan jumlah yang ditransfer.

Validator Ethereum memasukkan transaksi ke dalam blok dan node memverifikasi perubahan status yang dihasilkan secara independen.

Setelah dikonfirmasi, wallet dan aplikasi dapat membaca saldo terbaru dari kontrak token.

Contoh Persetujuan ERC-20

Misalkan Alice ingin vault menggunakan 100 unit token ERC-20 untuk melakukan deposit atas namanya.

Alice terlebih dahulu memverifikasi alamat kontrak vault dan token yang akan digunakan.

Ia memanggil

approve
dan memberikan allowance 100 unit kepada vault.

Kontrak token mencatat allowance dan mengeluarkan peristiwa

Approval
.

Alice kemudian memanggil fungsi deposit vault.

Vault menggunakan

transferFrom
untuk memindahkan 100 unit dari Alice ke dalam vault.

Kontrak token memeriksa saldo Alice dan allowance vault sebelum menyelesaikan transfer.

Setelah transfer, allowance yang digunakan biasanya berkurang sesuai implementasi token.

Kesalahan Umum ERC-20

Salah satu kesalahan umum adalah mengidentifikasi token hanya berdasarkan nama atau simbolnya.

Kesalahan lain adalah menganggap semua token ERC-20 menggunakan 18 desimal.

Kesalahan ketiga adalah memberikan persetujuan tanpa batas kepada kontrak yang tidak tepercaya.

Kesalahan keempat adalah percaya bahwa memutus koneksi wallet akan mencabut allowance token.

Kesalahan kelima adalah mengabaikan nilai Boolean yang dikembalikan atau perilaku transfer token yang tidak standar.

Kesalahan keenam adalah mengkreditkan deposit dengan biaya transfer berdasarkan jumlah yang diminta, bukan jumlah yang diterima.

Kesalahan ketujuh adalah menganggap

totalSupply
membuktikan adanya batas suplai permanen.

Kesalahan kedelapan adalah menganggap kepatuhan ERC-20 membuktikan dukungan kolateral atau nilai penebusan.

Kesalahan kesembilan adalah menandatangani permit tanpa memeriksa spender, jumlah, dan tenggat waktu.

Kesalahan kesepuluh adalah menganggap audit atau source code terverifikasi menjamin token tidak akan gagal.

FAQ

Apa arti ERC-20?

ERC-20 adalah standar Ethereum yang menetapkan fungsi dan peristiwa umum untuk token smart contract fungibel.

Apakah ERC-20 merupakan mata uang kripto?

ERC-20 adalah standar teknis, sedangkan kontrak individual yang menerapkan standar ini dapat membuat token mata uang kripto.

Apakah ERC-20 sama dengan Ethereum?

Tidak. Ethereum adalah jaringan blockchain, sedangkan ERC-20 adalah antarmuka smart contract yang digunakan token di jaringan tersebut.

Apakah ETH merupakan token ERC-20?

Tidak. ETH adalah aset native Ethereum dan tidak menggunakan antarmuka kontrak ERC-20.

Apakah token ERC-20 fungibel?

Ya. Unit yang sama dari satu token ERC-20 biasa dapat dipertukarkan berdasarkan aturan pencatatan kontrak.

Apa saja enam fungsi inti ERC-20?

Fungsi tersebut adalah

totalSupply
,
balanceOf
,
transfer
,
allowance
,
approve
, dan
transferFrom
.

Peristiwa apa yang ditetapkan ERC-20?

Standar ini menetapkan peristiwa

Transfer
dan
Approval
.

Apakah name, symbol, dan decimals wajib?

Tidak. Ketiga fungsi metadata tersebut bersifat opsional dalam spesifikasi ERC-20 asli.

Apakah semua token ERC-20 menggunakan 18 desimal?

Tidak. Nilai 18 umum digunakan, tetapi setiap token dapat menggunakan jumlah desimal yang berbeda.

Apa fungsi persetujuan ERC-20?

Persetujuan memberi spender izin untuk mentransfer token dari pemilik hingga batas allowance tertentu.

Untuk apa transferFrom digunakan?

Fungsi ini memungkinkan spender yang diotorisasi mentransfer token dari pemilik ke penerima.

Apa itu persetujuan ERC-20 tanpa batas?

Persetujuan ini menetapkan allowance ke nilai maksimum yang sangat besar agar spender dapat terus mentransfer token tanpa persetujuan berulang.

Apakah memutus koneksi wallet mencabut persetujuan?

Tidak. Allowance on-chain tetap aktif sampai diubah melalui kontrak token atau tidak lagi berlaku karena alasan lain.

Apa itu permit ERC-20?

Permit adalah pesan bertanda tangan ERC-2612 opsional yang membuat atau mengubah allowance tanpa mengharuskan pemilik mengirim sendiri transaksi persetujuan.

Bisakah token ERC-20 di-mint?

Bisa, jika implementasinya memiliki mekanisme minting dan pihak atau kondisi protokol yang diotorisasi dapat menggunakannya.

Bisakah token ERC-20 di-burn?

Bisa, jika implementasinya memiliki logika kontrak untuk menghancurkan unit token.

Apakah ERC-20 mewajibkan suplai tetap?

Tidak. Kebijakan suplai ditentukan oleh implementasi masing-masing token.

Bisakah transfer ERC-20 mengenakan biaya?

Bisa. Token khusus dapat memotong biaya transfer meskipun perilaku ini tidak diwajibkan oleh standar inti.

Bisakah saldo ERC-20 berubah tanpa transfer?

Bisa. Rebasing dan model pencatatan khusus lainnya dapat mengubah saldo yang dilaporkan tanpa transfer biasa dari pemegang.

Bisakah token ERC-20 terjebak dalam kontrak?

Bisa. Fungsi transfer inti tidak mewajibkan kontrak penerima mengonfirmasi bahwa kontrak tersebut dapat menangani atau mengembalikan token.

Apakah ERC-20 mendukung deteksi antarmuka ERC-165?

Tidak. Spesifikasi ERC-20 asli tidak mewajibkan ERC-165.

Apakah ERC-20 menjamin token memiliki dukungan aset?

Tidak. Standar ini tidak memverifikasi cadangan, kolateral, hak penebusan, atau solvabilitas.

Apakah kepatuhan ERC-20 membuat token aman?

Tidak. Token yang kompatibel tetap dapat memiliki izin berbahaya, kode yang bermasalah, dukungan aset yang lemah, likuiditas rendah, atau operator jahat.

Bagaimana pengguna dapat mengidentifikasi token ERC-20 yang benar?

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

Apa manfaat utama ERC-20?

Manfaat utamanya adalah interoperabilitas melalui antarmuka bersama yang dipahami banyak wallet dan smart contract kripto.

Kesimpulan

ERC-20 adalah standar dasar Ethereum untuk token smart contract fungibel.

Standar ini menetapkan metode umum untuk memeriksa suplai dan saldo, mentransfer token, serta memberikan wewenang penggunaan token kepada pihak lain.

Peristiwa

Transfer
dan
Approval
memungkinkan aplikasi kripto memantau pergerakan token dan izin.

Fungsi metadata opsional menyediakan nama, simbol, dan pengaturan desimal token, tetapi nilai-nilai tersebut tidak membuktikan keaslian.

Standar ini tidak menentukan cara suplai dibuat, apakah token didukung aset, siapa yang mengendalikan administrasi, atau apakah aset tersebut memiliki nilai finansial.

Ekstensi dapat menambahkan permit bertanda tangan, voting, jeda, batas suplai, callback, fungsi vault, error terstandar, dan fitur lainnya.

Persetujuan tetap menjadi salah satu risiko terbesar bagi pengguna karena spender berbahaya dapat menggunakan allowance aktif melalui

transferFrom
.

Developer harus memperhitungkan nilai balik false, token yang tidak mengembalikan nilai, biaya transfer, rebasing, callback, jumlah desimal yang tidak lazim, dan pembatasan khusus.

Pengguna sebaiknya memverifikasi alamat kontrak, meninjau izin, memahami wewenang minting dan upgrade, serta memeriksa dukungan aset dan desain ekonomi token.

Kompatibilitas ERC-20 menciptakan bahasa teknis bersama, tetapi tidak menggantikan keamanan smart contract, pemeriksaan transaksi yang cermat, atau riset finansial independen.
Menarik Kembali / Peluang?
Menarik Kembali / Peluang?Menarik Kembali / Peluang?
Simak arus masuk ETF BTC $2,4 miliar pada likuidasi