手上十几个旧钱包是常事:活动空投领过币的、测试时批量生成的、发币开池临时用的。钱散着,迟早要搬。一个个手动搬,会在三个地方卡住:
GTokenTool 的「迁移钱包资产」(/wallet/migrate)就是按这三个坑设计的:先扫出清单让你复核,再一笔一笔先模拟、后签名;代币先走、主币最后;主币不够付 gas 时可以用另一个钱包垫。 界面一共六张卡,下面按顺序走一遍,顺便说清每一步你在界面上会看到什么、哪些钱会花掉。
| 项目 | 说明 |
|---|---|
| 搬走的资产 | 原生币(BNB、ETH 这类主币)+ ERC-20 代币 |
| 不搬 | NFT 不在迁移范围内,NFT 要走对应的 NFT 工具 |
| 链 | 一次只在当前选的那条链上操作。顶部切链后重新扫一遍:支持 BNB Chain、Ethereum、Arbitrum One、Polygon、Base、opBNB、Core、X Layer、Conflux eSpace、ApeChain、Morph、ECO、Robinhood、ARC,外加 BNB Chain Testnet |
| 私钥 | 只在浏览器里本地签名,不上传;这个页面也没有把你的私钥存到任何服务器的步骤 |
| 收款方 | 全部源钱包的资产汇到同一个目标地址 |
跨链的资产请一条链跑一次,别指望一次搬完所有链。
第一张卡两个输入框。
源钱包私钥是一行一个的大框,一次可以贴多个私钥,把几个旧钱包整包搬空。贴完框下面会回显「识别到 3 个钱包(去重 1 个)」——重复粘进来的同一把私钥只算一次。有行不对会逐行点名到行号,比如「第 5 行:私钥格式不正确(应为 0x 开头的 64 位十六进制)」或「第 5 行:私钥不在有效范围内」,不会出现「贴了十个只认了七个,也不知道少了哪个」。
如果这些钱包是这台浏览器里生成或导入过的(批量生成钱包、导入私钥留下的那份本地列表),勾上「加上本浏览器已存的钱包」就不用再翻私钥,勾选框旁边会写出「(12 个)」。
目标地址就是新钱包的地址,两个细节值得注意:
0x 的 40 位地址也能直接粘,不用自己补前缀。但 bnb1…、bc1…、T… 这些是别的链的地址格式,这条链上收不到,工具不接——填错了资产就等于丢了。这是第二个坑的解法。打开「由代付钱包垫 gas」,再填一个有钱的钱包私钥:开始迁移时,它先给每个源钱包垫一笔「刚好够用」的主币,垫到账后重新读余额、重算计划,那些因为没 gas 被拦下的代币就变成可搬的。
三点要说清:
开关刚打开时,清单里那几行的状态会从红色的「gas 不够,已跳过」变成黄色的「等代付钱包垫 gas 后搬」。这不是没生效:清单是按你点「扫描」那一刻的余额算的,垫钱发生在「开始迁移」里面,所以措辞用将来时。垫完重算的那一笔数会在执行日志里写出来(「已到账,重算计划为 6 笔」)。
这张卡决定清单长什么样。扫描会自动列出这个钱包持有的代币,余额与精度最后由链上确认——自动发现只当「这个地址接触过哪些币」的线索,精度抄错的后果是金额放大或缩小几十倍,所以数值一律现读。
| 设置 | 界面原话 | 怎么用 |
|---|---|---|
| 价值阈值 | 只搬价值 ≥(U) | 填 5 就是只搬值 5 U 以上的,粉尘自动跳过。填 0 表示都搬。还没有报价的新币不参与筛选,不会被当成「不值钱」默默丢掉 |
| 给源钱包留多少 | 0 = 一分不留 | 默认 0。每笔交易的 gas 已经逐笔从预算里扣过了,这份预留只是你想在旧钱包剩点零钱时才填。穷钱包填个 0.001 反而会把大部分资产卡在「gas 不够」那一档 |
| 补充代币合约 | 一行一个合约地址 | 清单漏了的币,把合约地址粘进来补。改完要再点一次「扫描」才会出现在清单里。非法地址逐行报错(「第 2 行:合约地址格式不正确 · 原文前 48 字」),重复的自动去重并告诉你「去重 2 个」 |
| 包含高风险代币 | 默认不搬空投垃圾币与貔貅盘 | 默认关掉,这类币仍然会列出来、但排在清单最后并标成「高风险,默认排除」。想连它们一起搬就开这个总开关——注意开了就是全部一起搬,清单里那些行不给单独勾 |
扫完「扫描」按钮旁边会给一行汇总:「共 3 个钱包 · 可搬 11 个 · 预计 gas 0.00012 BNB · 服务费 0.0009 BNB」。
扫过一次之后再改这四项里的任何一项,都要重新点一次「扫描」。 清单和计划是点扫描那一刻算出来存下的,你在下面改了阈值不重扫,执行时用的还是老清单。这种情况界面会出黄字提醒:「扫描设置改过了,再点一次「扫描」才会按新设置重算清单。」填回原来的值就不会报。
一个源钱包一张表,表头六列:
| 列 | 内容 |
|---|---|
| 搬 | 勾选框。被阈值筛掉、余额为 0、读不到元数据、高风险这几类不给勾(前两类是没必要搬,高风险走上面的总开关);因为没 gas 被拦下的行可以勾——gas 够不够是「怎么发出去」的问题,不该替你决定「要不要搬」 |
| 资产 | 代币简称,旁边一个小标签说明它怎么来的:自动发现 / 手填 / 风险 |
| 余额 | 链上读到的实际余额,按这个币自己的精度换算 |
| 价值 | 按上游美元报价算的估值;没报价显示「—」 |
| 计划转出 | 这一笔实际会转走多少(主币那笔会扣掉 gas) |
| 状态 | 见下表 |
状态那一列会把「为什么搬不了」写在行上,常见的几种:
表上方还有「已选 N 个代币 + 主币」和「全选 / 全不选」。「已选」统计的是你勾了多少,不是「排得下几笔」,所以调勾选的时候这个数一定跟着动。
一个容易看错的地方:BNB Chain 上你可能同时看到 BNB 和 WBNB 两行(其它链是 ETH / WETH)。不是余额读错了,前者是主币、后者是包装币,两笔各自独立搬。测试网不会扫那枚包装币,免得列一行显示 0、还多收一份服务费。
这块最容易让人误会,单独说。
所以「资产种类多的钱包」值得先看一眼「可搬几个 · 服务费几个」再决定要不要分几批搬。一个钱包扫出 40 种币、每种都收一份的时候,阈值那道筛选比手动勾省事得多。
按下「开始迁移(3 个钱包)」,日志区(第 5 张卡)开始逐行出字:
先收服务费 9 个代币 · 900000000000000 wei
服务费已付(0x…完整哈希…)
— 0x1f… 开始(7 笔)
开始第 1/7 笔:USDT(先模拟,过了才签名)
USDT 已广播(0x…),等确认
USDT 已确认
…
0x1f… 完成:成功 7 · 跳过 2 · 失败 0
几个行为上的约定:
第 6 张卡先给一行汇总:「成功 21 笔 · 跳过 4 · 失败 1 · 服务费 0.0021 BNB」,然后两个出口:
wallet-migrate-3f9a1c.csv。列是:源钱包、类型、资产、合约地址、转出数量、实际到账、状态、交易哈希、失败原因。多钱包迁移最容易出的问题是「这笔到底是哪个钱包转的」,所以导出里必须带钱包列,否则事后对账要一笔笔回链上查。页面关掉就查不到状态,所以这两个出口是给你留档用的。建议每次跑完都导一份 CSV。
0x 那一种。先把新钱包在这条链上能用、能收,再开始搬。/wallet/distribute),那是把一个钱包的钱经过几个中转钱包再打到目标地址。常见问题可以看站内教程页:https://gtokentool.com/guide/wallet-migrate;工具直达 https://gtokentool.com/wallet/migrate。
免责声明:本文仅介绍工具用法与链上机制,作为区块链学习与测试用途;请遵守当地区法律法规,勿将工具用于任何违法活动。