Pasokan total ERC-20 dan saldo dompet: angka mana milik Anda?
Pasokan token dan saldo akun menjawab pertanyaan berbeda. Pilih kolom baca saja yang tepat sebelum membandingkan angka.
Untuk token ERC-20, balanceOf(account) melaporkan saldo yang tercatat untuk satu akun. totalSupply() melaporkan pasokan total kontrak token. Pasokan besar pada halaman token bukan berarti kepemilikan besar di akun Anda.
Jika Anda membuka penjelajah blockchain untuk memeriksa kepemilikan, pilih saldo akun. Untuk memeriksa jumlah unit total yang dilaporkan kontrak, pilih pasokan. Masing-masing angka saja tidak menunjukkan nilai dolar, membuktikan kendali atas alamat, atau memastikan token aman.
Satu kontrak, dua pertanyaan berbeda
Spesifikasi ERC-20 mendefinisikan keduanya sebagai metode baca saja yang terpisah. totalSupply() tidak menerima input akun. balanceOf membutuhkan alamat yang saldonya ingin diperiksa. Kontrak token yang Anda panggil menentukan aset yang ditanyakan.
| Pembacaan | Input selain kontrak token | Pertanyaan yang dijawab |
|---|---|---|
totalSupply() |
Tidak ada | Berapa pasokan yang dilaporkan kontrak ini? |
balanceOf(account) |
Alamat akun publik | Berapa saldo yang tercatat untuk akun ini? |
Misalnya, bayangkan token dengan pasokan 1000 unit, dan Akun A memiliki 25 unit. Hasil yang benar adalah pasokan 1000 dan saldo Akun A 25. Perbedaan itu wajar. Tidak ada kepemilikan 975 unit yang hilang dan perlu dipulihkan.
Angka ini dibuat untuk penjelasan, bukan pembacaan token aktif. Jika Anda belum yakin alamat mana yang menunjukkan akun dan mana yang menunjukkan aset, baca panduan alamat dompet dan kontrak token sebelum membaca salah satu kolom.
Apa yang mengubah saldo dan apa yang mengubah pasokan?
Pertimbangkan token hipotetis sederhana dengan transfer biasa tanpa biaya atau pencatatan khusus. Mulai dengan 25 token di Akun A dan 975 di Akun B:
| Peristiwa | Akun A | Akun B | Pasokan total |
|---|---|---|---|
| Keadaan awal | 25 | 975 | 1000 |
| A mengirim 5 ke B | 20 | 980 | 1000 |
| 100 token baru dicetak ke B | 20 | 1080 | 1100 |
| B membakar 10 melalui fungsi pembakaran | 20 | 1070 | 1090 |
Transfer mengubah siapa yang memegang unit. Pencetakan menciptakan unit, sedangkan pembakaran melalui mekanisme contoh menghapus unit. Referensi ERC20 OpenZeppelin mendokumentasikan pencatatan pencetakan dan pembakarannya, termasuk pengurangan pasokan saat pembakaran.
Tabel ini menggambarkan model sederhana tersebut. Token dapat menyesuaikan transfer atau memakai aturan pencatatan lain. Jangan menganggap pengiriman token ke alamat berlabel “dead” sebagai bukti bahwa totalSupply() turun: pastikan apakah kontrak benar-benar mengurangi pasokan. Label alamat tidak menjalankan fungsi pembakaran.
Demikian pula, saldo Anda dapat tetap sama saat pasokan berubah di tempat lain. Panduan pasokan OpenZeppelin menjelaskan bahwa ERC-20 menyerahkan mekanisme pasokan kepada implementasi. Pembacaan pasokan saat ini tidak membuktikan bahwa pencetakan di masa depan mustahil.
Baca kedua angka tanpa memindahkan token
Baca kedua angka dari kontrak token yang sama di jaringan yang sama. Prosedur berikut adalah usulan pemeriksaan, bukan laporan pengujian dompet untuk artikel ini. Dokumentasi primer diperiksa pada 23 Oktober 2026.
- Catat jaringan dan alamat kontrak token lengkap. Cocokkan alamat kontrak dengan informasi penerapan resmi penerbit. Simbol yang sama di jaringan berbeda belum cukup untuk perbandingan yang setara.
- Catat akun publik yang ingin diperiksa. Ambil dari rincian akun tersebut. Bedakan dari kontrak token. Pelacakan publik juga berlaku bagi akun yang tidak Anda kendalikan, sehingga pencarian yang berhasil tidak membuktikan kepemilikan.
- Buka penjelajah atau pembaca kontrak tepercaya untuk jaringan itu. Pilih antarmuka baca saja untuk kontrak token yang telah diverifikasi. Baca
totalSupply(), lalubalanceOfdengan alamat akun sebagai input. Label antarmuka bervariasi; gunakan nama fungsi untuk mengenali pertanyaannya. - Simpan keadaan saat pembacaan bersama hasilnya. Catat nomor blok jika tersedia. Sebaiknya kedua panggilan dilakukan pada blok yang sama. Pembacaan “latest” terpisah dapat melihat keadaan berbeda jika terjadi transfer, pencetakan, atau pembakaran di antaranya.
- Catat satuan sebelum membandingkan. Simpan respons mentah dan perhatikan apakah antarmuka sudah memformatnya. Panggilan gagal berarti data tidak tersedia, bukan saldo nol.
Dokumentasi ERC-20 Ethereum memperlihatkan panggilan terpisah untuk pasokan dan saldo akun. Anda tidak perlu meniru persiapan lingkungan pengembangnya untuk memahami hasil yang dibutuhkan. Penjelajah dengan metode baca publik dapat menyediakan kategori informasi yang sama.
Membaca keadaan publik tidak memerlukan transfer atau persetujuan token. Jika halaman meminta frasa pemulihan atau tanda tangan untuk menampilkan nilai ini, hentikan alur tersebut. Keduanya bukan input perbandingan ini.
Gunakan satuan yang sama untuk kedua angka
Pasokan dan saldo akun menggunakan skala pencatatan token yang sama. Penjelasan desimal OpenZeppelin secara eksplisit mencakup pemformatan keduanya. Untuk token hipotetis dengan 6 desimal yang sudah diverifikasi, pasokan mentah 1000000000 mewakili 1000 token dan saldo mentah 25000000 mewakili 25 token.
Jangan bandingkan pasokan mentah dengan saldo yang sudah diformat. Jangan membagi lagi angka yang sudah dikonversi antarmuka. Panduan desimal ERC-20 membahas penentuan skala, metadata yang tidak tersedia, dan pembulatan. Di sini, penyamaan skala hanya prasyarat untuk membandingkan dua ukuran berbeda; hal itu tidak menjadikannya sama.
Hal yang tidak bisa dipastikan dari angka pasokan
totalSupply() ERC-20 bukan perhitungan pasokan beredar yang terstandar. Penyedia dapat mengecualikan bagian tertentu saat memperkirakan peredaran. Metodologinya harus menjelaskan pengecualian itu; Anda tidak dapat memperolehnya hanya dengan mengganti nama respons kontrak. Pasokan maksimum adalah pertanyaan lain. OpenZeppelin mendokumentasikan ekstensi batas pasokan, tetapi ERC-20 sendiri tidak mewajibkan setiap token memiliki fitur tersebut.
Hasil juga terkait dengan penerapan dan keadaan spesifik yang Anda baca. Hasil tidak otomatis menggabungkan token lintas chain, token terbungkus, atau kontrak terkait. Menjumlahkan penerapan bernama serupa dapat menghasilkan angka tanpa makna jelas kecuali hubungan dan pencatatannya ditetapkan secara terpisah.
Untuk memeriksa portofolio, simpan catatan akhir singkat: jaringan, kontrak token, akun, blok, saldo, dan satuan. Tambahkan pasokan hanya jika menjawab pertanyaan terpisah. Jika saldo akun 25 token dan pasokan kontrak 1000, pertahankan kedua label beserta angkanya. Perbedaannya tidak berarti token hilang dari akun.
Pertanyaan umum
Apakah totalSupply menunjukkan jumlah token di dompet saya?
Tidak. totalSupply melaporkan pasokan total kontrak token. balanceOf menerima alamat akun dan melaporkan saldo yang tercatat untuk akun itu. Keduanya harus merujuk pada kontrak token dan jaringan yang dimaksud.
Apakah totalSupply sama dengan pasokan beredar atau pasokan maksimum?
Tidak. ERC-20 tidak mendefinisikan perhitungan pasokan beredar dan tidak mewajibkan kolom pasokan maksimum. Angka peredaran dari penyedia membutuhkan metodologi sendiri; batas pasokan harus dibuktikan dari implementasi token.
Bisakah angka ini diperiksa tanpa menghubungkan dompet?
Bisa. Panggilan kontrak publik yang hanya membaca membutuhkan kontrak token, jaringan, dan alamat akun publik untuk balanceOf. Membaca nilai ini tidak memerlukan transfer, persetujuan token, frasa pemulihan, atau tanda tangan dompet.