﻿---
title: "Mengapa dompet dapat menampilkan saldo token yang salah?"
description: "Penyebab perbedaan saldo dan cara aman memverifikasi status on-chain."
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.

# Mengapa dompet dapat menampilkan saldo token yang salah?

> Hanya untuk tujuan edukasi; bukan saran investasi. Aset digital dan transaksi on-chain dapat menyebabkan kerugian permanen.

<a id="answer"></a>
## Jawaban langsung

Saldo dompet adalah tampilan turunan, bukan sumber kebenaran terakhir tentang kepemilikan token. Dompet biasanya menggabungkan pembacaan status RPC, indeks peristiwa, metadata token, harga, filter spam, dan cache lokal. Setiap lapisan dapat usang, menunjuk jaringan atau kontrak yang salah, atau keliru menafsirkan token. Token yang tidak tampil belum tentu hilang, dan angka yang terlihat tidak membuktikan token dapat ditransfer, ditebus, atau bernilai.

Untuk ERC-20 biasa, titik awal terkuat adalah hasil `balanceOf` untuk akun yang tepat, pada blok tertentu di jaringan yang benar. Hasil itu tetap hanya menyatakan unit berdasarkan aturan kontrak. Token rebase, saham vault, aset wrapped, dan posisi protokol mungkin memerlukan konversi tambahan untuk menentukan hak ekonomi atau jumlah yang kini dapat ditebus.

<a id="mechanism"></a>
## Cara kerja

- **Status kontrak:** node RPC menjalankan `balanceOf` lewat `eth_call` terhadap status blok yang dipilih.
- **Indeks peristiwa:** layanan memindai log `Transfer` untuk menemukan token, menyusun riwayat, dan memperbarui kepemilikan dalam cache.
- **Metadata dan valuasi:** `decimals`, simbol, daftar token, kurs, dan feed harga mengubah bilangan mentah menjadi jumlah tampilan dan nilai fiat.
- **Kebijakan antarmuka:** dompet dapat menyembunyikan aset yang belum diverifikasi atau spam, menggabungkan akun, tertinggal dari head chain, atau mempertahankan cache lama.

ERC-20 mendefinisikan pembacaan saldo dan mewajibkan `Transfer` untuk transfer standar. Namun, basis data berbasis peristiwa dapat melewatkan atau menggandakan log, mulai mengindeks setelah blok penting, salah menangani reorganisasi, atau keliru memahami akuntansi khusus implementasi. Peristiwa adalah bukti perubahan status, bukan pengganti pembacaan status saat ini. Karena itu, cocokkan log dengan `balanceOf`; nilai `decimals` yang salah juga membuat bilangan mentah yang benar terlihat keliru.

Pemilihan blok juga penting. JSON-RPC menerima `latest`, `safe`, dan `finalized`, sementara tiap penyedia dapat berada pada head chain yang berbeda. EIP-1898 mengikat bacaan terkait pada satu hash blok dan, bila diminta, mengharuskan blok tersebut kanonis. Tanpa referensi blok yang sama, dua bacaan valid dapat menggambarkan status berbeda saat sinkronisasi atau reorganisasi.

1. Pastikan jaringan dan `chainId`; saldo asal dan tujuan bridge berada pada buku besar yang berbeda.
2. Ambil alamat kontrak dari sumber proyek tepercaya atau registri terverifikasi. Jangan mengenali token dari simbol saja.
3. Pastikan alamat akun, standar token, dan apakah asetnya token dasar, wrapped, saham vault, atau receipt protokol.
4. Tanyakan `balanceOf` ke dua penyedia RPC independen pada nomor atau hash blok yang sama; catat bilangan mentah dan `decimals` yang dilaporkan kontrak secara terpisah.
5. Periksa receipt, status, alamat kontrak, log, dan blok kanonis. Bandingkan status sebelum dan sesudah pada blok eksplisit, bukan hanya notifikasi dompet.
6. Untuk aset rebase atau berbasis saham, gunakan metode konversi dan penebusan dalam dokumentasi. Pada ERC-4626, `balanceOf` melaporkan saham dan `convertToAssets` hanya memperkirakan aset dasar, bukan selalu harga penebusan yang tepat.

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

Explorer menunjukkan transfer ke Lina berhasil, tetapi dompetnya tetap menampilkan nol. Ia memeriksa chain, kontrak, dan penerima, lalu meminta dua RPC independen membaca blok final yang sama. Jika keduanya memberi `balanceOf` positif yang sama, receipt kanonis, dan log berasal dari kontrak yang diharapkan, indeks, filter, atau cache terlambat. Mengimpor kontrak terverifikasi atau menunggu pembaruan pengindeks lebih tepat daripada mengirim transaksi lain.

Jika `balanceOf` kontrak terverifikasi nol, bandingkan `balanceOf` pada jaringan antarmuka; entri tersebut mungkin memakai kontrak lain dengan simbol sama atau data lama jaringan lain. Pada vault, saldo saham dapat benar tetapi nilai aset berbeda karena dompet belum menerapkan konversi protokol terkini.

<a id="risks"></a>
## Risiko dan kontrol

- **Jaringan atau alamat salah:** periksa `chainId`, akun lengkap, dan kontrak lengkap sebelum transaksi koreksi.
- **Data RPC usang atau tidak konsisten:** bandingkan penyedia independen pada satu blok eksplisit; jangan campur pembacaan `latest` dari waktu berbeda.
- **Reorganisasi:** perlakukan blok baru sebagai sementara sesuai model finalitas chain dan periksa kembali receipt kanonis.
- **Celah indeks:** pindai ulang dari blok yang diketahui dan cocokkan log dengan status; pengindeks harus membatalkan blok yatim, bukan hanya menambah peristiwa.
- **Akuntansi khusus:** jangan bangun ulang saldo rebase, vault, atau receipt dari jumlah `Transfer` tanpa dokumentasi protokol.
- **Kesalahan metadata atau harga:** pisahkan unit mentah, jumlah token, dan nilai fiat; harga tidak mengubah saldo on-chain, sedangkan `decimals` mengubah tampilannya.
- **Token atau antarmuka jahat:** melihat saldo tidak memerlukan persetujuan atau tanda tangan. Tolak tautan pemulihan, izin, atau transaksi tak diminta yang mengaku menyegarkan saldo.

Jika masih berbeda, hentikan transfer dan simpan jaringan, akun, kontrak, nomor serta hash blok, respons RPC mentah, dan hash transaksi. Periksa apakah penyedia mendukung blok yang diminta dan apakah upgrade proxy, pause, rebase, migrasi, atau finalisasi bridge mengubah akuntansi yang diharapkan. Eskalasikan melalui kanal dukungan publik tanpa membagikan seed phrase atau kunci privat.

Saldo benar tidak menjamin jalan keluar. Sebelum bertindak atas aset asing, periksa secara terpisah batas transfer, kemampuan penebusan, likuiditas, biaya, dan izin kontrak. Lakukan simulasi atau uji kecil hanya setelah kontrak terverifikasi; menaikkan Gas atau slippage berulang kali tidak memperbaiki kesalahan indeks.

<a id="misconceptions"></a>
## Kesalahpahaman umum

- **“Layar adalah blockchain.”** Itu tampilan gabungan.
- **“Jumlah Transfer selalu sama dengan saldo.”** Indeks atau model token dapat berbeda.
- **“Konfirmasi memperbarui dompet.”** Konfirmasi tidak memaksa cache.
- **“Saldo positif pasti dapat dijual.”** Batasan atau likuiditas dapat mencegahnya.
- **“Saldo perlu tanda tangan.”** Bacaan publik tidak memerlukannya.

<a id="related"></a>
## Topik terkait

- [Standar ERC-20](/id/crypto/erc20/)
- [Node RPC](/id/crypto/rpc-node/)
- [Reorganisasi chain](/id/crypto/chain-reorg/)
- [Token rebase](/id/crypto/rebasing-token/)
- [Verifikasi kontrak token](/id/crypto/token-contract-verification/)

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

- [ERC-20: Standar Token](https://eips.ethereum.org/EIPS/eip-20) - Ethereum Improvement Proposals (diakses: 2026-08-21)
- [JSON-RPC API](https://ethereum.org/developers/docs/apis/json-rpc/) - Ethereum.org (diakses: 2026-08-21)
- [EIP-1898: Menambahkan blockHash ke defaultBlock](https://eips.ethereum.org/EIPS/eip-1898) - Ethereum Improvement Proposals (diakses: 2026-08-21)
- [ERC-4626: Vault Tertokenisasi](https://eips.ethereum.org/EIPS/eip-4626) - Ethereum Improvement Proposals (diakses: 2026-08-21)

Source: https://wiki.fcontext.com/id/crypto/token-balance-indexing-risk/index.mdx
