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

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/hats-hat-id-tree-authority-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

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

## 使用工具
- [Hats Protocol](https://lianxiaozhi.com/tools/hats-protocol) · [官方入口](https://app.hatsprotocol.xyz/)

## 前置条件
- 准备组织给出的公开 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都有来源。
依据：[Hats App：复制完整Token ID](https://docs.hatsprotocol.xyz/using-hats/connecting-hats-w-permissions-and-authorities/connecting-hats-to-token-gates/finding-a-hats-token-id.md)
依据：[Hats：部署链与相同合约地址](https://docs.hatsprotocol.xyz/using-hats/hats-protocol-supported-chains.md)
依据：[Hats v1 SDK：角色、资格与管理员读取](https://docs.hatsprotocol.xyz/for-developers/v1-sdk/core/onchain-reads.md)

## 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，不是同名角色或多签个人成员。
依据：[Hats：角色与外部集成范围](https://docs.hatsprotocol.xyz/readme.md)
依据：[Hats v1 SDK：角色、资格与管理员读取](https://docs.hatsprotocol.xyz/for-developers/v1-sdk/core/onchain-reads.md)
依据：[Hats：mutable与管理员修改范围](https://docs.hatsprotocol.xyz/using-hats/setting-a-hats-basic-properties.md)
依据：[Hats：My Hats、角色侧栏与权限链接](https://docs.hatsprotocol.xyz/using-hats/essentials-for-hat-wearers.md)

## 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和查询错误分开，缺当前证据明确。
依据：[Hats：动态余额与isWearerOfHat](https://docs.hatsprotocol.xyz/for-developers/hats-protocol-for-developers/wearing-a-hat.md)
依据：[Hats v1 SDK：角色、资格与管理员读取](https://docs.hatsprotocol.xyz/for-developers/v1-sdk/core/onchain-reads.md)

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

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

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

核对结果：每种外部权限对应到具体系统、配置和hat身份，角色描述不替代授权。
依据：[Hats：关联外部权限](https://docs.hatsprotocol.xyz/using-hats/connecting-hats-w-permissions-and-authorities.md)
依据：[Hats：角色与外部集成范围](https://docs.hatsprotocol.xyz/readme.md)
依据：[Hats App：复制完整Token ID](https://docs.hatsprotocol.xyz/using-hats/connecting-hats-w-permissions-and-authorities/connecting-hats-to-token-gates/finding-a-hats-token-id.md)

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

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

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

核对结果：协议admin、角色属性可变性和外部授权各自有结果/未知。
依据：[Hats v1 SDK：角色、资格与管理员读取](https://docs.hatsprotocol.xyz/for-developers/v1-sdk/core/onchain-reads.md)
依据：[Hats：mutable与管理员修改范围](https://docs.hatsprotocol.xyz/using-hats/setting-a-hats-basic-properties.md)
依据：[Hats：关联外部权限](https://docs.hatsprotocol.xyz/using-hats/connecting-hats-w-permissions-and-authorities.md)

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

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

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

核对结果：读者能准确说明这个角色在什么系统做什么，尚未取得的权限证据明确。
依据：[Hats：ERC1155接口兼容限制](https://docs.hatsprotocol.xyz/for-developers/hats-protocol-for-developers/erc1155-compatibility.md)
依据：[Hats：角色与外部集成范围](https://docs.hatsprotocol.xyz/readme.md)
依据：[Hats v1 SDK：角色、资格与管理员读取](https://docs.hatsprotocol.xyz/for-developers/v1-sdk/core/onchain-reads.md)
依据：[Hats：关联外部权限](https://docs.hatsprotocol.xyz/using-hats/connecting-hats-w-permissions-and-authorities.md)
依据：[Hats：My Hats、角色侧栏与权限链接](https://docs.hatsprotocol.xyz/using-hats/essentials-for-hat-wearers.md)

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

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

## 相关知识
- [ERC-1155 为什么一个合约里可以有多种资产？](https://lianxiaozhi.com/learn/erc1155-multiple-assets)
- [多签钱包与模块权限：为什么看签名人数还不够](https://lianxiaozhi.com/learn/multisig-and-modules)
- [原始、解码和整理后的链上数据有什么区别？](https://lianxiaozhi.com/learn/raw-decoded-curated-data)

## 官方依据
- [Hats App：复制完整Token ID](https://docs.hatsprotocol.xyz/using-hats/connecting-hats-w-permissions-and-authorities/connecting-hats-to-token-gates/finding-a-hats-token-id.md)
- [Hats：部署链与相同合约地址](https://docs.hatsprotocol.xyz/using-hats/hats-protocol-supported-chains.md)
- [Hats v1 SDK：角色、资格与管理员读取](https://docs.hatsprotocol.xyz/for-developers/v1-sdk/core/onchain-reads.md)
- [Hats：角色与外部集成范围](https://docs.hatsprotocol.xyz/readme.md)
- [Hats：mutable与管理员修改范围](https://docs.hatsprotocol.xyz/using-hats/setting-a-hats-basic-properties.md)
- [Hats：动态余额与isWearerOfHat](https://docs.hatsprotocol.xyz/for-developers/hats-protocol-for-developers/wearing-a-hat.md)
- [Hats：关联外部权限](https://docs.hatsprotocol.xyz/using-hats/connecting-hats-w-permissions-and-authorities.md)
- [Hats：ERC1155接口兼容限制](https://docs.hatsprotocol.xyz/for-developers/hats-protocol-for-developers/erc1155-compatibility.md)
- [Hats：My Hats、角色侧栏与权限链接](https://docs.hatsprotocol.xyz/using-hats/essentials-for-hat-wearers.md)
