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 分