Token approval
Tóm lại Token approval là quyền bạn cấp cho smart contract để di chuyển một lượng token nhất định từ ví, thường cần trước khi swap hoặc deposit.
Trên các chain EVM như Ethereum, BNB Chain và Base, contract không thể lấy token ERC-20 ra khỏi ví của bạn nếu bạn chưa approve trước. Một approval, còn gọi là allowance, cho token contract biết rằng một địa chỉ spender cụ thể được phép chuyển tối đa một lượng nhất định thay mặt bạn. Đó là lý do DEX yêu cầu bạn approve token trước lần swap đầu tiên.
Về mặt kỹ thuật, bạn gọi approve(spender, amount) trên token contract và nó ghi lại allowance. Sau đó spender có thể gọi transferFrom bất cứ lúc nào, tối đa đến mức đó, mà không cần bạn xác nhận thêm. Nhiều ứng dụng yêu cầu số lượng không giới hạn để tiết kiệm gas cho các giao dịch sau. Một số token còn hỗ trợ chữ ký permit, tạo approval bằng chữ ký off-chain thay vì một giao dịch. Solana dùng cơ chế delegate hoạt động tương tự, dù ở đó các ứng dụng thường di chuyển token ngay trong chính giao dịch mà bạn ký.
Approval quan trọng vì nó tồn tại lâu hơn thời điểm bạn cấp quyền. Nếu contract được approve là độc hại, bị khai thác sau này hoặc bị upgrade, nó có thể lấy token của bạn nhiều tháng sau khi bạn dùng. Wallet drainer và các trang phishing dựa vào việc khiến bạn approve hoặc ký permit cho những token giá trị nhất của mình.
Chỉ approve đúng số lượng cần dùng khi ứng dụng cho phép, và đọc kỹ địa chỉ spender cùng số lượng mà ví hiển thị. Đặc biệt cẩn thận với các yêu cầu ký có nhắc đến permit, vì chúng trông vô hại nhưng lại cấp quyền truy cập. Định kỳ kiểm tra các approval đang hoạt động bằng approval checker của block explorer hoặc công cụ revoke, và hủy những cái không còn dùng; revoke tốn một khoản phí gas nhỏ.




