

Ethereum didirikan oleh Vitalik Buterin pada tahun 2014 dan memosisikan dirinya sebagai platform open-source untuk peluncuran aplikasi terdesentralisasi (DApps). Banyak motivasi Buterin dalam menciptakan blockchain baru berasal dari keterbatasan fleksibilitas protokol Bitcoin.
Sejak peluncurannya, blockchain Ethereum telah menarik minat pengembang, pelaku bisnis, dan wirausaha, memicu tumbuhnya industri pengguna yang meluncurkan smart contract dan aplikasi terdistribusi.
Artikel ini membahas standar ERC-20, kerangka penting dalam pembuatan token. Walaupun khusus untuk jaringan Ethereum, kerangka ini juga menjadi inspirasi bagi standar blockchain lain di berbagai platform.
Dalam Ethereum, ERC adalah singkatan dari Ethereum Request for Comments. Ini adalah dokumen teknis yang memuat standar pemrograman di Ethereum. Jangan disamakan dengan Ethereum Improvement Proposals (EIP), yang seperti BIP pada Bitcoin, berisi saran peningkatan protokol. ERC justru menetapkan konvensi yang memudahkan aplikasi dan kontrak untuk saling berinteraksi.
Ditulis oleh Vitalik Buterin dan Fabian Vogelsteller pada tahun 2015, ERC-20 menawarkan format sederhana untuk token berbasis Ethereum. Dengan mengikuti kerangka ini, pengembang tidak perlu membuat ulang dari awal, melainkan dapat membangun di atas fondasi yang telah digunakan di industri.
Setelah token ERC-20 baru dibuat, token tersebut langsung interoperabel dengan layanan dan perangkat lunak yang mendukung standar ERC-20, termasuk dompet perangkat lunak, dompet perangkat keras, dan bursa.
Perlu diketahui bahwa standar ERC-20 kemudian dikembangkan menjadi EIP (khususnya EIP-20). Transisi ini terjadi beberapa tahun setelah proposal pertama karena adopsi yang luas. Namun, meski telah berevolusi, istilah "ERC-20" tetap menjadi terminologi standar.
Berbeda dengan ETH (mata uang kripto asli Ethereum), token ERC-20 tidak disimpan langsung di akun. Token hanya ada di dalam kontrak, yang berfungsi seperti basis data mandiri. Kontrak ini menentukan aturan token (misal: nama, simbol, tingkat pembagian) dan menjaga daftar yang memetakan saldo pengguna ke alamat Ethereum mereka.
Untuk memindahkan token, pengguna harus mengirim transaksi ke kontrak untuk mengalokasikan sebagian saldonya ke pihak lain. Misalnya, jika Alice ingin mengirim 5.000 token ke Bob, ia memanggil fungsi di smart contract terkait untuk melakukan aksi tersebut.
Pemanggilan ini berada dalam transaksi Ethereum biasa yang mengirimkan 0 ETH ke kontrak token. Pemanggilan fungsi tercatat di field tambahan transaksi, yang menjelaskan tujuan Alice—dalam hal ini, mentransfer token ke Bob.
Meski Alice tidak mengirim ether, ia tetap harus membayar biaya dalam ETH agar transaksinya tercatat di blok. Jika tidak punya ETH, Alice harus memilikinya terlebih dahulu sebelum dapat mentransfer token.
Setelah memahami dasarnya, mari kita lihat struktur kontrak ERC-20 yang umum lebih detail.
Kontrak agar sesuai standar ERC-20 harus mencakup enam fungsi wajib: totalSupply, balanceOf, transfer, transferFrom, approve, dan allowance. Selain itu, pengembang dapat menambahkan fungsi opsional seperti name, symbol, dan decimal.
function totalSupply() public view returns (uint256)
Fungsi ini, saat dipanggil, mengembalikan total pasokan token yang dikelola kontrak.
function balanceOf(address _owner) public view returns (uint256 balance)
Berbeda dengan totalSupply, balanceOf menerima satu parameter (alamat). Fungsi ini akan mengembalikan saldo token pada alamat tersebut. Karena akun di jaringan Ethereum bersifat publik, siapa pun dapat memeriksa saldo pengguna lain selama mengetahui alamatnya.
function transfer(address _to, uint256 _value) public returns (bool success)
Fungsi transfer memindahkan token dari satu pengguna ke pengguna lain. Pemanggil fungsi harus menentukan alamat tujuan dan jumlah token yang akan dikirimkan.
Saat dipanggil, transfer memicu sebuah event (event transfer), yang meminta blockchain mencatat referensi transaksi tersebut.
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
Fungsi transferFrom adalah alternatif yang memperluas kemampuan transfer untuk otomatisasi aplikasi terdesentralisasi. Seperti transfer, fungsi ini memindahkan token, namun token tersebut tidak harus milik pemanggil kontrak.
Artinya, pengguna dapat mengizinkan pihak lain—atau kontrak lain—untuk mentransfer dana atas nama mereka. Contoh penggunaannya adalah layanan berlangganan, di mana pembayaran dapat dilakukan otomatis tanpa intervensi manual pengguna.
Fungsi ini memicu event yang sama dengan transfer.
function approve(address _spender, uint256 _value) public returns (bool success)
Fungsi approve sangat penting dalam pemrograman. Dengan fungsi ini, pengguna dapat membatasi jumlah token yang dapat ditarik smart contract dari saldo mereka. Tanpa mekanisme ini, kontrak berisiko mengalami malfungsi atau eksploitasi yang dapat mencuri seluruh dana pengguna.
Pada model langganan, misalnya, pengguna dengan banyak token bisa mengatur pembayaran mingguan ke layanan streaming DApp secara otomatis.
Jika saldo pengguna melebihi kebutuhan langganan, ia bisa menetapkan batas dengan approve. Contohnya, jika langganan butuh satu token per minggu, pengguna dapat membatasi hingga dua puluh token—cukup untuk lima bulan pembayaran otomatis.
Jika DApp berupaya menarik semua dana atau terjadi bug, pengguna hanya mungkin kehilangan dua puluh token. Hal ini jauh lebih baik daripada kehilangan seluruh saldo.
Saat dipanggil, approve memicu event approval yang tercatat di blockchain.
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
Fungsi allowance berjalan bersama approve. Saat pengguna sudah memberi izin kontrak mengelola tokennya, mereka dapat mengecek sisa token yang bisa ditarik. Misal, jika langganan telah menggunakan dua belas dari dua puluh token yang disetujui, fungsi allowance akan menampilkan sisa delapan token.
Fungsi sebelumnya bersifat wajib. Namun name, symbol, dan decimal adalah opsional namun membuat kontrak ERC-20 lebih ramah pengguna. Ketiganya memungkinkan penambahan nama yang mudah dibaca, simbol (misal: ETH, BTC, dsb.), dan pengaturan jumlah desimal token. Token yang digunakan sebagai mata uang dapat memerlukan pembagian lebih banyak dibanding token yang mewakili aset fisik.
Dengan seluruh fungsi di atas, pengembang dapat membuat kontrak ERC-20 yang fungsional. Kontrak ini memungkinkan pengguna memeriksa total pasokan, mengecek saldo, mentransfer dana, dan memberikan izin pada DApp lain untuk mengelola token atas nama mereka.
Daya tarik utama token ERC-20 adalah fleksibilitasnya. Konvensi yang ada tidak membatasi pengembangan, sehingga pihak pengembang dapat menambahkan fitur dan mengatur parameter sesuai kebutuhan spesifik.
Stablecoin (token yang nilainya dipatok ke mata uang fiat) sering menerapkan standar ERC-20, dengan sebagian besar stablecoin utama berformat demikian.
Pada stablecoin dengan jaminan fiat, penerbit memegang cadangan mata uang fiat. Untuk setiap unit di cadangan, diterbitkan token yang setara. Misal, dengan cadangan $10.000 di brankas, penerbit dapat membuat 10.000 token yang masing-masing dapat ditukar dengan $1.
Penerapan ini sederhana secara teknis di Ethereum. Penerbit meluncurkan kontrak dengan jumlah token yang diinginkan dan mendistribusikannya ke pengguna dengan janji token dapat ditukar dengan jumlah fiat proporsional.
Pengguna dapat menggunakan token untuk bertransaksi barang dan jasa, digunakan di DApp, atau menukarnya kembali ke penerbit. Saat token ditukarkan, penerbit membakar token yang dikembalikan dan menarik jumlah fiat yang sesuai dari cadangan.
Kontrak yang mengatur sistem ini sederhana. Namun, meluncurkan stablecoin memerlukan penanganan logistik dan kepatuhan regulasi yang kompleks.
Security token secara struktur mirip dengan stablecoin. Pada tingkat kontrak, keduanya dapat bekerja identik. Namun, perbedaannya terletak pada penerbit. Security token merepresentasikan sekuritas seperti saham, obligasi, atau aset fisik. Sering kali, token ini memberikan hak kepemilikan pada bisnis atau aset tertentu.
Utility token adalah tipe token yang paling banyak ditemukan di ekosistem kripto. Tidak seperti kedua tipe sebelumnya, token ini tidak didukung aset eksternal. Jika token berbasis aset seperti saham maskapai, utility token mirip dengan program frequent flyer: berfungsi spesifik, namun tidak memiliki nilai eksternal yang melekat. Utility token dapat digunakan sebagai mata uang dalam game, bahan bakar aplikasi terdesentralisasi, poin loyalitas, dan berbagai fungsi lainnya.
Meski ether (ETH) dapat ditambang, token ERC-20 tidak dapat ditambang—token baru disebut minted. Saat kontrak diluncurkan, pengembang mendistribusikan pasokan sesuai rencana dan roadmap mereka.
Distribusi biasanya dilakukan melalui Initial Coin Offering (ICO), Initial Exchange Offering (IEO), atau Security Token Offering (STO). Meski terdapat berbagai istilah, konsep dasarnya sama. Investor mengirim ether ke alamat kontrak dan menerima token baru. Dana yang terkumpul digunakan untuk pengembangan proyek. Pengguna bisa menggunakan token secara langsung, di masa mendatang, atau menjualnya kembali saat proyek berkembang.
Distribusi token tidak harus otomatis. Banyak crowdfunding memungkinkan pembayaran beragam mata uang digital, lalu saldo dialokasikan ke alamat peserta sesuai kontribusi.
Token ERC-20 bersifat dapat dipertukarkan—setiap unit bisa digantikan satu sama lain. Tidak ada perbedaan antara satu token dan token lain, sehingga bisa ditukar tanpa mengubah nilai, layaknya uang tunai atau emas.
Karakteristik ini ideal bagi token yang berfungsi sebagai mata uang. Jika setiap unit memiliki ciri khusus, statusnya berubah menjadi non-fungible dan hal ini dapat menyebabkan perbedaan nilai antar token, mengurangi fungsinya sebagai alat tukar.
Sebagaimana dibahas sebelumnya, token ERC-20 sangat mudah diadaptasi untuk berbagai aplikasi. Token ini dapat menjadi mata uang dalam game, program poin loyalitas, koleksi digital, hingga mewakili karya seni dan hak kepemilikan properti.
Popularitas ERC-20 di industri kripto menjadi alasan kuat untuk mengadopsinya. Banyak bursa, dompet, dan smart contract yang sudah kompatibel dengan token baru. Dukungan pengembang dan dokumentasi pun sangat tersedia.
Seperti jaringan kripto lain, Ethereum mengalami tantangan skalabilitas. Dalam kondisinya saat ini, Ethereum belum efisien dalam skala besar—transaksi di waktu sibuk bisa sangat mahal dan lambat. Jika token ERC-20 diluncurkan saat jaringan sibuk, kegunaannya bisa sangat terganggu.
Ini bukan masalah unik Ethereum, melainkan trade-off pada sistem terdistribusi yang aman. Komunitas merencanakan upgrade dan perbaikan jaringan untuk solusi skala ini.
Bukan masalah teknis, namun kemudahan membuat token juga membawa risiko. Hanya dengan sedikit usaha, siapa pun bisa membuat token ERC-20—untuk tujuan sah maupun tidak sah.
Karena itu, pengguna harus berhati-hati dalam berinvestasi. Banyak skema piramida dan ponzi yang bertopeng proyek blockchain. Lakukan riset menyeluruh sebelum berinvestasi untuk memastikan legalitas dan keamanan peluang yang ada.
ERC-20 adalah standar token Ethereum pertama dan masih paling populer, tapi bukan satu-satunya. Seiring waktu, banyak standar lain lahir baik untuk meningkatkan ERC-20 maupun tujuan berbeda.
Beberapa standar kurang umum digunakan untuk token non-fungible (NFT). Pada beberapa kasus, token unik dengan atribut berbeda justru dibutuhkan. Jika ingin mentokenisasi karya seni unik atau aset game, tipe kontrak alternatif bisa lebih cocok.
Standar ERC-721, misalnya, digunakan untuk DApp CryptoKitties. Kontrak ini menyediakan API bagi pengguna untuk mencetak NFT sendiri dan mencantumkan metadata seperti gambar dan deskripsi.
ERC-1155 dapat dianggap sebagai pengembangan ERC-721 dan ERC-20 karena mendukung token fungible dan non-fungible dalam satu kontrak.
Standar lain seperti ERC-223 dan ERC-621 berfokus pada peningkatan kemudahan penggunaan. ERC-223 menambah perlindungan dari transfer token tidak sengaja, sementara ERC-621 menambah fungsi untuk menambah dan mengurangi pasokan token.
Standar ERC-20 telah mendominasi dunia aset kripto selama bertahun-tahun dan alasannya jelas. Dengan kemudahan, siapa pun bisa meluncurkan kontrak sederhana untuk beragam kebutuhan, dari utility token hingga stablecoin. Namun, ERC-20 memang belum memiliki beberapa fitur standar lain. Waktu akan membuktikan apakah standar token berikutnya akan menggantikannya sebagai standar industri.
Token ERC-20 adalah aset digital standar yang dibangun di blockchain Ethereum sesuai aturan teknis tertentu. Berbeda dengan mata uang kripto asli seperti Bitcoin, token ERC-20 dibuat melalui smart contract dan merepresentasikan nilai dalam jaringan Ethereum, memungkinkan tokenomik dan use case khusus.
Token ERC-20 beroperasi lewat smart contract di Ethereum. Token mengikuti protokol standar yang memungkinkan transfer, pelacakan saldo, dan persetujuan transaksi. Setiap transaksi tercatat di blockchain, memastikan transparansi dan keamanan, serta memudahkan pengguna mengirim dan menerima token.
ERC-20 mendefinisikan antarmuka standar untuk token yang dapat dipertukarkan di Ethereum. Fitur utama meliputi: transfer antar alamat, mekanisme persetujuan pengeluaran, pelacakan saldo, manajemen total pasokan, dan pencatatan event. Standar ini memastikan interoperabilitas di seluruh dompet dan aplikasi terdesentralisasi.
Gunakan smart contract Solidity di Ethereum. Deploy melalui Remix IDE atau Hardhat, implementasikan antarmuka standar ERC-20 beserta fungsi mint dan transfer, lalu publikasikan ke mainnet. Diperlukan biaya gas untuk deployment.
ERC-20 adalah standar token fungible di Ethereum untuk aset yang dapat dipertukarkan. BEP-20 adalah standar serupa di Binance Smart Chain. ERC-721 menciptakan token non-fungible (NFT) dengan karakteristik unik. Perbedaan utama: token ERC-20 identik dan terpecah, sedangkan ERC-721 unik dan tidak dapat dibagi.
Risiko utama meliputi kerentanan smart contract, serangan phishing, pencurian private key, dan token palsu. Gunakan dompet yang aman, verifikasi alamat kontrak, aktifkan autentikasi dua faktor, dan hanya bertransaksi di platform resmi untuk melindungi aset Anda.











