﻿---
title: "ERC-20"
description: "ERC-20 adalah antarmuka standar Ethereum untuk token yang dapat dipertukarkan. Pelajari cara kerja saldo, transfer, allowance, dan persetujuan, serta hal-hal yang tidak dijamin oleh standar ini."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ERC-20

> Hanya untuk tujuan edukasi; bukan merupakan nasihat investasi atau rekomendasi investasi. Investasi dapat mengakibatkan kerugian.

<a id="answer"></a>

## Jawaban langsung

ERC-20 adalah antarmuka standar untuk kontrak token yang dapat dipertukarkan di Ethereum. Standar ini memungkinkan dompet, bursa, dan aplikasi terdesentralisasi menggunakan pemanggilan yang sama untuk membaca suplai atau saldo, mentransfer token, dan memberi alamat lain wewenang untuk membelanjakan jumlah terbatas. Dapat dipertukarkan berarti unit-unit bernilai sama dari token yang sama dimaksudkan untuk saling menggantikan.

Antarmuka inti mencakup:

- `totalSupply` dan `balanceOf` untuk membaca suplai dan saldo akun;
- `transfer` untuk mengirim token milik pemanggil;
- `approve` dan `allowance` untuk menetapkan dan membaca batas pembelanja;
- `transferFrom` untuk membelanjakan saldo pemilik dalam batas tersebut; dan
- peristiwa `Transfer` dan `Approval` untuk mencatat transfer dan persetujuan.

Standar ini menetapkan interoperabilitas, bukan kualitas aset. Kepatuhan terhadap ERC-20 tidak menjamin suplai tetap, nilai pasar yang wajar, kemampuan penebusan, likuiditas, administrasi yang aman, atau bahkan perilaku yang sama di berbagai implementasi.

<a id="mechanism"></a>

## Cara kerja

Saldo ERC-20 adalah entri dalam status kontrak token yang dikaitkan dengan sebuah alamat. Dompet menampilkan status tersebut; dompet tidak menyimpan berkas token terpisah. Saat `transfer(to, amount)` berhasil, kontrak mengurangi saldo pemanggil, menambah saldo penerima, dan memancarkan peristiwa `Transfer`. Pengguna biasanya membayar gas jaringan dalam ETH. Jika eksekusi dibatalkan, perubahan status token diurungkan, tetapi gas yang sudah terpakai tidak dikembalikan sepenuhnya.

Pembelanjaan yang didelegasikan menggunakan allowance. Pemanggilan `approve(spender, amount)` menetapkan jumlah yang boleh digunakan pembelanja dari saldo pemanggil. Pembelanja kemudian dapat memanggil `transferFrom(owner, to, amount)`, sedangkan `allowance(owner, spender)` melaporkan batas yang tersisa. Persetujuan berlaku untuk satu pasangan pemilik-pembelanja dalam satu kontrak token di satu jaringan; persetujuan itu bukan izin atas setiap aset di dalam dompet.

Memanggil `approve` lagi akan menimpa allowance sebelumnya. Spesifikasi EIP-20 memperingatkan agar antarmuka pengguna menetapkan allowance yang sudah ada menjadi `0` sebelum menetapkan nilai bukan nol yang berbeda, sebab urutan transaksi dapat memungkinkan pembelanja menggunakan batas lama sekaligus batas baru. Menetapkan allowance menjadi `0` dapat menghentikan pemanggilan `transferFrom` berikutnya untuk kombinasi pemilik-pembelanja-token tersebut, tetapi tidak dapat mengembalikan token yang sudah ditransfer.

`name`, `symbol`, dan `decimals` adalah metode metadata opsional dalam EIP-20. `decimals` memengaruhi unit tampilan, bukan pencatatan bilangan bulat kontrak. Standar ini juga tidak menentukan cara token dicetak atau dibakar, apakah transfer dapat dijeda atau dikenai biaya, apakah alamat dapat dibekukan, atau apakah logika proksi dapat ditingkatkan. Perilaku tersebut harus diperiksa pada kode yang diterapkan, implementasi saat ini, dan kewenangan administratif.

<a id="example"></a>

## Contoh

Misalkan sebuah dompet memiliki 1,000 unit token ERC-20 dan pengguna ingin router bursa terdesentralisasi menukar 100 unit. Pengguna terlebih dahulu mengirimkan `approve(router, 100)`. Jika berhasil, router dapat memanggil `transferFrom(user, pool, 100)`; setelah jumlah tersebut dibelanjakan sepenuhnya, allowance biasa yang tersisa adalah 0. Transaksi persetujuan dan transaksi penukaran adalah tindakan on-chain yang terpisah, sehingga masing-masing dapat memerlukan gas dan dapat gagal secara independen.

Menyetujui nilai maksimum yang dimungkinkan dapat menghindari persetujuan berulang, tetapi hal itu membuat jumlah yang lebih besar terpapar lebih lama jika router, pihak yang berwenang meningkatkannya, atau antarmuka yang digunakan untuk memperoleh persetujuan disusupi. Allowance terbatas mempersempit paparan tersebut, meski tidak menghapus risiko kontrak pintar, harga token, likuiditas, atau transaksi.

<a id="risks"></a>

## Risiko

- **Kontrak atau jaringan yang salah:** nama, simbol, dan ikon dapat disalin; verifikasi alamat kontrak pada jaringan yang dituju.
- **Allowance berlebihan:** pembelanja yang berniat jahat atau telah disusupi dapat menggunakan allowance yang belum terpakai hingga batas yang disetujui.
- **Perilaku nonstandar:** beberapa token yang banyak digunakan tidak mengembalikan nilai tepat seperti yang diharapkan, sementara token lain mengenakan biaya transfer, menyesuaikan ulang saldo, memblokir alamat, atau menjeda transfer.
- **Kendali administratif:** pencetakan, pembekuan, peningkatan, atau tindakan istimewa lainnya dapat mengubah risiko token setelah pengguna memperolehnya.
- **Transfer yang tidak dapat dipulihkan:** mengirim token ke alamat yang salah atau ke kontrak yang tidak dapat menanganinya dapat membuat pemulihan mustahil dilakukan.

Standardisasi ERC-20 mengurangi hambatan integrasi; standardisasi ini tidak menghapus risiko kontrak, penerbit, kustodi, pasar, atau operasional. Sebelum menandatangani, periksa jaringan, kontrak token, alamat pembelanja, jumlah persetujuan, dan pemanggilan transaksi.

<a id="misconceptions"></a>

## Kesalahpahaman umum

### Mitos 1: Label ERC-20 membuktikan bahwa sebuah token sah

Siapa pun dapat menerapkan kontrak dengan nama atau simbol yang sudah dikenal. Label tersebut hanya menjelaskan klaim antarmuka. Verifikasi alamat kontrak, lalu nilai kode, kewenangan, penerbit, likuiditas, dan pasarnya secara terpisah.

### Mitos 2: Persetujuan langsung mentransfer token yang disetujui

`approve` biasanya mengubah allowance; fungsi ini tidak dengan sendirinya memindahkan token kepada pembelanja. Pemanggilan `transferFrom` berikutnya yang memindahkannya. Meskipun demikian, allowance yang masih berlaku adalah izin nyata yang dapat terus digunakan hingga dibelanjakan, diganti, atau ditetapkan menjadi `0`.

### Mitos 3: Setiap token ERC-20 berperilaku sama

Standar ini menetapkan antarmuka umum minimum. Standar ini tidak mewajibkan kebijakan suplai tertentu ataupun melarang biaya, penjedaan, daftar hitam, penyesuaian ulang saldo, atau kemampuan peningkatan. Integrasi harus memperhitungkan implementasi sebenarnya, bukan hanya mengandalkan label ERC-20.

<a id="related"></a>

## Topik terkait

- [Dompet pemulihan sosial](/id/crypto/social-recovery-wallet/)
- [Standar token](/id/crypto/token-standard/)
- [Apa perbedaan antara koin dan token?](/id/crypto/token-vs-coin/)
- [Persetujuan dompet](/id/crypto/wallet-approval/)
- [ZK Rollup](/id/crypto/zk-rollup/)

<a id="sources"></a>

## Sumber

- [ERC-20: Standar Token](https://eips.ethereum.org/EIPS/eip-20) - Ethereum Improvement Proposals (diakses: 2026-08-20)
- [Standar Token ERC-20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) - Ethereum.org (diakses: 2026-08-20)

Source: https://wiki.fcontext.com/id/crypto/erc20/index.mdx
