凌晨一点,小林收到TPWallet弹窗。一笔USDT转出,金额不大的,他没操作。他先查了转账记录,收款地址陌生的。

往上一翻,三天前授权过一个“空投领取”页面。链上显示的是approve,额度就是无限大。问题不在转账那一刻,但在更早的签名。TPWallet授权解除的很重要。是找到这个spender地址,但不是删掉DApp书签。小林在TPWallet的“授权管理”里切到对应公链,列表里果然有那个合约,授权时间、代币、额度都对得上。他点了取消授权,钱包弹出矿工费确认。有人以为点“拒绝”就能解,实际必须发一笔链上交易了。

把allowance改成0。等了几十秒吧?状态从pending变success。

TPWallet授权解除完成后,他又用区块浏览器复查了一遍,spender的额度归零。那笔已转出的钱追不回来,后续扣款停了。这里有个细节,TPWallet内置列表没显示,可以复制钱包地址到Revoke.cash或对应链的授权查询工具,手动连钱包操作。我见过更常见的情况,用户卸载TPWallet,或者把DApp网站关掉的,就以为授权没了。链上权限不依赖App是否安装呢?它只认地址和合约。TPWallet授权解除更像一次权限清算是定期看授权列表。

把不用的、无限额的、来源不明的都撤掉。小额钱包和主钱包分开,也能把损失压到最低。不要等下一笔扣款出现了,才想起那个早就忘记的签名。