把一串提币地址从钱包复制到提现框,或者反过来,结果发现两边显示的大小写不一样——这件事本身不说明地址被掉包了,也不说明哪一边写错了。决定该不该紧张的,是这串字符开头那几位。弄清之前,别去手改。
| 地址开头长这样 | 大小写算不算数 |
|---|---|
| 0x(以太坊、BNB Smart Chain、Arbitrum 这一类) | 不算。全小写、大小写混排,指的是同一个账户 |
| T(TRON)、1 或 3(比特币老格式)、Solana 那种没有固定前缀的 | 算。改一个字母,就是另一串字符 |
| bc1(比特币 SegWit) | 特殊:全小写或者全大写都成立,唯独不能混着来 |
下面按这三类分开说。
0x 地址:大写的那几个字母是校验位,不是内容
0x 后面跟着 40 个十六进制字符,取值只有 0 到 9 和 a 到 f。十六进制里 A 和 a 是同一个数值,所以这 40 位怎么变大小写,指向的都是同一个账户。
那为什么钱包吐出来的地址,偏偏是某几个字母大写?
答案在 2016 年的一份以太坊改进提案里,编号 ERC-55(状态已是 Final,2026-09-23 查阅),标题直译过来就叫「混合大小写校验和地址编码」。算法不复杂:把地址的全小写形式做一次 Keccak-256 哈希,哈希结果里对应位置那一位大于 7,就把地址这一位的字母改成大写。大小写于是变成一层藏在原字符里的校验码——长度一位没多,却能在你打错的时候拦一下。
提案自己算过这层拦得有多严:一个地址被打错之后,仍然碰巧通过校验的概率大约是 0.0247%。同一段里还写明,这样设计的好处之一是向后兼容那些接受混合大小写的十六进制解析器。翻译成人话:老式的全小写写法没有作废,照样能用。
所以平台把你贴进去的地址显示成另一种大小写,只是按这套规则重排了一遍。地址本身一位都没动。
反过来那一下才危险:你自己动手把某个字母改成大写或小写。地址还是那个地址,可校验码对不上了,支持这层校验的钱包和交易所会直接判无效、不让提交。那是在拦你,不是它坏了。遇到这种提示,退回去把原始那串重新复制一遍,别在输入框里「修」。
T 开头、1 开头:一个字母都不算小事
TRON 的官方开发者文档《Accounts and keys》写得很直白:一个 TRON 地址是带 0x41 前缀的 21 字节值,在钱包和区块浏览器里以 Base58Check 的形式出现,34 个字符,T 打头。
关键差别就在编码这一层。Base58 的字符表里,大写 A 和小写 a 是两个不同的字符,各自代表不同的数值。换掉其中一个字母的大小写,等于换了一串数,结尾那几位校验位算出来对不上,钱包会直接拒收。比特币 1、3 开头的老式地址走的也是这套 Base58Check,末尾同样跟着校验位。
Solana 得单独拎出来说。它的地址同样是 Base58,可那串东西说到底就是编码过的公钥,后面没有校验位跟着。改错一个字母,你拿到的往往还是一个格式上挑不出毛病的地址,没有哪一层会跳出来拦你。硬件钱包厂商 Ledger 的中文帮助页《加密货币地址是否区分大小写?》因此给它单加了一句:以太坊和其他 EVM 网络地址不区分大小写、可以混合大小写输入;而 Solana 地址区分大小写,输入错误的大小写可能意味着资金永久损失。

还有一点算是安慰:Base58 这套字符表当初就把最容易看混的几个字符删掉了,数字 0、大写 O、大写 I、小写 l 都不在里面。肉眼核对的时候,少了几组陷阱。
bc1 开头的:全大写也是对的
比特币 bc1 打头那种(SegWit 地址)用的是第三套编码,规矩又换了一副面孔。定义它的那份比特币改进提案 BIP-173 在 Uppercase/lowercase 一节写了三件事:编码的一方必须输出全小写;需要展示或者印成二维码时,可以把整串转成全大写;而解码的一方必须拒绝那些一部分大写、一部分小写的字符串。
所以收到一个全大写的 bc1 地址不必疑心,二维码和纸质备份里常见,它是合法的。半大写半小写的那种就别用了——中间一定有哪一步把它处理坏了,回去要原件。
大小写弄清了,还有三处要对
校验不过、提示「地址无效」,先看是不是复制时漏了一截,或者粘贴串了行,退回去重新复制一遍。大小写之外,还有三处是校验管不到的:整串地址拿去和收款端显示的逐位对一遍,只看首尾不够,专门骗人的那类地址做的就是首尾几位一模一样,地址投毒那篇讲了它怎么钻进你的转账记录;网络那一栏单独对一次,同一串 0x 地址在好几条链上都成立,链选错了没有哪一步会提醒你,网络名字的三种写法先分清;新地址先发一笔零头,它验得出地址和链通不通,额度和最低到账量却验不出来。
地址格式本身拿不准的,站内那个地址格式初筛工具在本机跑,贴进去先过一眼前缀和长度。
打错一个字符,哪几类地址会被拦下
把几类地址摆在一起看:T、1、bc1 开头的都带校验位,打错一个字符,多数情况下的结果是发不出去,而不是发到陌生人那里。0x 地址只有大小写混排的写法才带这层校验,全小写的那种打错了照样是个合法地址;刚才说的 Solana 则完全没有校验位。这两类得你自己看住。
另外两件事哪一类地址都拦不住——整串地址被换掉,以及链选错。那两种情况下地址本身完全合法,校验一路绿灯放行,只能靠你自己在发送前把最后一遍核对做完。
