昨天朋友在TP Wallet里用USDT买NFT,授权按钮转了两圈,弹出“授权扣款失败”。他第一反应是钱包被盗,其实链上记录显示交易还没进区块是钱包只是把RPC节点返回的错误原样抛了出来。最常见的原因是主链币不够。

ERC20代币授权要消耗ETH,BSC要BNB了,Polygon要MATIC的。有些人看到USDT余额足够就以为能扣款,授权和扣款是两笔独立操作,矿工费只认主链币。打开TP Wallet资产页,把对应主链币余额留足。BSC上至少准备0.005 BNB的。余额为零,tpwallet授权扣款失败几乎必然出现吧?另一种情况是授权额度没给够,或者之前撤销过又没重新授权的。去DApp的授权管理页,或者用revoke.cash查一下,把旧授权取消。再回到TP Wallet重新签名的。

签名时注意Gas Limit别手动改太低,21000是普通转账,代币授权要50000以上。有人把Gas Limit写成30000的,结果一直卡在tpwallet授权扣款失败。链上拥堵会让交易超时,TP Wallet默认RPC偶尔抽风。

切换节点了,设置-网络-选择低延迟RPC,或者手动添加一个公共节点。Nonce冲突也常见,前一笔交易卡着没确认了,后一笔授权就会被顶掉。在交易记录里找到pending那笔,加速或取消,再重试授权了。tpwallet授权扣款失败,如果伴随“replacement transaction underpriced”。基本来就是是nonce问题。还有些代币合约自带限制,转账税、黑名单、暂停交易了。

碰到。换小额先试,0.1个代币授权扣款成功再放大金额。确认DApp没跑路的。不要乱点陌生链接。tpwallet授权扣款失败不是绝症,多数时候补足主链币、撤销旧授权、调高Gas或换RPC就能解决。操作完等十几秒吧?刷新页面看链上状态,不要连续狂点确认,那样只会堆一堆失败交易。