地址
每个 NeuroChain 地址的形式都是 neuro:<name>.<type>。后缀表明该地址是什么。
| 后缀 | 是什么 | 如何获得 | 费用 |
|---|---|---|---|
.human | 你的钱包 | 由你的助记词派生 | 免费 |
.node | 验证者 | 由 .human 所有者注册 | min_stake(默认 10 000 NRO),锁定为验证者的质押 |
.app | 智能合约地址 | 部署时分配,或由 .human 所有者注册的可读名称 | 部署:仅收部署费。可读名称:min_stake(默认 10 000 NRO),销毁 |
.vault | 多签金库 | 由 .human 所有者注册 | min_stake(默认 10 000 NRO),销毁 |
.agent | 面向 AI 代理的智能账户(会话密钥、代付 gas) | 由 .human 所有者注册 | 按名称长度计价,见价格 |
min_stake 是一个治理参数;请从治理参数 API 读取其当前值,而不要假定为默认值。
你的钱包地址:.human
.human 地址由你的公钥计算得出,因此任何人都无法注册它,也没有其他人能拥有它。
- 助记词转为小写,并以单个空格连接。
seed = SHA3-256("NC_KDF_v3|" + words)——32 字节。- 该 seed 生成一个 ML-DSA-65 密钥对(Dilithium3,FIPS 204)。
address = "neuro:" + SHA3-256(公钥) 的前 15 个 hex 字符 + ".human"。
同一个密钥对既定义地址,又为每笔交易签名。你的密码只用于在浏览器密钥库中加密 seed;它与地址或密钥毫无关系。
所有权证明。 节点在接受某个 .human 地址的已签名操作时,会根据随操作一起发送的公钥重新计算地址。如果两者不一致,操作即被拒绝——没有注册表,也没有“先到的密钥获胜”。
自定义 .human 名称
钱包还可以购买一个可读名称,例如 neuro:alice.human。该名称是拥有它的那个由密钥派生的地址的 NFT 和别名:
- 发送到该名称的一切——NRO、资产、IBC 凭证、合约支付——都会落到所有者由密钥派生的地址上。交易仍显示它被发送到的名称,并出现在所有者的历史记录中。
- 名称本身不持有余额,也从不签名。向自己的名称付款会被拒绝,与任何转给自己的转账一样。
- 该名称会列在你的地址中,可以像任何 NFT 一样转让;从下一个区块起,付款随之转移。
- 在名称被购买之前误发到该名称的任何资产,都归买家所有。
有些名称无法购买:由 15 个或更多十六进制字符组成的名称(它具有由密钥派生地址的形态,会截走别人的付款)、保留名称,以及某人有意设立的账户名称(在 genesis 中注资、绑定到密钥或在身份注册表中)。价格取决于长度——见下文。
付费名称:.node、.app、.vault、.agent
付费名称没有自己的密钥。它由拥有它的 .human 钱包的密钥控制。当所有者通过身份轮换密钥时,控制权随之转移。没有所有者的付费地址不接受任何密钥——genesis 验证者同样由 genesis 配置中指定的所有者钱包操作,它们的共识密钥只用于签署区块。
| 类型 | 注册时做什么 |
|---|---|
.node | 从所有者处扣除 min_stake,并将其记录为验证者的质押(适用解绑期)。默认佣金 10%。只有 .node 地址是共识验证者。 |
.app | 扣除 min_stake 并将其销毁,以保留一个可读的合约名称。(已部署的合约总会获得自己的地址——见下文。) |
.vault | 扣除 min_stake 并销毁,创建一个金库,所有者为其第一个成员,阈值为 2 个签名。 |
.agent | 扣除按长度计算的费用,并记录一个代理智能账户。不是验证者,不持有质押。 |
部署产生的合约地址
每次部署都会在 neuro:<10 hex>.app 处创建合约,其中 hex 是 SHA3-256(owner ‖ nonce) 的前 5 个字节(nonce 为 8 字节大端序)。该地址在每个验证者上以相同方式计算,因此在部署最终确定之前就已可知。见部署合约。
将付费名称转让给另一个所有者,收取固定的 100 uNRO(NFT_TRANSFER_FEE)。当前值也会由 GET /api/v1/gas/estimate 以 nft_transfer_fee 返回。
名称价格
自定义 .human 名称和 .agent 地址按长度计价——越短越稀有,因此越贵。价格以及在售的最短名称都是治理参数:name_price_len_1 … name_price_len_5、name_price_len_6plus 和 name_min_len。上线时开售的是 5 个或更多字符的名称;更短的名称需经投票开放。默认值:
| 名称长度 | 价格 |
|---|---|
| 1 个字符 | 100 000 NRO |
| 2 个字符 | 50 000 NRO |
| 3 个字符 | 10 000 NRO |
| 4 个字符 | 5 000 NRO |
| 5 个字符 | 2 000 NRO |
| 6 个或更多 | 500 NRO |
命名规则
以下规则适用于每个注册名称:
- 只允许 ASCII 字母、数字和连字符。
- 长度 1 到 32 个字符。
- 开头和结尾不能是连字符。
- 完整地址必须以
neuro:开头。 - 唯一性按完整地址判定:
neuro:foo.node、neuro:foo.app和neuro:foo.agent可以同时存在并属于不同所有者。自定义.human名称不能占用已被.node使用的名称。 - 名称不能是保留名称(见下文)。
保留名称
同一个注册表守护所有付费地址类型(.human 名称、.node、.agent、.vault、.app)以及资产名称中的单词。匹配为精确匹配且不区分大小写。
- 协议自身的名称——
system、nro、neurochain——始终保留。 - 其他名称在 genesis 配置中设定(
NEUROCHAIN_RESERVED_NAMES),此后只能通过REGISTRY_CHANGE投票更改。条目可以指定仍被允许占用该名称的所有者,例如某品牌自己的钱包。
资产代码有一个配套的受保护代码注册表;资产名称也不得包含受保护的代码或保留名称。
系统地址
neuro:system.* 下的地址由协议保留。它们是已签名操作的目标(neuro:system.stake、neuro:system.node、neuro:system.name、neuro:system.deploy……),而不是任何人拥有的账户。