Skip to content

地址 ​

每个 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 地址由你的公钥计算得出,因此任何人都无法注册它,也没有其他人能拥有它。

地址派生:助记词经规范化后,在 NC_KDF_v3 标签下用 SHA3-256 哈希成 32 字节的 seed,由它生成 ML-DSA-65 密钥对;地址是公钥 SHA3-256 结果的前 15 个 hex 字符

  1. 助记词转为小写,并以单个空格连接。
  2. seed = SHA3-256("NC_KDF_v3|" + words)——32 字节。
  3. 该 seed 生成一个 ML-DSA-65 密钥对(Dilithium3,FIPS 204)。
  4. address = "neuro:" + SHA3-256(公钥) 的前 15 个 hex 字符 + ".human"。

同一个密钥对既定义地址,又为每笔交易签名。你的密码只用于在浏览器密钥库中加密 seed;它与地址或密钥毫无关系。

所有权证明。 节点在接受某个 .human 地址的已签名操作时,会根据随操作一起发送的公钥重新计算地址。如果两者不一致,操作即被拒绝——没有注册表,也没有“先到的密钥获胜”。

自定义 .human 名称 ​

钱包还可以购买一个可读名称,例如 neuro:alice.human。该名称是拥有它的那个由密钥派生的地址的 NFT 和别名:

  • 发送到该名称的一切——NRO、资产、IBC 凭证、合约支付——都会落到所有者由密钥派生的地址上。交易仍显示它被发送到的名称,并出现在所有者的历史记录中。
  • 名称本身不持有余额,也从不签名。向自己的名称付款会被拒绝,与任何转给自己的转账一样。
  • 该名称会列在你的地址中,可以像任何 NFT 一样转让;从下一个区块起,付款随之转移。
  • 在名称被购买之前误发到该名称的任何资产,都归买家所有。

有些名称无法购买:由 15 个或更多十六进制字符组成的名称(它具有由密钥派生地址的形态,会截走别人的付款)、保留名称,以及某人有意设立的账户名称(在 genesis 中注资、绑定到密钥或在身份注册表中)。价格取决于长度——见下文。

付费名称没有自己的密钥。它由拥有它的 .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……),而不是任何人拥有的账户。

另请参阅 ​