钱包里突然多了不认识的代币:先别点,按合约地址判断能不能卖
陌生代币躺在地址里,不会自己动你的其他资产;让它变危险的,是你顺着它去做的那一步操作。

钱包里多出一笔没买过的代币,不等于被盗。往一个地址转代币,只需要发送方自己签名,你的地址又是公开的,谁都能往里打东西。风险在下一步:你去兑换它、打开它名字里写的网址、在那个网站上签名,或者填了助记词、私钥。
所以要不要点:它名字里写的网址、它引你去的「领取」「兑现」页面,都别点;在钱包里点开代币详情看合约地址没问题,这一步不用签名。能不能卖:要看它是谁发的、有没有真实能成交的市场、卖的时候要你授权什么,有一件答不上来,就让它留在原地。MetaMask 帮助中心对骗局空投的建议也是留着别动。
陌生代币通常从这四条路进来
往别人地址里撒币要花手续费,发送方肯出这笔钱,总是图点什么。按图的东西不同,大致分四类。它们在钱包列表里可能长得差不多,区别要到来源和后续要求里找。
| 来路 | 你在钱包或浏览器里看到的 | 发送方想从你这拿到什么 | 对你意味着什么 |
|---|---|---|---|
| 项目方正式空投 | 一个陌生名字的代币,合约地址能在项目官网或官方公告里找到 | 让更多地址持有、关注这个项目 | 可能有价值,前提是地址对得上官方来源 |
| 广告式撒币 | 代币名称或简介里写着网址、社群账号 | 流量:让你去它的网站或群里 | 代币本身没有意义,名字就是广告位 |
| 诱导型空投 | 名称带「奖励」「领取」一类字样,或者把你引向一个「兑现」页面 | 你在它页面上签下的授权,或者你的助记词 | 冲着你钱包里其他资产来的 |
| 零值转账、仿冒地址 | 转账记录里多出数量为 0 的代币记录,对方地址首尾几位和熟悉的地址一样 | 等你某天从历史记录里复制错地址 | 余额没变,这条记录不用处理 |
四类里只有第一类可能真值钱,但它的真假不能在钱包里判断。判断它的地方在钱包外面:项目官网、官方公告、项目方公布的合约地址。代币自带的网址、名称里写的「官网」、简介里留的社群号,都是发送方自己写的,拿来证明它自己没有意义。同理,一个你是收到这个币才第一次听说的项目,搜它名字找到的官网和公告也可能是发送方自己搭的,证明不了什么。
另外,地址被选中不代表你被人盯上了。链上转账记录人人能查,活跃地址很容易从公开记录里批量收集出来。
转账记录里多了一条 0 数量的记录,是被盗了吗?
不是。这种记录有个专门的名字,Etherscan 叫它零值代币转账攻击(Zero-Value Token Transfer Attack),属于地址投毒的一种。攻击者准备一个首尾若干位字符和目标地址相同的地址,让它出现在你的转账记录里,指望你以后以为自己在和熟悉的地址打交道,把钱转过去。这类记录往往显示成从你自己的地址「转出」:下面截图里 Etherscan 给的示例,被灰掉的几条方向栏标的都是 OUT,是从受害地址转 0 个代币到仿冒地址。一条不是你发起的 0 数量「转出」,同样不需要你签名,也不说明私钥泄露。
它不需要你签名就能出现。EIP-20 标准写明,0 数量的转账也必须当作普通转账处理,并触发 Transfer 事件;钱包和区块浏览器是读这些事件来列记录的,所以一笔什么也没转走的交易,同样会在你的历史里占一行。数量为 0,你的余额也就没有变化,这条记录背后没有能卖的东西。

Etherscan 的做法是把这类转账灰显,并标上灰色的警告图标。官方说明页给看到它的人的第一句话就是别慌:钱包没事,私钥也安全。这一条记录不需要你做任何操作。
要防的是以后。官方的提醒里有两条跟你直接相关:在钱包 App 里,核对显示的地址和你要交互的地址完全一致,不能只看首尾;在 Etherscan 的 Token Transfers 标签里查一条记录时,连同它上下几条一起看,冒充的地址可能就挨在真记录前后。转账前怎么逐字核对地址是另一套流程,这里不展开,只提醒一点:别从转账历史里挑地址复制,冒充地址就是冲着这个习惯来的。
名字谁都能起,认它只看网络和合约地址

MetaMask 帮助中心的代币安全页开头第一条就是:任何人都能铸造代币,想怎么命名就怎么命名。很多恶意代币就是照着热门代币起名,冒充它们。ERC-20 标准里,name 和 symbol 本来就是可选方法,标准还提醒其他合约和界面不能指望这两个值一定存在。两个不同的合约返回同一个名字、同一个代币符号,协议上完全允许,链上没有哪个部门替你审核重名。
所以钱包里显示「USDT」「ETH」或者某个热门项目的名字,证明不了任何事。认一个代币只看两样:它在哪条网络上,完整的合约地址是什么。拿这两样去对项目官网或官方公告公布的地址,逐个字符对上,才算同一个东西。EVM 链和 Solana 的地址怎么对、原生币和包装币怎么区分,另一篇同名代币怎么区分:网络与合约地址讲得更细。
多数钱包点开代币详情能看到合约地址,或者有跳到区块浏览器的入口。到了浏览器的代币页,可以看创建时间、创建者、持币地址数和转账记录。这几项凑不出「它是好币」的结论,但常常足够说明「它不是你以为的那个币」:一个合约地址和官方公布的对不上的「USDT」,不用再往下研究。
两个容易被误读的信号也顺手说一下。持币地址多,对空投代币几乎没有参考价值,撒币就是往大量地址里打,持币数是发送方一手造出来的。合约源码显示「已验证」,只说明公开的源码和部署的代码对得上,不代表发行者可信,也不代表合约里没有限制卖出的逻辑。
名字里写着网址、「领取」的代币
名称既然随便写,发送方把一个网址、「领取奖励」「访问某站兑换」这类文字塞进代币名称,就没有任何门槛。钱包列表里代币名称的位置很显眼,等于一个广告位,而且看到它的都是手里有加密资产的人。
MetaMask 描述的常见空投骗局正是这么运作的:代币本身换不出去,而是把用户引到一个网站,要求填写个人信息,甚至填助记词,说这样才能「兑现」。真实项目要发放代币,领取说明会放在自己的官网和公告里,没有理由靠代币名称给你递网址。名字里带网址的代币,直接归进「不访问」一类,不值得再花时间。
有的版本会换个说法,打「代币迁移」「旧币换新币」的旗号。真实迁移有项目方的正式公告、能核对的新旧合约地址和兑换规则,怎么分辨见代币更名、换币与合约迁移的区别。
为什么出事的是「碰它」,不是「收到它」
收到一个代币,你的钱包什么都没签。要让别人动到你的资产,得你亲手做一件事。MetaMask 在讲空投骗局时列了两条路径:要么被钓鱼,把助记词填进第三方网站;要么在不知情的情况下给了代币授权,对方借这个授权拿走你的代币。两条路的起点,都是你顺着那个陌生代币走进了别人准备好的页面。
授权:你签的是「允许它来拿」
ERC-20 的 approve 方法,标准原文的描述是:允许 spender 从你的账户多次提取,直到设定的数额上限。拿到授权的一方之后调用 transferFrom,就能把代币从你的地址转出去,这一步不需要你再确认。授权签下去的那一刻,你交出的是一个额度内的提取权,不是某一笔具体的转账。授权也不一定是一笔付手续费的交易。支持 EIP-2612 的代币,一条签名请求就能设置授权额度:签名本身不上链、不花手续费,拿到签名的一方自己提交上链就生效。
假设你打开了陌生代币名称里的网址,页面上有个「领取」按钮。按钮背后可以挂任何合约调用,钱包弹出来的可能根本不是领取,而是一条授权请求。对骗子有用的授权,不会是那个本来就不值钱的陌生代币,而是你钱包里真正值钱的那几样。MetaMask 在解释代币授权时也专门提到,请求近乎无上限的授权额度,正是很多恶意网站偷币的方式。
钱包弹窗里写的是哪个代币、授权给哪个地址、额度多少,都要看清楚。一个号称「领空投」的页面却要你授权 USDT,说不通,拒绝就是。
助记词:交出去等于交出整个钱包
助记词能在任何设备上还原你的钱包,拿到它的人不需要你的授权,也不需要你的确认。MetaMask 的说法是:不要把助记词给任何人或任何网站,即便对方承诺给你代币或加密资产作为回报。凡是「兑现空投要先验证助记词」这类页面,都可以直接判定为骗局。私钥也一样,交出去的是对应的那个账户。
「卖不掉」本身就是信号
假设你在去中心化交易所里试着把它换成 USDT,结果兑换失败,或者报价低得离谱。这时候容易想到换个平台再试,或者去搜「这个币怎么卖」,而这恰好是那个套路的下一步:代币换不出去,出路被指向一个要你填信息、连钱包的网站。
合约代码是发行者写的。能不能转、卖出时扣多少、哪些地址能转哪些不能,都可以写进代码。一个币卖不出去,可能是没人接盘,也可能是合约压根不让你卖。两种情况下结论一样:它换不成钱,别再为它连接钱包、签授权。
想把它卖掉?用三个问题排除
能卖的陌生代币确实存在,真实项目的空投就是。下面三个问题按顺序问,前一个答不上来,后面就不用看了。
- 它是不是你以为的那个代币?用网络加完整合约地址,去对项目官网或官方公告。这里的官网得是你收到这个币之前就知道的项目、从你原本就信任的渠道打开的,不能是顺着代币名称或搜它的名字找到的。对不上,或者找不到这样的官方来源提到这个地址,结论就是身份未确认,到这一步就停。
- 有没有真实能成交的市场?钱包里显示的估值不等于你能按这个价卖出。价格可能来自一个很薄的流动性池,几笔小额交易就能把报价推高;你真去卖,滑点可能吃掉大半。成交量和盘口深度怎么看,见成交量很大,卖单为什么还是不成交。
- 卖的时候要你授权什么?在去中心化交易所卖一个 ERC-20 代币,一般要先授权交易合约动用这个代币。看清授权的是哪个代币、给哪个合约、额度多少。授权对象只应该是你自己从官方入口打开的交易应用,额度够这一笔就行;弹窗要你授权别的代币,直接拒绝。
三个问题都过了,才到可以考虑卖的地步。还要算一笔账:授权和卖出各要付一次网络手续费,加起来比它能换到的钱还多,卖它就是亏的。如果第一个问题过了,想认真评估它值不值得留,按陌生代币完整研究路径去看供应、解锁、持币分布和退出渠道。
拿不准的时候,我的建议是把「留着不动」当默认答案。代币合约要动你别的资产,得先有你签过的授权,或者你交出过助记词、私钥。
不想看到它,就隐藏
多数钱包支持隐藏某个代币的显示。隐藏只改钱包界面,链上余额还在,区块浏览器照样查得到。钱包里的隐藏操作一般不需要签名,也不花手续费,是处理垃圾代币最省事的办法。
没必要把它转给别的地址,或者发去销毁地址。转出要签名、要付手续费,还等于和一个来历不明的合约交互了一次。
已经点过、签过或输过助记词,各自怎么收拾
处理方式取决于你做到了哪一步,下面从轻到重分开说。
只打开了网页,或者只点了「连接钱包」
只访问页面、没有在钱包里确认任何弹窗,链上不会留下你的授权。点了「连接钱包」但没确认签名或交易,网站拿到的是你的地址,不是动用代币的权限。关掉页面,在钱包设置里断开和这个网站的连接。分不清自己确认的是「连接」还是「签名」,按下一条处理;页面让你下载过文件、装过插件或 App 的,不算这一级,按最坏情况处理。以后同一来源再发来代币,别再点开。
在钱包里确认过签名、授权或交易
去查自己授权过谁。以太坊上可以用 Etherscan 的代币授权检查页(Token Approval Checker),连接钱包或输入地址,就能看到哪些合约被授权动用你的哪些代币,也能在这个页面撤销。其他链到那条链的官方区块浏览器找同类功能,别随手点搜索结果里来历不明的工具站。撤销也是一笔链上交易,要付手续费。签名请求是个例外:对方还没把签名提交上链时,授权检查页里查不到它,撤销已有授权也未必挡得住。签过内容说不清的签名,直接按下面最坏情况处理。
撤销只挡得住以后。已经转走的资产,MetaMask 在被黑或被骗的处理页里写的是:链上交易没法撤回,MetaMask 作为自托管钱包也没法介入替你追回。如果你签过的东西自己也说不清是什么,就按最坏情况处理,照下一条把剩余资产挪走。
输过助记词或私钥
当成整个钱包已经落到别人手里;只输过某个账户私钥的,至少那个账户要这样处理。MetaMask 给的止损步骤是:在另一个浏览器上安装 MetaMask,新建一个钱包,把被泄露的钱包里剩下的资金转到新账户,之后停用旧钱包。新钱包必须用新生成的助记词,不能把旧的那一串再导入进去。
这件事要立刻做。之后如果有人或网站自称能追回链上资产、要你先交一笔费用,按骗局看待。
还有这些疑问
陌生代币放着不管,会不会自己把我钱包里的 USDT 转走?
不会自己转走。按 ERC-20 的规则,别人要动你的代币,需要你先签过授权,或者拿到了你的助记词或私钥。代币只是躺在地址里,替对方完成不了这两件事。MetaMask 的建议也是收到骗局空投就留着别动。
把陌生代币转走或者发去销毁地址,是不是更干净?
没必要。转出要签名、要付网络手续费,还等于和一个来历不明的合约交互一次。只是不想看见,用钱包的隐藏功能就行,隐藏只改显示,链上余额不变。
钱包里显示这个币值几百美元,这个数能信吗?
显示的估值不等于能按这个价卖出。价格可能来自很薄的流动性池,合约也可能根本不让卖出。用网络和完整合约地址核对它是不是真实项目的代币,核上了才谈得上看有没有能成交的市场;核不上就当它不值钱。