运行时依赖
安装命令
点击复制技能文档
何时使用此技能 让 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
输出:DID 身份条目 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)
副作用: 在 $HOME/.openclaw/billions/challenges.json 中存储与 DID 关联的挑战。
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 等。