跳到正文
← 使用教程

Hats 角色到底授予什么:核对完整 hat ID、链与外部权限

链小知 · 进阶 · 核验 · 依官方文档整理

从已有 Hats tree 查看角色与 wearer 记录,追到真正关联的系统权限,避免把同名 hat、Mint事件或管理员层级当任意操作授权。

开始前准备

  • 准备组织给出的公开 tree 链接、网络、角色 pretty ID、目标 wearer 地址和已有权限配置;可用已能查看的 My Hats 页面,但不用为此连接/登录钱包。
  • 本篇按 Hats v1 公开文档与 SDK字段整理记录;页面截图多为2023–2024版,菜单缺失时标版本未知。只看角色/权限,不 Edit/Deploy、claim外部权限、改管理员或发送消息。

1. 定位组织的链、tree和完整 Token ID

从组织提供的 tree 链接选中目标 hat,核对链与角色名称,点击 pretty ID 右侧 copy 图标取得完整 token ID。1.2.1.1 是可读层级格式,不是十进制 ERC1155 ID,也不是钱包地址;保存完整整数或32字节hex,避免Number丢精度。

Hats 在多个链可用同一合约地址,但角色/树不是跨链共享余额。参考支持链表核记录网络和0x3bc1A0Ad72417f2d411118085256fC53CBdDd137;旧测试链列表不证明其当前运行,别把 Ethereum 同ID余额套到 OP Mainnet。

检查结果:链、协议部署、tree/prettyID与原完整ID都有来源。

2. 查看角色信息与原定 wearer 主体

在已能查看的 My Hats 选 hat,或在公开 tree 选择该角色,阅读侧栏 description、responsibilities、authorities和组织信息。EOA、多签、DAO或合约均可穿hat;若wearer是多签,个人签名地址本身不自动穿同hat。

对照已有viewHat字段 details/maxSupply/supply/eligibility/toggle/mutable/active与 wearer 地址。名称/图片不唯一,图片还可能沿祖先继承;字段缺失或查询失败不填默认active=true,也不能将总supply当这个地址的余额。

检查结果:当前看的是指定hat与指定wearer,不是同名角色或多签个人成员。

3. 区分历史持有与当前 wearing

读取已有 isWearerOfHat/balanceOf 记录,并保留网络、合约、hatId、wearer、区块/时间。当前wearing要求静态token记录、hat active与资格同时满足;有效balance只有0或1。历史Mint、NFT列表或索引缓存不能代替当前动态结果。

没有读取回执、字段null/错误与明确false是不同状态;false可能因角色inactive或资格失效,不单凭它说token被burn或从未mint。官方建议的checkHatWearerStatus/checkHatStatus会改状态,不能当只读同步按钮执行。

检查结果:历史持有、动态wearing和查询错误分开,缺当前证据明确。

4. 沿 authorities 核对真正的集成配置

侧栏 authorities 链接指向该hat关联系统,先记录系统/工作区/合约/role及允许的具体动作,例如read、write、proposal或账户控制。不能因为权限目录列出multisig就认定该组织已经安装并授权对应模块。

对照组织已有token-gate/permission配置中的链、Hats合约与完整hatId、绑定外部role及动作范围。只有文字描述/链接而没有实际绑定记录时,结论是“权限关联待核”;不点击claim、Invite、Confirm或注册来补验证。

检查结果:每种外部权限对应到具体系统、配置和hat身份,角色描述不替代授权。

5. 把管理员关系与外部操作权限拆开

已有isAdminOfHat结果表示是否穿目标角色的前置adminhat;它不等于外部系统管理员或多签签名者。viewHat.mutable控制管理员是否能改属性/转移,immutable也不保证原资格/激活模块永不变化。

核对树及已保存getAdmin/linked-tree读值,别只看卡片上下位置猜实际admin;SDK区分local/global level与linked tree。未linkedTopHat可改自身details/image是特别规则,不扩展成所有immutablehat都可改权限。

检查结果:协议admin、角色属性可变性和外部授权各自有结果/未知。

6. 解释 ERC1155 兼容和完成边界

Hats符合ERC1155接口但不是全标准compliant;wearer不可自行transfer,mint/transfer不调用onERC1155Received。不能为了同步权限把hat按普通NFT“安全转到另一个钱包”,也不从接收回调推必然有授权。

输出指定hat/wearer的身份、dynamicwearing、admin范围和每个外部集成动作表。看不到My Hats时检查原记录地址/链和版本;仅历史事件或信息链接时保留未验,而不是宣称该地址已经能访问、提案、签名或管理资金。

检查结果:读者能准确说明这个角色在什么系统做什么,尚未取得的权限证据明确。

怎样确认完成

  • 形成按链/hatId/wearer的角色和外部权限对应表,错误、未知与false分开。
  • 全部documentation;没有连接、部署、claim外部角色、RPC、签名或权限行为验收。

常见错误与边界

  • pretty ID、完整uint256与钱包地址是三种东西;同合约地址不代表跨链共享角色。
  • 穿hat、是hat admin与外部系统管理员/签名者不同。
  • ERC1155接口兼容不意味着任意NFT转移流程或回调可用。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据