首页龙虾技能列表 › Self zkID verification — 零知识身份验证

Self zkID verification — 零知识身份验证

v1.0.0

集成 Self (self.xyz) 隐私优先身份协议,使用零知识证明验证护照和ID卡。适用于需要添加隐私保护KYC、年龄验证、国籍检查、OFAC筛查或Sybil抵抗的场景。支持前端QR码集成、后端证明验证及Celo链上智能合约验证。

0· 627·3 当前·3 累计
by @0xturboblitz·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/26
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
medium confidence
该技能在集成 Self (self.xyz) zk-ID 流程方面内部一致:其指令、npm依赖和合约指导与所述目的相匹配,但该包没有源代码/主页链接,在生产环境使用前存在一些小的不一致性需要验证。
评估建议
该技能似乎能够实现其所述功能(前端QR集成、后端证明验证、可选的Celo合约接入)。在生产环境安装或使用前:1) 验证npm包(@selfxyz/qrcode、@selfxyz/core)在npm注册表上的来源,确认它们来自官方Self组织及真实源代码仓库(该技能未列出主页/源代码)。2) 仔细核对提供的链上地址和网络名称——文档提及'Celo'但也使用了'Sepolia'(以太坊测试网)名称,存在不一致;请通过官方Self文档确认正确的Celo测试网(如Alfajores)和Hub地址。3) 仅将ngrok用于本地测试,避免在开发过程中暴露生产端点或真实用户证明。4) 审查你请求的属性(姓名、身份证号、国籍、OFAC)——这些是敏感信息;仅请求最低要求的披露。5) 确认包版本兼容性(SKILL.md引用了beta版本)并在生产环境信任前审计包的源代码或仓库。如需更高保证,请向发布者请求主页/仓库或签名包来源;缺少这些会增加风险,这也是置信度为中等而非较高的原因。...
详细分析 ▾
用途与能力
名称/描述(Self zk身份、护照/ID验证、前端QR+后端验证+Celo链上)与SKILL.md指示安装的npm包(@selfxyz/qrcode、@selfxyz/core)相匹配。所请求的内容(无额外环境变量、无无关二进制文件)均未超出所述目的范围。
指令范围
运行时指令范围狭窄,仅限于构建前端QR、在端点接收证明、在服务器端验证,以及可选地接入Celo智能合约。不会要求代理读取无关文件或密钥。文档确实建议使端点可公开访问(本地开发使用ngrok),这是预期的,但会对测试数据带来正常的暴露风险。
安装机制
这是一个纯指令型技能,指示开发者npm install @selfxyz/qrcode和@selfxyz/core。使用npm包是正常的、中等风险的安装方式——在安装前验证包及其来源在npm注册表/上游仓库的情况。安装指令中没有不透明的下载URL或归档提取。
凭证需求
该技能声明无需环境变量、凭据或配置路径。示例代码仅使用验证所需的参数(scope、endpoint、disclosures)。未请求无关密钥或系统访问权限。
持久化与权限
该技能不请求always:true,也不修改其他技能或系统级设置。它是可用户调用的,允许正常自主调用(平台默认)。这是预期的,在此不过度。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/2/13

- 初始发布 self-xyz 技能,用于集成 Self (self.xyz) 隐私优先身份协议。- 支持基于零知识证明的护照和ID卡验证,不暴露个人数据。- 提供离链(后端/API)和链上(智能合约)集成的快速入门指南,包括前端QR码和后端验证示例。- 记录关键集成模式(离链、链上、深链接)并概述防止常见配置错误的重要注意事项。- 列出Celo网络已部署的合约地址。- 包含详细配置和高级使用指南的参考链接。

● 无害

安装命令 点击复制

官方npx clawhub@latest install self-xyz
镜像加速npx clawhub@latest install self-xyz --registry https://cn.clawhub-mirror.com

技能文档

Self 让用户使用零知识证明从护照/ID卡证明身份属性(年龄、国籍、人性)—— 不暴露个人数据。用户在 Self 移动应用中扫描其证件的 NFC 芯片,并与你的应用分享 zk 证明。

快速入门 (Next.js 离链)

1. 安装

npm install @selfxyz/qrcode @selfxyz/core

2. 前端 — QR 码组件

"use client";
import { SelfQRcodeWrapper, SelfAppBuilder } from "@selfxyz/qrcode";

export default function VerifyIdentity({ userId }: { userId: string }) { const selfApp = new SelfAppBuilder({ appName: "My App", scope: "my-app-scope", endpoint: "https://yourapp.com/api/verify", endpointType: "https", userId, userIdType: "hex", disclosures: { minimumAge: 18, }, }).build();

return ( console.log("Verified")} type="websocket" darkMode={false} /> ); }

3. 后端 — 验证端点

// app/api/verify/route.ts
import { SelfBackendVerifier, DefaultConfigStore } from "@selfxyz/core";

export async function POST(req: Request) { const { proof, publicSignals } = await req.json();

const verifier = new SelfBackendVerifier( "my-app-scope", // 必须与前端 scope 匹配 "https://yourapp.com/api/verify", // 必须与前端 endpoint 匹配 true, // true = 接受模拟护照(仅开发用) null, // allowedIds (null = 所有) new DefaultConfigStore({ // 必须与前端 disclosures 匹配 minimumAge: 18, }) );

const result = await verifier.verify(proof, publicSignals);

return Response.json({ verified: result.isValid, nationality: result.credentialSubject?.nationality, }); }

集成模式

模式何时使用endpointendpointType
离链 (后端)Web应用、API、大多数情况你的API URL"https""https-staging"
链上 (合约)DeFi、代币门控、空投合约地址(小写)"celo""celo-staging"
深链接移动优先流程你的API URL"https"
  • 离链:最容易实现。证明发送到你后端,在服务器端验证。
  • 链上:证明由 Celo 智能合约验证。继承 SelfVerificationRoot。用于无需信任/无许可场景。
  • 深链接:面向移动用户——直接打开 Self 应用而非 QR 扫描。参见 references/frontend.md

关键注意事项

  • 配置匹配是强制的 — 前端 disclosures 必须与后端/合约验证配置完全匹配。不匹配的年龄阈值、国家列表或 OFAC 设置会导致静默失败。
  • 合约地址必须是小写 — 前端 endpoint 中使用非校验和格式。使用 .toLowerCase()
  • 国家代码是 ISO 3字母 — 例如 "USA""IRN""PRK"。排除列表最多40个国家。
  • 模拟护照 = 仅测试网 — 后端设置 mockPassport: true / 使用 "celo-staging" endpoint 类型。真实护照需要主网。创建模拟护照:打开 Self 应用,点击护照按钮 5次。模拟测试需要禁用 OFAC。
  • 版本要求@selfxyz/core >= 1.1.0-beta.1。
  • 证明ID1 = 护照,2 = 生物识别ID卡。必须通过 allowedIds 映射明确允许。
  • Scope 唯一性 — 链上,scope 与合约地址进行 Poseidon 哈希,防止跨合约证明重放。
  • 端点必须可公开访问 — Self 应用直接将证明发送到你端点。本地开发使用 ngrok。
  • 常见错误
- ScopeMismatch = scope/地址不匹配或非小写地址 - Invalid 'to' Address = 错误的 endpointType(celo vs https) - InvalidIdentityCommitmentRoot = 真实护照在测试网(使用主网) - Invalid Config ID = 模拟护照在主网(使用测试网)

已部署合约 (Celo)

网络地址
主网 Hub V20xe57F4773bd9c9d8b6Cd70431117d353298B9f5BF
Sepolia Hub V20x16ECBA51e18a4a7e61fdC417f0d47AFEeDfbed74
Sepolia Staging Hub V20x68c931C9a534D37aa78094877F46fE46a49F1A51

参考资料

加载这些以获取更深入的集成详情:

  • references/frontend.mdSelfAppBuilder 完整配置,SelfQRcodeWrapper 属性,使用 getUniversalLink 的深链接,披露选项
  • references/backend.mdSelfBackendVerifier 构造函数详情,DefaultConfigStore vs InMemoryConfigStore,验证结果模式,动态配置
  • references/contracts.mdSelfVerificationRoot 继承模式,Hub V2 交互,setVerificationConfigV2customVerificationHookgetConfigIduserDefinedData 模式
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务