Setiap kali Anda berinteraksi dengan aplikasi terdesentralisasi — menukar token, menyediakan likuiditas, mencetak NFT — Anda hampir pasti menandatangani persetujuan token. Persetujuan itu memberi izin kepada smart contract untuk memindahkan token Anda atas nama Anda, sering kali tanpa batas pengeluaran dan tanpa tanggal kadaluarsa. Jika kontrak tersebut kemudian dieksploitasi, diperbarui ke versi jahat, atau sekadar ditinggalkan, penyerang dapat menguras dompet Anda tanpa Anda menandatangani apa pun yang baru. Memahami cara mengaudit dan mencabut persetujuan tersebut di MetaMask dan Rabby Wallet adalah salah satu kebiasaan keamanan paling praktis yang dapat dibangun oleh pemegang kripto. Panduan ini memandu Anda melalui langkah-langkah yang tepat di kedua dompet, menjelaskan alat yang tersedia, dan memberi tahu Anda apa yang harus diprioritaskan terlebih dahulu.
Mengapa Persetujuan Token Adalah Risiko Berkelanjutan
Persetujuan token diatur oleh fungsi approve() ERC-20 dan fungsi setApprovalForAll() ERC-721/ERC-1155. Ketika Anda memanggil approve(spender, amount), Anda memberi otorisasi kepada alamat spesifik — biasanya smart contract — untuk mentransfer hingga amount token dari dompet Anda kapan saja di masa depan. Dokumentasi pengembang Ethereum Foundation mengkonfirmasi bahwa persetujuan tetap berlaku selamanya kecuali secara eksplisit dicabut oleh pemilik token.
Konsekuensi praktisnya: dompet mengumpulkan puluhan atau ratusan persetujuan aktif seiring waktu. Postmortem 2022 tentang eksploitasi Badger DAO, yang mengakibatkan kerugian sekitar $120 juta, menunjukkan bahwa skrip yang disuntikkan penyerang memanfaatkan persetujuan tak terbatas yang ada yang tidak pernah dicabut pengguna. Token tidak pernah meninggalkan kepemilikan pengguna melalui transaksi jahat yang mereka tandatangani — persetujuan yang mereka tandatangani berbulan-bulan sebelumnya yang menyebabkan kerusakan.
Cara Mencabut Persetujuan Token Langsung di MetaMask
MetaMask menambahkan antarmuka manajemen persetujuan bawaan di ekstensinya. Jalurnya sedikit berbeda antara ekstensi browser dan aplikasi seluler.
Ekstensi Browser MetaMask (v11+)
- Buka MetaMask dan klik menu tiga titik di sudut kanan atas.
- Pilih Settings → Security & Privacy.
- Gulir ke Token Approvals dan klik View on Explorer — ini akan mengarahkan ulang ke alat Token Approvals Etherscan untuk alamat yang terhubung.
- Atau, navigasikan ke Activity, temukan transaksi persetujuan asli, dan gunakan tautan Etherscan untuk menemukan kontrak spender.
MetaMask sendiri tidak menampilkan dasbor persetujuan lengkap di dalam ekstensi pada awal 2026; itu mengandalkan block explorer untuk daftar lengkap. Artikel Basis Pengetahuan MetaMask berjudul “How to revoke smart contract allowances/token approvals” mendokumentasikan alur ini secara eksplisit.
Menggunakan Alat Token Approvals Etherscan
- Pergi ke etherscan.io/tokenapprovalchecker dan hubungkan dompet Anda.
- Alat ini mencantumkan setiap persetujuan ERC-20 aktif yang dikelompokkan berdasarkan token, menunjukkan alamat spender dan jumlah yang disetujui.
- Klik Revoke di sebelah persetujuan apa pun yang ingin Anda hapus. MetaMask akan meminta Anda mengonfirmasi transaksi yang memanggil
approve(spender, 0), menetapkan tunjangan ke nol. - Bayar biaya gas untuk mengonfirmasi. Persetujuan dihapus on-chain setelah transaksi ditambang.
Etherscan juga mendukung persetujuan NFT ERC-721 melalui antarmuka yang sama. Setiap pencabutan adalah transaksi on-chain terpisah dengan biaya gas tersendiri.
Cara Mencabut Persetujuan Token di Rabby Wallet
Rabby Wallet, dikembangkan oleh DeBank, dilengkapi dengan dasbor manajemen persetujuan asli — salah satu fitur keamanan yang paling dikutip. Tidak seperti pendekatan pengalihan MetaMask, Rabby menampilkan persetujuan tanpa meninggalkan UI dompet.
Manajemen Persetujuan Bawaan Rabby
- Buka ekstensi browser Rabby dan klik tab Approvals di bilah sisi (ikon perisai).
- Rabby mengambil dan mengkategorikan persetujuan Anda di semua rantai EVM yang terhubung secara bersamaan — Ethereum, Arbitrum, Base, Polygon, dan lainnya.
- Setiap entri menunjukkan token, nama kontrak spender (jika dapat diidentifikasi), jumlah yang disetujui, dan skor risiko. Rabby menandai kontrak yang ditandai sebagai berisiko oleh mesin keamanannya.
- Klik Revoke di sebelah persetujuan apa pun. Konfirmasi transaksi dalam prompt dompet.
Dokumentasi Rabby menjelaskan fitur ini di bawah “Approval Management” di pusat bantuan resminya. Tampilan lintas rantai sangat berguna karena banyak pengguna lupa persetujuan yang diberikan di jaringan Layer 2 di mana gas murah dan persetujuan ditandatangani secara kasual.
Alat Pencabutan Pihak Ketiga yang Patut Diketahui
Dua alat tambahan banyak digunakan dan patut untuk disimpan sebagai penanda buku bersama fitur asli dompet Anda.
- Revoke.cash — Alat sumber terbuka (lisensi MIT, sumber di GitHub) yang mendukung lebih dari 80 rantai kompatibel EVM. Ini menampilkan persetujuan token dan NFT, mengurutkan berdasarkan tingkat risiko, dan memungkinkan pencabutan batch di mana jaringan mendukungnya. Dokumentasi proyek mencatat bahwa ia membaca data langsung dari log on-chain dan tidak memerlukan email atau pembuatan akun.
- Pemindai persetujuan DeBank — Terintegrasi ke dalam antarmuka portofolio DeBank. Karena Rabby dibangun di atas infrastruktur DeBank, data yang ditampilkan di kedua alat konsisten.
Saat menggunakan alat pihak ketiga apa pun, verifikasi domain dengan hati-hati sebelum menghubungkan dompet Anda. Situs phishing yang meniru Revoke.cash telah muncul di iklan pencarian — selalu navigasikan dari URL yang disimpan sebagai penanda buku atau halaman GitHub yang terverifikasi proyek.
Apa yang Harus Diprioritaskan Saat Mengaudit Persetujuan
Dompet dengan 200 persetujuan tidak memerlukan 200 pencabutan. Terapkan pendekatan triage:
- Persetujuan tak terbatas terlebih dahulu. Persetujuan apa pun yang menunjukkan “Unlimited” atau angka yang sangat besar (mis., 2^256 − 1, nilai uint256 maksimum) harus ditinjau segera. Ini adalah entri risiko tertinggi.
- Protokol yang tidak aktif atau sudah usang. Jika Anda tidak lagi menggunakan protokol, cabut persetujuannya. Bahkan kontrak yang diaudit dapat diperbarui atau kepemilikan ditransfer.
- Alamat spender yang tidak dikenal atau tidak terverifikasi. Jika Etherscan atau Rabby tidak dapat mengidentifikasi kontrak spender dengan nama, anggap sebagai risiko yang ditinggikan.
- Hibah setApprovalForAll NFT. Ini memungkinkan kontrak untuk mentransfer setiap NFT dalam koleksi dari dompet Anda. Cabut ini kecuali Anda secara aktif menggunakan marketplace atau kontrak yang disetujui.
Realitas Biaya Gas Pencabutan Persetujuan
Setiap pencabutan adalah transaksi on-chain. Di jaringan utama Ethereum, mencabut persetujuan ERC-20 biasanya mengonsumsi sekitar 45.000–60.000 gas. Dengan harga gas sedang ini biayanya berkisar dari sebagian kecil dari dolar hingga beberapa dolar. Di jaringan Layer 2 seperti Arbitrum atau Optimism, biayanya dapat diabaikan — sering kali di bawah satu sen.
Jika Anda memiliki banyak persetujuan untuk dicabut di mainnet, pertimbangkan mengelompokkan pekerjaan selama beberapa sesi selama periode gas rendah (biasanya larut malam UTC pada hari kerja, menurut data gas Ethereum historis). Beberapa alat seperti Revoke.cash mendukung transaksi multi-revoke di rantai yang menerapkan pola gaya permit EIP-2612, tetapi pencabutan ERC-20 standar memerlukan transaksi individual.
Apa Arti Ini untuk Anda
Kebersihan persetujuan token bukan tugas satu kali — ini adalah praktik berulang. Setelah sesi DeFi yang signifikan, luangkan dua menit di tab Approvals Rabby atau Revoke.cash untuk menghapus persetujuan yang tidak lagi Anda butuhkan. Jika Anda terutama menggunakan MetaMask, simpan Etherscan Token Approvals Checker sebagai penanda buku dan jalankan setiap bulan. Prioritaskan persetujuan tak terbatas dan persetujuan yang diberikan kepada kontrak yang tidak lagi Anda berinteraksi. Biaya gas pencabutan persetujuan hampir selalu kurang dari biaya posisi yang dieksploitasi tunggal.
Baik MetaMask maupun Rabby terus meningkatkan alat persetujuan asli mereka — roadmap Q4 2025 MetaMask mereferensikan visibilitas persetujuan in-wallet yang ditingkatkan — tetapi tidak ada dompet yang mencegah Anda memberikan persetujuan di tempat pertama. Tanggung jawab untuk mengaudit dan mencabut mereka tetap berada di tangan Anda.
