返回顶部
c

clawkey爪钥验证

Verifiable human ownership for OpenClaw agents. Register your agent under your human owner via VeryAI palm verification.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.2
安全检测
已通过
1,942
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

clawkey

ClawKey — 可验证的人类所有权

通过VeryAI掌纹验证,将您的代理注册到人类所有者名下。代理首先使用签名的挑战来证明其控制着密钥;人类打开一个URL并完成VeryAI的掌纹验证。人类完成后,代理即注册到其名下,并可被第三方验证。

关键:切勿打开浏览器
不要使用 open、xdg-open、start 或任何打开浏览器的命令。始终以文本或Markdown链接的形式输出注册URL供用户点击。

  • - 错误:open https://api.very.org/oauth2/...
  • 正确:打开此链接完成验证:https://api.very.org/oauth2/...

关键文件

文件用途
SKILL.mdhttps://clawkey.ai/skill.md — 注册流程、挑战生成、验证、API
HEARTBEAT.md
https://clawkey.ai/heartbeat.md — 定期检查清单:注册状态等 | | Identity | ~/.openclaw/identity/device.json — OpenClaw设备ID和密钥(请勿发送私钥) |

安全

  • - 私钥:用于签署挑战。切勿将私钥发送给ClawKey或任何服务器;仅发送 publicKey、message 和 signature。
  • 注册URL:一次性使用且有效期短。仅提供给将完成VeryAI掌纹验证的人类所有者。
  • deviceId:使用稳定的标识符(例如来自身份存储或公钥的哈希值)。它将代理与注册绑定,用于查找和验证。

生成AgentChallenge

AgentChallenge 是一个签名后的负载,证明您控制着一个Ed25519密钥。它采用标准OpenClaw身份流程的形状:deviceId、publicKey、message、signature、timestamp。生成一次后发送到 /agent/register/init 或 /agent/verify/signature。

身份来源(OpenClaw)

如果您在OpenClaw上运行,设备身份存储在:

  • - 路径: ~/.openclaw/identity/device.json

该文件包含(切勿将 privateKeyPem 发送给任何服务器):

字段用途
deviceId用作挑战中的 deviceId。该代理/设备的稳定ID。
publicKeyPem
用于派生 publicKey(见下文)。 |
| privateKeyPem | 仅在本地用于签署消息。切勿包含在API请求中。 |

如果您不使用OpenClaw,请使用您自己的身份存储;确保您有稳定的 deviceId、Ed25519密钥对,并且您签署了作为 message 发送的确切字符串。

构建挑战(分步)

  1. 1. 选择要签署的消息
对于注册,使用一次性挑战以避免重放,例如: - clawkey-register-timestampms> 示例:clawkey-register-1738500000000 对于verify/signature,消息是您要证明的任何内容(例如来自第三方的nonce)。
  1. 2. 使用您的Ed25519私钥签署消息。签名必须基于 message 的确切UTF-8字节(无额外前缀/后缀)。
  1. 3. 为API编码:
- publicKey:Ed25519公钥,采用SPKI DER格式,然后进行base64编码(无PEM包装)。 - signature:原始Ed25519签名字节,base64编码。 - timestamp:创建挑战时的Unix时间戳(毫秒)(例如 Date.now())。
  1. 4. JSON主体(AgentChallenge):
- deviceId — 来自您的身份(例如 device.json) - publicKey — base64编码的DER SPKI - message — 被签署的确切字符串 - signature — base64编码的签名 - timestamp — 数字(毫秒)

示例:Node.js

javascript
const crypto = require(crypto);
const fs = require(fs);

const identityPath = ${process.env.HOME}/.openclaw/identity/device.json;
const identity = JSON.parse(fs.readFileSync(identityPath, utf8));

const message = clawkey-register-${Date.now()};
const privateKey = crypto.createPrivateKey(identity.privateKeyPem);
const signature = crypto.sign(null, Buffer.from(message, utf8), privateKey);

const publicKeyDer = crypto
.createPublicKey(identity.publicKeyPem)
.export({ type: spki, format: der });

const challenge = {
deviceId: identity.deviceId,
publicKey: publicKeyDer.toString(base64),
message,
signature: signature.toString(base64),
timestamp: Date.now(),
};
// POST challenge to https://api.clawkey.ai/v1/agent/register/init

使用脚本

如果您有一个已经生成AgentChallenge的脚本(例如签署消息并输出包含 deviceId、publicKey、message、signature、timestamp 的JSON),您可以将其重用于ClawKey:

  1. 1. 生成一个挑战字符串,例如 clawkey-register-$(date +%s)000(秒 + 000 表示毫秒)或使用您脚本的约定。
  2. 运行脚本签署该消息并获取挑战JSON。
  3. 将该JSON POST到 https://api.clawkey.ai/v1/agent/register/init。

相同的挑战格式适用于远程验证签名时的 POST /agent/verify/signature。

快速开始

1. 开始注册(代理发起)

按上述方法构建AgentChallenge,然后将其发送到ClawKey以创建会话并获取注册URL。

bash
curl -X POST https://api.clawkey.ai/v1/agent/register/init \
-H Content-Type: application/json \
-d {
deviceId: my-agent-device-id,
publicKey: ,
message: clawkey-register-1738500000000,
signature: ,
timestamp: 1738500000000
}

响应(201):

  • - sessionId — 用于轮询状态
  • registrationUrl — 将其作为链接输出给人类;不要用浏览器打开它
  • expiresAt — 会话过期时间(ISO 8601)

如果代理已注册(deviceId 已存在),API返回 409 Conflict

2. 人类完成验证

告诉人类所有者在其浏览器中打开 registrationUrl。他们将通过OAuth完成VeryAI的掌纹验证。完成后,代理即注册到其名下。

3. 轮询注册状态

轮询直到人类完成或会话过期:

bash
curl https://api.clawkey.ai/v1/agent/register/SESSION_ID/status

响应: status 为 pending | completed | expired | failed 之一。当 status 为 completed 时,响应包含 deviceId 和 registration(例如 publicKey、registeredAt)。

4. 验证签名或查找代理

  • - 验证签名 — 检查消息是否由给定密钥签署,以及该代理是否注册在已验证的人类名下:

bash
curl -X POST https://api.clawkey.ai/v1/agent/verify/signature \
-H Content-Type: application/json \
-d {
deviceId: ...,
publicKey: ...,
message: ...,
signature: ...,
timestamp: 1738500000000
}

响应:verified(签名有效),registered(代理在已验证的人类名下)。

  • - 按设备ID查找代理 — 获取注册和验证状态:

bash
curl https://api.clawkey.ai/v1/agent/verify/device/DEVICE_ID

响应:registered、verified,以及可选的 registeredAt。

API参考

基础URL: https://api.clawkey.ai/v1
本地: http://localhost:3000/v1

端点

方法端点认证描述
POST/agent/register/init开始注册会话;返回 sessionId、registrationUrl、expiresAt。
GET
/agent/register/{sessionId}/status | 无

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 clawkey-1776368574 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 clawkey-1776368574 技能

通过命令行安装

skillhub install clawkey-1776368574

下载

⬇ 下载 clawkey v1.0.2(免费)

文件大小: 5.82 KB | 发布时间: 2026-4-17 16:21

v1.0.2 最新 2026-4-17 16:21
ClawKey 1.0.2 adds open source licensing.

- Added LICENSE file to the repository.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部