ENS Primary Name 是一套脚本工具,用于在 Base 及其他 L2 链上设置你的 ENS 主名称。主名称通过 ENS 反向注册器(Reverse Registrar)建立地址到名称的反向解析记录。
双向链接原理 主名称创建双向链接:
- 正向:name.eth → 0x1234...(在 ENS 解析器中设置)
- 反向:0x1234... → name.eth(通过本技能设置)
依赖要求 必需:交易签名。本技能需要签名并提交交易的能力,默认查找 bankr 技能(通过 Bankr API 提供钱包功能)。若未安装 bankr,可从 https://github.com/BankrBot/thinkfleet-skills 安装 bankr 技能,或修改脚本使用自己的交易提交方式。脚本会以类似如下提示调用 bankr.sh:Submit this transaction: {"to": "0x...", "data": "0x...", "value": "0", "chainId": 8453}。你可以将各脚本中的 find_bankr() 函数替换为自己的钱包/签名器。 必需:Node.js。脚本使用 Node.js 与 viem 进行 ENS namehash 计算和 ABI 编码。安装命令:npm install -g viem
快速开始
- 在 Base 上设置主名称:./scripts/set-primary.sh myname.eth
- 在指定链上设置:./scripts/set-primary.sh myname.eth arbitrum
- 验证主名称已设置:./scripts/verify-primary.sh 0x1234... base
- 设置头像(仅 L1):./scripts/set-avatar.sh myname.eth https://example.com/avatar.png
支持的链与反向注册器地址
- Base:0x0000000000D8e504002cC26E3Ec46D81971C1664
- Arbitrum:0x0000000000D8e504002cC26E3Ec46D81971C1664
- Optimism:0x0000000000D8e504002cC26E3Ec46D81971C1664
- Ethereum:0x283F227c4Bd38ecE252C4Ae7ECE650B0e913f1f9
前提条件
- 拥有或控制一个 ENS 名称(该名称必须已注册)
- 已配置正向解析(名称必须能解析到你的地址)
- 拥有目标链上的原生代币用于支付 Gas(如 ETH)
工作流程
- 检查正向解析是否存在(name → address)
- 若未设置链专属地址则发出警告
- 编码 setName(string) 调用数据
- 向反向注册器提交交易
- 验证主名称是否正确设置
验证 设置后技能会自动验证。也可手动验证:./scripts/verify-primary.sh 0xYourAddress base 输出示例: ✅ Reverse record: 0x1234... → myname.eth ✅ Forward resolution: myname.eth → 0x1234... 🎉 PRIMARY NAME VERIFIED: myname.eth
设置头像 命令:./scripts/set-avatar.sh myname.eth https://example.com/avatar.png,需 L1 交易与 ETH 支付 Gas。支持的格式:HTTPS(https://example.com/image.png)、IPFS(ipfs://QmHash)、NFT(eip155:1/erc721:0xbc4ca.../1234)。注意:头像是存储在以太坊主网上的文本记录。脚本会自动查找你的 ENS 名称对应的解析器(兼容公共解析器与自定义解析器)。
疑难解答
- “Transaction reverted”:确保 ENS 名称解析到你的地址
- “Name not showing”:该链的 cointype 可能未设置正向解析
- “Not authorized”:必须从名称解析到的地址发起调用
- “bankr.sh not found”:安装 bankr 技能或修改脚本使用自己的签名器
- “Chain-specific address not set”:通过 app.ens.domains 设置目标链地址
- “Could not find resolver”:确保 ENS 名称存在且已设置解析器
自定义与替换签名器 替换脚本中的 find_bankr() 函数,例如改用 cast(foundry): send_tx() { local to="$1" data="$2" chain_id="$3" cast send "$to" --data "$data" --rpc-url "https://..." --private-key "$PRIVATE_KEY" }
相关链接
- ENS 文档:https://docs.ens.domains/web/reverse
- ENS 应用:https://app.ens.domains
- Primary Names UI:https://primary.ens.domains
- Bankr 技能:https://github.com/BankrBot/thinkfleet-skills
限制说明:该技能本身不提供钱包,需依赖外部签名方式(如 bankr 技能或自行替换);头像设置仅支持以太坊主网(L1);使用前必须已注册 ENS 名称并配置正向解析;目标链需有原生代币支付 Gas。关于收费、价格等未在资料中说明。