关于 Wax Seal
Wax Seal 为应用和 AI Agent 提供身份与签名验证,并提供 SDK 和 MCP 服务。其工具可验证链上身份和 Ed25519 签名,也可创建或验证用于限制高风险操作的人类审批令牌。
主要功能
- 01验证链上身份
- 02验证 Ed25519 签名
- 03创建和验证审批令牌
- 04签署文档
- 05验证 Webhook 签名
适用场景
- 01在 Agent 执行操作前核验身份
- 02高风险操作要求人工审批
- 03为内容添加身份认证徽章
MCP 相关
MCP 服务提供六种工具,用于身份、签名和审批验证、文档签署及审批创建。验证工具无需密钥;签署工具需要 WAXSEAL_PRIVATE_KEY_PEM。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @waxseal/mcpWAXSEAL_PRIVATE_KEY_PEM密钥Ed25519 private key PEM — required only for waxseal.document.sign and waxseal.approval.create. The three verify tools and waxseal.info work without any key.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
6收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
WaxSeal SDK
面向开放网络和 AI Agent 的加密身份。
一个 Ed25519 密钥对。一个 64 字符指纹。永久的链上记录。
waxseal.id · 开发者文档 · 获取你的印章
软件包
| 软件包 | 说明 | 安装 |
|---|---|---|
@waxseal/verify | 浏览器 + Node SDK——验证身份、校验签名、嵌入徽章、验证 Webhook | npm install @waxseal/verify |
@waxseal/mcp | 面向 Claude、Cursor、Windsurf 和 VS Code 的 MCP 服务——验证身份、签署文档,通过人工审批限制 AI 操作 | npx @waxseal/mcp |
@waxseal/mcp——面向 AI Agent
不到两分钟,即可为 Claude、Cursor、Windsurf 或 VS Code Copilot 添加加密身份层。
{
"mcpServers": {
"waxseal": {
"command": "npx",
"args": ["-y", "@waxseal/mcp"],
"env": {
"WAXSEAL_PRIVATE_KEY_PEM": "-----BEGIN PRIVATE KEY-----\n<your key>\n-----END PRIVATE KEY-----"
}
}
}
}
无需安装。 在任何支持 HTTP 的 MCP 客户端中使用托管服务:
https://api.waxseal.id/mcp
这 6 个工具可为你的 Agent 提供:
| 工具 | 功能 | 需要密钥? |
|---|---|---|
waxseal.info | 平台概览、层级和工具指南 | 否 |
waxseal.identity.verify | 查询指纹 → 名称、链、钱包、状态 | 否 |
waxseal.signature.verify | 根据链上密钥确认 Ed25519 签名 | 否 |
waxseal.approval.verify | 执行前验证人工审批令牌 | 否 |
waxseal.document.sign | 使用你的 WaxSeal 私钥签署任意内容 | 是 |
waxseal.approval.create | 创建有时限的签名审批令牌 | 是 |
仅用于验证的工具无需任何配置即可使用。签名工具需要 WAXSEAL_PRIVATE_KEY_PEM。
→ 完整 MCP 文档 · Smithery 列表 · npm
@waxseal/verify——面向应用和后端 {#waxsealverify}
npm install @waxseal/verify
可用于 React、Vue、Node.js、n8n、无服务器函数,以及任何支持 fetch 的运行时。
两种模式,一个指纹
模式 1 · 徽章验证
“这个 WaxSeal 存在且是真的吗?”
确认印章已记录在链上。无需用户交互——仅凭指纹即可完成验证。
使用场景
- ✦ 在博客文章和资讯中展示作者认证徽章
- ✦ 在 GitHub 风格的工具中验证贡献者身份
- ✦ 在 CMS 平台上验证发布者身份
- ✦ 证明你比 AI 更早创作了某样内容
import { verifySeal } from "@waxseal/verify";
const seal = await verifySeal({ fingerprint: "a1b2c3d4..." });
if (seal.valid && seal.onChain) {
console.log(seal.displayName, "·", seal.chain);
// "Ada Lovelace · base"
}
模式 2 · 登录与操作审批
“此人刚刚签署了这份内容,对吗?”
已签名的质询可证明密钥持有者本人在场——彻底取代密码、OTP 和邮件验证流程。
使用场景
- ✦ 无密码登录——无需邮箱、OTP 或容易遭到入侵的凭据
- ✦ 批准文档或高价值交易
- ✦ 通过已验证身份来限制评论、帖子或投票
- ✦ 仅向已验证的印章持有者发放 API 密钥
- ✦ 在 n8n / Make.com / Zapier 中自动执行身份检查
const seal = await verifySeal({
fingerprint: "a1b2c3d4...",
message: "I approve this transfer.",
signature: "base64url...",
});
if (seal.valid && seal.onChain && seal.signatureValid) {
// Cryptographic proof — no password, no session token
}
React 徽章
import { WaxSealBadge } from "@waxseal/verify/badge";
<WaxSealBadge fingerprint="a1b2c3d4..." />
也可以自行构建:
import { useEffect, useState } from "react";
import { verifySeal, type VerifyResult } from "@waxseal/verify";
export function SealBadge({ fingerprint }: { fingerprint: string }) {
const [seal, setSeal] = useState<VerifyResult | null>(null);
useEffect(() => {
let active = true;
verifySeal({ fingerprint }).then((r) => active && setSeal(r));
return () => { active = false; };
}, [fingerprint]);
if (!seal?.valid || !seal.onChain) return null;
return (
<a href={`https://waxseal.id/seal/${seal.fingerprint}`} target="_blank" rel="noopener noreferrer">
✦ {seal.displayName ?? seal.fingerprint.slice(0, 8)}
</a>
);
}
HTML 嵌入(无需构建步骤)
<script src="https://waxseal.id/embed.js"></script>
<span data-wax-seal="YOUR_64_CHAR_FINGERPRINT"></span>
电子邮件——邮件客户端会屏蔽脚本标签。请改用普通链接:
<a href="https://waxseal.id/seal/YOUR_FINGERPRINT">Verify my Wax Seal</a>
Webhook 验证
import { verifyWebhookSignature, isWaxSealWebhookEvent } from "@waxseal/verify/webhooks";
app.post("/webhook/waxseal", express.raw({ type: "*/*" }), (req, res) => {
const valid = verifyWebhookSignature({
body: req.body,
signature: String(req.headers["x-waxseal-signature"]),
secret: process.env.WAXSEAL_WEBHOOK_SECRET,
});
if (!valid) return res.status(401).send("Invalid signature");
const event = JSON.parse(req.body.toString());
if (isWaxSealWebhookEvent(event, "seal.minted")) {
console.log("New seal:", event.data.fingerprint, "on", event.data.chain);
}
res.sendStatus(200);
});
Webhook 事件
| 事件 | 触发时机 |
|---|---|
seal.verified | 通过 API 验证印章时 |
seal.minted | 在链上铸造新的印章 NFT 时 |
seal.updated | 印章名称、头像或元数据发生更改时 |
seal.subscription.started | 印章持有者开始付费订阅时 |
seal.subscription.ended | 订阅到期或取消时 |
challenge.approved | 登录质询通过验证——用户已通过身份验证 |
REST API——无需 SDK,无需密钥
POST https://api.waxseal.id/v1/verify
Content-Type: application/json
{
"fingerprint": "<64-char hex>",
"message": "...",
"signature": "..."
}
{
"valid": true,
"onChain": true,
"chain": "base",
"displayName": "Ada Lovelace",
"walletAddress": "0x…",
"signatureValid": true,
"verifiedAt": "2026-01-01T00:00:00Z"
}
兼容各种技术栈
| 技术栈 | 方式 |
|---|---|
| React / Vue / Svelte | npm install @waxseal/verify |
| Node.js / Express | 同一软件包 + Webhook 助手 |
| n8n | HTTP Request 节点 → REST API,或在 Code 节点中使用 npm 软件包 |
| Make.com | HTTP 模块 → REST API |
| Zapier | Webhook by Zapier 触发器 |
| PHP / Python / Go | 向 REST API 发送普通 HTTP POST 请求 |
| 静态 HTML / CMS | 两行 embed.js 代码片段 |
| Claude / Cursor / Windsurf / VS Code | @waxseal/mcp |
VerifyResult 类型
type VerifyResult = {
valid: boolean;
fingerprint: string;
onChain: boolean;
chain?: "ethereum" | "base" | "bnb";
walletAddress?: string;
displayName?: string;
publicKeyConfirmed?: boolean;
signatureValid?: boolean;
verifiedAt?: string;
error?: string;
};
MIT © Wax Seal
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。