📦 Self zkID verification — 零知识身份验证

v1.0.0

集成 Self.xyz 零知识身份协议,在前端扫码、后端验证、Celo 链上三步完成护照/身份证隐私 KYC,无需泄露明文即可完成年龄、国籍、OFAC 筛查与女巫抵抗。

0· 627·3 当前·3 累计
0xturboblitz 头像by @0xturboblitz·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/26
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
medium confidence
该技能内部逻辑一致:指令、npm 依赖与合约指引均匹配 Self zk-ID 流程,但包无源码主页且存在小不一致,上线前需二次确认。
评估建议
上线前请:1) 在 npm 验证 @selfxyz/qrcode、@selfxyz/core 是否来自官方仓库;2) 核对链上地址与网络命名(Celo/Alfajores 而非 Sepolia);3) 本地仅用 ngrok 测试,勿暴露真实用户证明;4) 仅请求最小披露字段;5) 确认 beta 版本兼容性并审计源码,若无官方 repo 则风险升高。...
详细分析 ▾
用途与能力
名称/描述(Self zk 身份、护照/身份证验证、前端 QR+后端验证+Celo 链上)与指令及 npm 包一致,未请求无关环境变量或二进制。
指令范围
运行时指令仅聚焦前端 QR、接收证明、服务端验证与可选 Celo 合约,未要求读取无关文件或密钥;推荐 ngrok 暴露本地端点属常规开发风险。
安装机制
仅指令开发者 npm install 两个官方包,属常见中等风险安装方式;需先在 npm/上游仓库验证包来源,无暗含下载链接或解压脚本。
凭证需求
技能未声明任何环境变量、凭据或配置路径,示例代码仅用验证所需参数,未请求无关秘密或系统访问。
持久化与权限
技能未请求 always:true,不修改其他技能或系统设置,可按平台默认被用户调用,权限范围合理。
安全有层次,运行前请审查代码。

License

MIT-0

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

运行时依赖

无特殊依赖

版本

latestv1.0.02026/2/13

- 首次发布 self-xyz 技能,集成 Self.xyz 隐私优先身份协议。 - 支持零知识证明验证护照/身份证,全程无个人数据明文暴露。 - 提供链下(后端/API)与链上(智能合约)快速接入指南,含前端扫码与后端验证示例。 - 文档涵盖链下、链上、深度链接等集成模式并列出常见坑点。 - 列出 Celo 网络已部署合约地址,附详细配置与高级用法链接。

无害

安装命令

点击复制
官方npx clawhub@latest install self-xyz
镜像加速npx clawhub@latest install self-xyz --registry https://cn.longxiaskill.com

技能文档

# Self Protocol 集成 Self 让用户通过零知识证明,从护照/身份证中证明身份属性(年龄、国籍、人性),无需暴露任何个人数据。用户在 Self 手机 App 中扫描证件 NFC 芯片后,向你的应用提交 zk 证明。 ## 快速入门(Next.js 链下验证) ### 1. 安装 ``bash npm install @selfxyz/qrcode @selfxyz/core ` ### 2. 前端 — 二维码组件 `tsx "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. 后端 — 验证接口 `ts // 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", // must match frontend scope "https://yourapp.com/api/verify", // must match frontend endpoint true, // true = accept mock passports (dev only) null, // allowedIds (null = all) new DefaultConfigStore({ // must match frontend disclosures minimumAge: 18, }) ); const result = await verifier.verify(proof, publicSignals); return Response.json({ verified: result.isValid, nationality: result.credentialSubject?.nationality, }); } ` ## 集成模式 | 模式 | 适用场景 | endpoint | endpointType | |---------|------------|------------|----------------| | 链下(后端) | Web 应用、API、大多数场景 | 你的 API 地址 | "https""https-staging" | | 链上(合约) | DeFi、代币门禁、空投 | 合约地址(小写) | "celo""celo-staging" | | 深度链接 | 移动端优先流程 | 你的 API 地址 | "https" | - 链下:实现最快。证明发到后端,服务器端验证。 - 链上:由 Celo 智能合约验证。继承 SelfVerificationRoot。适用于无需信任/无需许可场景。 - 深度链接:针对移动端用户 —— 直接打开 Self 应用而非扫码。详见 references/frontend.md。 ## 关键陷阱 1. 配置必须严格一致 —— 前端 disclosures 必须与后端/合约的验证配置完全一致。年龄阈值、国家列表或 OFAC 设置不一致会导致静默失败。 2. 合约地址必须小写 —— 前端 endpoint 使用非校验和格式。请用 .toLowerCase()。 3. 国家代码为 ISO 三字母 —— 如 "USA""IRN""PRK"。排除列表最多 40 国。 4. Mock 护照仅用于测试网 —— 后端设置 mockPassport: true / 使用 "celo-staging" 端点类型。真实护照需主网。创建 mock 护照:打开 Self 应用,连续点击 Passport 按钮 5 次。Mock 测试需关闭 OFAC。 5. 版本要求 —— @selfxyz/core >= 1.1.0-beta.1。 6. 证件 ID —— 1 = 护照,2 = 生物识别身份证。需通过 allowedIds 显式允许。 7. Scope 唯一性 —— 链上时,scope 与合约地址一起进行 Poseidon 哈希,防止跨合约证明重放。 8. 端点必须公网可达 —— Self 应用直接向你的端点发证明。本地开发可用 ngrok。 9. 常见错误ScopeMismatch = scope/地址不匹配或地址未小写。 Invalid 'to' Address = endpointType 错误(celo vs https)。 InvalidIdentityCommitmentRoot = 主网使用真实护照(请用主网)。 Invalid Config ID = 主网使用 mock 护照(请用测试网)。 ## 已部署合约(Celo) | 网络 | 地址 | |---------|---------| | Mainnet Hub V2 | 0xe57F4773bd9c9d8b6Cd70431117d353298B9f5BF | | Sepolia Hub V2 | 0x16ECBA51e18a4a7e61fdC417f0d47AFEeDfbed74 | | Sepolia Staging Hub V2 | 0x68c931C9a534D37aa78094877F46fE46a49F1A51 | ## 参考资料 如需深入集成细节,请加载: - references/frontend.md —— SelfAppBuilder 完整配置、SelfQRcodeWrapper 属性、使用 getUniversalLink 的深链、披露选项 - references/backend.md —— SelfBackendVerifier 构造函数详解、DefaultConfigStoreInMemoryConfigStore 区别、验证结果结构、动态配置 - references/contracts.md —— SelfVerificationRoot 继承模式、Hub V2 交互、setVerificationConfigV2customVerificationHookgetConfigIduserDefinedData` 用法

数据来源ClawHub ↗ · 中文优化:龙虾技能库