Waxseal

io.github.degenlegion-com由 GitHub 账号 degenlegion-com 发布v1.0.2更新于 Oct 24, 2026

Ed25519 identity for AI agents. Verify seals, sign documents, gate actions with approvals.

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

Waxseal 为 AI 助手提供 Ed25519 身份层:验证链上印章与签名、签署文档,并创建有时限的审批令牌。

可以做什么
按指纹查询印章,返回名称、链、钱包与状态,并对照链上公钥确认 Ed25519 签名(waxseal.identity.verify、waxseal.signature.verify)。在执行动作前校验人工审批令牌(waxseal.approval.verify)。用配置的私钥对任意内容签名(waxseal.document.sign)。创建已签名、有时限的审批令牌(waxseal.approval.create)。读取平台概览、套餐与工具说明(waxseal.info)。
适用场景
当助手在行动前需要确认某个人或印章真实可信时使用;也适合需要留下密码学记录,证明助手签署了文档或人工批准了某一步骤的场景。验证类工具无需任何密钥,仅做身份核验时可以低成本试用。
运行要求
通过 npx @waxseal/mcp 以 stdio 在本地运行(需要 Node.js),或使用托管的 HTTP 端点。签名与创建审批需要 WAXSEAL_PRIVATE_KEY_PEM 中的 Ed25519 私钥 PEM;三个验证工具和 waxseal.info 无需密钥。验证依赖 Waxseal 服务与链上数据,因此需要网络访问。
安装前请注意
WAXSEAL_PRIVATE_KEY_PEM 是私钥,持有者即可代表该身份签名,请勿放入共享配置或日志。签名工具会生成长期有效的签名产物和审批令牌,可能用于放行真实操作,签署前应确认内容。验证会把指纹与签名发送到 Waxseal API,并依赖其链上记录。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Waxseal,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[WaxSeal SDK]

WaxSeal SDK

Cryptographic identity for the open web and for AI agents.
One Ed25519 keypair. One 64-character fingerprint. Permanent on-chain record.

waxseal.id · Developer Docs · Get your seal

[MIT License] [TypeScript] [REST API] [@waxseal/verify on npm] [@waxseal/mcp on npm] [Glama MCP score]


Packages

PackageWhat it isInstall
@waxseal/verifyBrowser + Node SDK — verify identities, validate signatures, embed badges, verify webhooksnpm install @waxseal/verify
@waxseal/mcpMCP server for Claude, Cursor, Windsurf, and VS Code — verify identities, sign documents, gate AI actions with human approvalsnpx @waxseal/mcp

@waxseal/mcp — for AI agents

[Smithery] [npm]

Give Claude, Cursor, Windsurf, or VS Code Copilot a cryptographic identity layer in under two minutes.

json
{  "mcpServers": {    "waxseal": {      "command": "npx",      "args": ["-y", "@waxseal/mcp"],      "env": {        "WAXSEAL_PRIVATE_KEY_PEM": "-----BEGIN PRIVATE KEY-----\n<your key>\n-----END PRIVATE KEY-----"      }    }  }}

No install needed. Use the hosted server in any HTTP-capable MCP client: https://api.waxseal.id/mcp

What the 6 tools give your agent:

ToolWhat it doesKey needed?
waxseal.infoPlatform overview, tiers, and tool guideNo
waxseal.identity.verifyLook up fingerprint → name, chain, wallet, statusNo
waxseal.signature.verifyConfirm an Ed25519 signature against an on-chain keyNo
waxseal.approval.verifyValidate a human approval token before executingNo
waxseal.document.signSign any content with your WaxSeal private keyYes
waxseal.approval.createCreate a signed, time-limited approval tokenYes

Verify-only tools work with zero configuration. Signing tools require WAXSEAL_PRIVATE_KEY_PEM.

→ Full MCP docs · Smithery listing · npm


@waxseal/verify — for apps and backends {#waxsealverify}

[npm]
bash
npm install @waxseal/verify

Works in React, Vue, Node.js, n8n, serverless functions, and any runtime with fetch.

[WaxSeal examples]

Two modes, one fingerprint

Mode 1 · Badge Verification

"Does this WaxSeal exist and is it real?"

Confirm a seal is on-chain. No user interaction required — the fingerprint alone is enough.

Use cases

  • ✦ Verified author badge on blog posts and articles
  • ✦ Contributor identity on GitHub-style tools
  • ✦ Publisher verification on CMS platforms
  • ✦ Prove you created something before AI did
ts
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"}

Mode 2 · Login & Action Approval

"Did this person sign this, right now?"

A signed challenge proves the key holder is present — replaces passwords, OTP, and email loops entirely.

Use cases

  • ✦ Passwordless sign-in — no email, no OTP, no credentials to breach
  • ✦ Approve a document or high-value transaction
  • ✦ Gate a comment, post, or vote behind verified identity
  • ✦ Issue an API key only to verified seal holders
  • ✦ Automate identity checks in n8n / Make.com / Zapier
ts
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 Badge

tsx
import { WaxSealBadge } from "@waxseal/verify/badge";
<WaxSealBadge fingerprint="a1b2c3d4..." />

Or build your own:

tsx
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 Embed (no build step)

html
<script src="https://waxseal.id/embed.js"></script><span data-wax-seal="YOUR_64_CHAR_FINGERPRINT"></span>

Email — script tags are blocked by mail clients. Use a plain link instead: <a href="https://waxseal.id/seal/YOUR_FINGERPRINT">Verify my Wax Seal</a>


Webhook Verification

ts
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 events

EventWhen it fires
seal.verifiedA seal was verified via the API
seal.mintedA new seal NFT was minted on-chain
seal.updatedSeal name, avatar, or metadata changed
seal.subscription.startedA seal holder started a paid subscription
seal.subscription.endedA subscription expired or was cancelled
challenge.approvedA login challenge was verified — user authenticated

REST API — no SDK, no key required

POST https://api.waxseal.id/v1/verifyContent-Type: application/json
{  "fingerprint": "<64-char hex>",  "message":     "...",  "signature":   "..."}
json
{  "valid": true,  "onChain": true,  "chain": "base",  "displayName": "Ada Lovelace",  "walletAddress": "0x…",  "signatureValid": true,  "verifiedAt": "2026-01-01T00:00:00Z"}

Works with everything

StackHow
React / Vue / Sveltenpm install @waxseal/verify
Node.js / ExpressSame package + webhook helper
n8nHTTP Request node → REST API, or npm package in Code node
Make.comHTTP module → REST API
ZapierWebhook by Zapier trigger
PHP / Python / GoPlain HTTP POST to the REST API
Static HTML / CMSTwo-line embed.js snippet
Claude / Cursor / Windsurf / VS Code@waxseal/mcp

VerifyResult type

ts
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

来源:README.md,提交 5e2e006

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.0.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分