Panduan Hasil Nyata DeFi

Cara Cek Izin Token (Approval) di Dompet dan Kapan Sebaiknya Dicabut

Izin token tidak hilang saat Anda menarik likuiditas. Cara membaca daftar approval di dompet, memahami arti jumlah Unlimited dan Permit2, serta memilih izin mana yang layak dicabut lebih dulu.

Cara Cek Izin Token (Approval) di Dompet dan Kapan Sebaiknya Dicabut

Ringkasan jawaban

Menekan "Approve" di sebuah aplikasi DeFi bukan memindahkan dana, tetapi memberi izin kepada satu alamat kontrak untuk mengambil token Anda sampai jumlah tertentu, kapan saja, sampai izin itu dicabut. Sebagian besar aplikasi meminta izin dalam jumlah tak terbatas supaya Anda tidak perlu menandatangani ulang setiap transaksi. Izin itu tidak hilang ketika Anda menarik likuiditas, menjual token, atau mengosongkan dompet — ia tetap tercatat di kontrak token. Karena itu pemeriksaan izin sebaiknya menjadi kebiasaan rutin, bukan tindakan darurat setelah ada kabar protokol diretas.

Daftar izin token di revoke.cash untuk satu alamat publik di jaringan Ethereum: dua izin aktif, masing-masing berjumlah Unlimited dengan Uniswap sebagai approved spender, nilai berisiko 354,21 USD dan 4,87 USD, dengan tombol Revoke di kolom paling kanan.

Cocok untuk siapa

Tulisan ini untuk Anda yang sudah pernah menambah likuiditas, melakukan swap, atau staking, dan ingin tahu jejak izin apa yang tertinggal di dompet. Anda tidak perlu menghubungkan dompet untuk memeriksanya: alamat publik sudah cukup. Yang dibahas adalah cara membaca daftar izin, cara memilih mana yang perlu dicabut, dan berapa biaya yang harus disiapkan. Tulisan ini tidak membahas cara menilai proyek dan tidak menjanjikan bahwa mencabut izin membuat dompet kebal dari penipuan.

Apa yang sebenarnya disetujui saat menekan "Approve"

Standar token ERC-20 memisahkan dua hal: memindahkan token sendiri, dan mengizinkan pihak lain memindahkan token Anda. Fungsi approve(spender, value) menetapkan batas jumlah yang boleh diambil satu alamat, lalu alamat itu bisa memanggil transferFrom berulang kali selama batasnya belum habis. Batas ini disebut allowance dan tersimpan di kontrak token, bukan di dompet Anda.

Tiga akibat yang sering terlewat:

  • Izin tidak punya masa berlaku bawaan. Dalam ERC-20 polos, tidak ada tanggal kedaluwarsa. Izin dari tahun lalu masih berlaku hari ini.
  • Izin menempel pada pasangan token dan spender, bukan pada saldo. Saldo nol hari ini tidak menghapus izin. Jika besok Anda mengisi token yang sama lagi, izin lama langsung berlaku atas saldo baru.
  • Jumlah "Unlimited" berarti seluruh saldo token itu. Nilai yang berisiko bukan sebesar posisi yang dulu Anda buka, melainkan sebesar apa pun yang ada di dompet saat kontrak itu dipanggil.

Pada tangkapan layar di atas, kolom Approved Amount berisi Unlimited untuk kedua token, sementara kolom Value at Risk menunjukkan nilai yang benar-benar bisa diambil saat itu: 354,21 USD dan 4,87 USD. Kalau dompet itu diisi lagi, angka di kolom kanan ikut naik tanpa tanda tangan baru.

Kenapa menarik likuiditas tidak mencabut izin

Menarik likuiditas adalah transaksi yang memindahkan dana kembali kepada Anda. Transaksi itu tidak menyentuh allowance, karena mencabut izin adalah transaksi terpisah: menyetel ulang batas menjadi nol. Jadi urutan yang banyak dipakai — keluar dari pool, lalu anggap selesai — meninggalkan izin aktif pada router dan kontrak pool yang mungkin tidak akan Anda pakai lagi.

Pemeriksaan ini melengkapi, bukan menggantikan, pemeriksaan sebelum masuk. Jika Anda sudah punya aturan keluar yang ditulis sebelum masuk, tambahkan satu baris terakhir: setelah dana ditarik, periksa dan rapikan izin yang tertinggal.

Permit2 dan izin yang punya tanggal kedaluwarsa

Sebagian aplikasi sekarang tidak lagi meminta izin langsung ke setiap kontrak. Uniswap, misalnya, memakai Permit2: Anda memberi satu izin ERC-20 kepada kontrak Permit2, lalu izin untuk tiap aplikasi diberikan lewat tanda tangan di dalam Permit2. Dokumentasi Uniswap menjelaskan bahwa izin model ini menyimpan jumlah sekaligus waktu kedaluwarsa, sehingga spender dapat memanggil transferFrom berulang sampai jumlahnya habis atau sampai izinnya kedaluwarsa.

Dua hal praktis yang perlu disadari:

  • Di daftar izin, yang muncul sebagai approved spender sering adalah kontrak Permit2, bukan nama aplikasi yang Anda pakai. Pada tangkapan layar di atas, kedua baris menunjuk ke satu alamat spender yang sama.
  • Izin berbatas waktu lebih aman daripada izin ERC-20 polos, tetapi izin dasar kepada kontrak Permit2 itu sendiri biasanya tetap tak terbatas dan tanpa kedaluwarsa. Alat pemeriksa izin menampilkan keduanya secara terpisah, jadi periksa dua-duanya.

Cara memeriksa daftar izin di dompet Anda

Bagian atas halaman depan revoke.cash: kolom pencarian bertuliskan Search Accounts by Address or Domain, tombol Connect Wallet di kanan atas, dan panel contoh daftar Approvals milik situs tersebut di sisi kanan.

  1. Salin alamat dompet Anda dari aplikasi dompet. Cukup alamat publik yang diawali 0x; jangan pernah menyalin frasa pemulihan atau kunci privat ke mana pun.
  2. Buka alat pemeriksa izin — misalnya revoke.cash, atau menu Token Approvals pada block explorer jaringan yang Anda pakai seperti Etherscan dan BscScan — lalu tempelkan alamat tadi pada kolom pencarian.
  3. Pilih jaringan yang benar. Izin bersifat per jaringan: izin di BNB Chain tidak terlihat saat Anda membuka tampilan Ethereum, dan sebaliknya.
  4. Baca tiga kolom secara berurutan: jumlah yang disetujui, nilai yang berisiko sekarang, dan alamat spender. Urutkan dari nilai berisiko terbesar.
  5. Cocokkan setiap spender dengan aplikasi yang benar-benar Anda pakai. Jika ada nama yang tidak Anda kenali, buka alamat kontraknya di block explorer sebelum mengambil keputusan.
  6. Tandai izin yang akan dicabut, lalu hubungkan dompet hanya pada tahap ini. Pemeriksaan tidak memerlukan koneksi dompet; pencabutan memerlukannya karena itu transaksi onchain.

Langkah keenam adalah titik paling rawan. Gunakan alamat situs yang Anda ketik sendiri atau Anda simpan sebagai bookmark, bukan tautan dari pesan, komentar, atau iklan di halaman hasil pencarian.

Izin mana yang perlu dicabut lebih dulu

Mencabut semua izin sekaligus jarang masuk akal, karena setiap pencabutan adalah transaksi berbayar. Urutan yang wajar:

  • Cabut lebih dulu: izin tak terbatas pada protokol yang sudah tidak Anda pakai, izin pada kontrak yang pernah diumumkan bermasalah, dan izin pada token dengan nilai berisiko besar di kolom kanan.
  • Boleh menunggu: izin pada aplikasi yang Anda pakai setiap minggu, karena mencabutnya hanya membuat Anda membayar dua kali — sekali mencabut, sekali menyetujui lagi.
  • Tidak mendesak: izin pada token yang nilainya mendekati nol dan tidak akan Anda isi lagi. Nilai berisikonya kecil, sementara biaya pencabutannya tetap.

Pertimbangan ini berbeda dari menilai layak atau tidaknya sebuah protokol sejak awal. Langkah pemeriksaan sebelum dana masuk dibahas terpisah pada cara memeriksa audit smart contract sebelum menaruh dana.

Biaya mencabut izin dan cara menekannya

Mencabut izin berarti mengirim transaksi yang menyetel allowance menjadi nol, jadi biayanya setara satu transaksi approve biasa di jaringan tersebut: jauh lebih murah daripada menambah atau menarik likuiditas, tetapi tetap bukan nol. Dua cara menekannya:

  • Kerjakan secara berkelompok saat jaringan sedang sepi, bukan satu per satu setiap kali Anda teringat.
  • Pada jaringan dengan biaya tinggi, dahulukan izin bernilai berisiko besar; izin receh bisa menunggu sampai Anda punya transaksi lain yang memang harus dikirim.

Cara membaca estimasi biaya sebelum mengonfirmasi, dan alasan biaya ini harus masuk hitungan hasil bersih, dibahas pada biaya gas dan biaya masuk-keluar pool.

Checklist pemeriksaan izin

  • Apakah Anda sudah memeriksa izin di semua jaringan tempat Anda pernah bertransaksi, bukan hanya satu?
  • Apakah ada izin tak terbatas pada protokol yang sudah tidak Anda pakai selama beberapa bulan?
  • Apakah nilai pada kolom nilai berisiko masih wajar dibanding ukuran dompet Anda?
  • Apakah setiap alamat spender bisa Anda kaitkan dengan aplikasi yang benar-benar pernah Anda buka?
  • Untuk aplikasi yang memakai Permit2, apakah izin berbatas waktunya dan izin dasar ke kontrak Permit2 sudah sama-sama diperiksa?
  • Apakah pencabutan dilakukan dari alamat situs yang Anda ketik atau bookmark sendiri?
  • Apakah ada tanggal tetap, misalnya setiap awal bulan, untuk mengulang pemeriksaan ini?

Langkah berikutnya

Catat hasil pemeriksaan bersama angka posisi Anda di Laboratorium Hasil Nyata DeFi: jumlah izin aktif per jaringan, nilai berisiko, dan tanggal pemeriksaan terakhir. Dengan begitu biaya pencabutan ikut terhitung sebagai bagian dari biaya memelihara posisi, bukan pengeluaran yang muncul tiba-tiba.

Sumber utama