Primcast
EN

身份

IdentityRegistry 是链上关于钱包事实的唯一来源。它为其他所有合约回答同一个问题:我们对这个地址了解什么? 它不决定某项资产允许什么——那由每个代币决定。

保存了什么

字段含义
kycCleared登记机构已完成该钱包持有人的 KYC/AML
kycExpiresAtKYC 失效时间(0 表示永不过期)。过期后所有 KYC 校验都会失败
accredited经登记机构评估,持有人属于合格 / 专业投资者
jurisdiction简短代码,如 US、DE、US-NY(空表示未知)
status正常或已冻结。被冻结的账户在所有代币上都无法通过任何关卡
did可选的 W3C DID(did:…),指向链下凭证
registrar、createdAt、updatedAt最后写入者及时间

个人数据不上链。 姓名、证件和住址都留在登记机构。链上只保存上述标记——这足以让合约执行规则,也足以让监管方审计决策。

complianceOf(address) 一次返回代币所需的全部信息:known、sanctioned、frozen、kycValid、accredited、jurisdiction。其中 kycValid 已经考虑了是否存在、是否冻结和是否过期。

登记机构

  • 治理方通过 addRegistrar(address, displayName) 任命登记机构,通过 removeRegistrar 移除;登记机构数量有上限。
  • 登记机构可以通过 setAccount(subject, did, kycCleared, accredited, jurisdiction, kycExpiresAt) 设置或更新任何账户,并附原因冻结或解冻任何账户。
  • 登记机构不能制裁地址、创建代币或移动资金。

所有登记机构受到同等信任:任何一家都可以覆盖另一家写入的记录,或冻结任何账户。每次写入都会发出带登记机构地址的 AccountSet、AccountFrozen 或 AccountUnfrozen 事件,滥用行为清晰可见;移除登记机构是治理方的补救手段。

制裁

  • 只有治理方可以添加或移除制裁:addSanction(address, listSource, reason)、removeSanction(address)。
  • 制裁集合可枚举(sanctionedCount、sanctionedAt),排序器的限制名单就是据此构建的。见合规。
  • 被制裁地址无法通过任何应用层关卡:代币转账、认购、分红领取、赎回、退款和创建代币;名单刷新后,排序器过滤还会阻止它发起任何交易。
  • 制裁按设计是公开的,包括历史记录(SanctionAdded / SanctionRemoved 事件)。

投资者如何使用身份

  1. 在登记机构完成开户(链下)。
  2. 登记机构把你的记录写到链上;账户页面会精确显示保存了什么。
  3. 每个资产页面都会在你操作前显示你的钱包是否满足该资产的规则。
  4. 保持 KYC 有效。在需要 KYC 的代币上,KYC 过期会阻止转出、接收、领取分红和完成赎回,直到登记机构为你续期。

事件

RegistrarAdded、RegistrarRemoved、AccountSet、AccountFrozen、AccountUnfrozen、SanctionAdded、SanctionRemoved。