📦 已验证代理身份 2
v1.0.0Billions/Iden3 身份验证和身份管理工具,用于代理。链接、证明、签名和验证。
运行时依赖
安装命令
点击复制技能文档
何时使用此技能 让 AI 代理创建和管理它们自己的身份在 Billions Network 上,并将这些身份链接到人类所有者。当您需要将代理身份链接到所有者时。当您需要签署挑战时。当您需要将人类链接到代理的 DID 时。当您需要验证签名以确认身份所有权时。当使用共享的 JWT 令牌进行身份验证时。当您需要创建和管理去中心化身份时。
安装插件后,运行以下命令来创建一个身份并将其链接到您的 human DID: cd scripts && npm install && cd .. # 步骤 1:创建一个新身份(如果您还没有一个) node scripts/createNewEthereumIdentity.js # 步骤 2:签署挑战并生成一个验证 URL node scripts/linkHumanToAgent.js --to --challenge '{"name": , "description": }' 所有身份数据都存储在 $HOME/.openclaw/billions 中,以便与 OpenClaw 插件兼容。
脚本: createNewEthereumIdentity.js 命令:node scripts/createNewEthereumIdentity.js [--key ] 描述:在 Billions Network 上创建一个新身份。如果提供 --key,则使用该私钥;否则生成一个新随机密钥。创建的身份将自动设置为默认身份。 使用示例: # 生成一个新随机身份 node scripts/createNewEthereumIdentity.js # 从现有的私钥创建身份(带有 0x 前缀) node scripts/createNewEthereumIdentity.js --key 0x1234567890abcdef... # 从现有的私钥创建身份(不带 0x 前缀) node scripts/createNewEthereumIdentity.js --key 1234567890abcdef... 输出:DID 字符串(例如,did:iden3:billions:main:2VmAk7fGHQP5FN2jZ8X9Y3K4W6L1M...)
getIdentities.js 命令:node scripts/getIdentities.js 描述:列出所有存储在本地的 DID 身份。使用此命令来检查在执行身份验证操作之前哪些身份可用。 使用示例: node scripts/getIdentities.js 输出:JSON 数组的身份条目 [ { "did": "did:iden3:billions:main:2VmAk...", "publicKeyHex": "0x04abc123...", "isDefault": true } ]
generateChallenge.js 命令:node scripts/generateChallenge.js --did 描述:生成一个随机挑战以进行身份验证。 使用示例: node scripts/generateChallenge.js --did did:iden3:billions:main:2VmAk... 输出:挑战字符串(随机数字作为字符串,例如 8472951360)
signChallenge.js 命令:node scripts/signChallenge.js --to --challenge [--did ] 描述:使用 DID 的私钥签署挑战以证明身份所有权,并将 JWS 令牌作为直接消息发送给指定的发送者。使用此命令当您需要证明您拥有特定的 DID。 参数: --to - (必需)消息发送者标识符,传递给 openclaw message send 的 --target --challenge - (必需)要签署的挑战 --did - (可选)证明接收者的 DID;如果省略,则使用默认 DID 使用示例: # 使用默认 DID 签署并发送给发送者 node scripts/signChallenge.js --to --challenge 8472951360 输出:{"success":true}
linkHumanToAgent.js 命令:node scripts/linkHumanToAgent.js --to --challenge [--did ] 描述:签署挑战并通过创建验证请求将人类用户链接到代理的 DID。响应将作为直接消息发送给指定的发送者。 参数: --to - (必需)消息发送者标识符,传递给 openclaw message send 的 --target --challenge - (必需)要签署的挑战 --did - (可选)证明接收者的 DID;如果省略,则使用默认 DID 使用示例: node scripts/linkHumanToAgent.js --to --challenge '{"name": "MyAgent", "description": "AI persona"}' 输出:{"success":true}
verifySignature.js 命令:node scripts/verifySignature.js --did --token 描述:验证签署的挑战以确认 DID 所有权。 使用示例: node scripts/verifySignature.js --did did:iden3:billions:main:2VmAk... --token eyJhbGciOiJFUzI1NkstUi... 输出:签名验证成功(在成功时)或错误消息(在失败时)
限制/防护(CRITICAL) CRITICAL - 始终遵循这些规则: STRICT:首先检查身份 在运行 linkHumanToAgent.js 或 signChallenge.js 之前,始终检查是否存在身份:node scripts/getIdentities.js 如果没有配置身份,请不要尝试链接身份。相反,首先使用 createNewEthereumIdentity.js 创建一个身份。 STRICT:脚本失败时停止 如果任何脚本以非零状态代码退出,您必须立即停止。检查 stderr 输出以获取错误消息。不要尝试“修复”错误通过手动生成密钥、通过其他方式创建 DID 或运行未经授权的命令。不要使用 openssl、ssh-key 等。