Skip to main content
Glama

Packages

Package

What it is

Install

@waxseal/verify

Browser + Node SDK — verify identities, validate signatures, embed badges, verify webhooks

npm install @waxseal/verify

@waxseal/mcp

MCP server for Claude, Cursor, Windsurf, and VS Code — verify identities, sign documents, gate AI actions with human approvals

npx @waxseal/mcp


Related MCP server: Agent Receipts

@waxseal/mcp — for AI agents

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

{
  "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:

Tool

What it does

Key needed?

waxseal.info

Platform overview, tiers, and tool guide

No

waxseal.identity.verify

Look up fingerprint → name, chain, wallet, status

No

waxseal.signature.verify

Confirm an Ed25519 signature against an on-chain key

No

waxseal.approval.verify

Validate a human approval token before executing

No

waxseal.document.sign

Sign any content with your WaxSeal private key

Yes

waxseal.approval.create

Create a signed, time-limited approval token

Yes

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 install @waxseal/verify

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

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

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

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

import { WaxSealBadge } from "@waxseal/verify/badge";

<WaxSealBadge fingerprint="a1b2c3d4..." />

Or build your own:

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)

<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

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

Event

When it fires

seal.verified

A seal was verified via the API

seal.minted

A new seal NFT was minted on-chain

seal.updated

Seal name, avatar, or metadata changed

seal.subscription.started

A seal holder started a paid subscription

seal.subscription.ended

A subscription expired or was cancelled

challenge.approved

A login challenge was verified — user authenticated


REST API — no SDK, no key required

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"
}

Works with everything

Stack

How

React / Vue / Svelte

npm install @waxseal/verify

Node.js / Express

Same package + webhook helper

n8n

HTTP Request node → REST API, or npm package in Code node

Make.com

HTTP module → REST API

Zapier

Webhook by Zapier trigger

PHP / Python / Go

Plain HTTP POST to the REST API

Static HTML / CMS

Two-line embed.js snippet

Claude / Cursor / Windsurf / VS Code

@waxseal/mcp


VerifyResult type

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

Available Tools

6 tools
waxseal.approval.createA

Create a signed approval token that proves a human explicitly authorized a specific AI agent action. The token encodes the action, context, expiry, and is signed with the user's WaxSeal key. Pass the token to the AI agent — it calls waxseal.approval.verify before executing. Requires WAXSEAL_PRIVATE_KEY_PEM.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesDescription of the action being approved (e.g. 'Deploy v2.1.0 to production', 'Transfer 500 USDC to vendor wallet 0xabc...').
contextNoAdditional parameters or context for the action (optional).
expires_in_minutesNoMinutes until the approval expires. Defaults to 10.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the token encodes action, context, expiry, is signed, and requires a private key. However, it does not detail error conditions (e.g., invalid key) or output format. Overall, good transparency for a simple crypto token creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each essential: purpose, encoding details, and usage workflow. It is front-loaded with the main goal and avoids fluff. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple invocation (3 params, no output schema), the description covers creation, usage, and prerequisite. It lacks explicit mention of the output type (e.g., string token) and error scenarios. However, it is largely complete for an agent to understand usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description reinforces the parameter purposes (e.g., action as description) but does not add significant new meaning beyond the schema, which already has clear examples. No extra value beyond confirmation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a signed approval token proving human authorization for an AI agent action. It distinguishes from siblings like waxseal.approval.verify by explaining the workflow (pass token to agent, which verifies). The verb 'create' and resource 'approval token' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use: when a human needs to authorize an AI agent action. It mentions the workflow (pass token to agent) and a prerequisite (requires WAXSEAL_PRIVATE_KEY_PEM). It does not explicitly state when not to use, but sibling differentiation is clear from the workflow mention.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waxseal.approval.verifyA

Verify a WaxSeal approval token before an AI agent executes a high-risk or irreversible action. Checks the cryptographic signature, expiry, and optionally confirms the signer's fingerprint. Returns valid: true only when the token is authentic, unexpired, and the signer is on-chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
approval_tokenYesThe base64-encoded approval token returned by waxseal.approval.create.
expected_fingerprintNoIf provided, the verification also confirms the token was signed by this specific fingerprint.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that verification checks signature, expiry, and optionally fingerprint, and returns valid: true only when conditions are met. This is transparent, though it could mention read-only nature or potential error responses.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: first sets purpose and usage context, second details verification steps, third defines the success condition. Every sentence is informative and essential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two parameters and no output schema, the description covers input semantics and the return condition for success. However, it does not describe error responses or the shape of failure, which would complete the picture for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, and the description adds value by linking approval_token to its creation (waxseal.approval.create) and explaining expected_fingerprint's conditional behavior. This goes beyond the schema's bare descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool verifies a WaxSeal approval token, specifying the action (verify), resource (approval token), and what it checks (cryptographic signature, expiry, optionally fingerprint). It distinguishes from siblings like waxseal.approval.create and waxseal.signature.verify by focusing on approval tokens specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using this tool 'before an AI agent executes a high-risk or irreversible action,' providing clear context. While it does not list alternatives or when not to use, the context is sufficient for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waxseal.document.signA

Sign a document or message with the user's WaxSeal Ed25519 private key. Requires the WAXSEAL_PRIVATE_KEY_PEM environment variable to be set. Returns the fingerprint, SHA-256 content hash, and base64 Ed25519 signature — verifiable by anyone using waxseal.signature.verify.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe document text or data to sign.
descriptionNoHuman-readable label for what is being signed (optional, informational only).

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses return values and verifiability but does not state whether the operation is side-effect-free or if multiple calls are safe.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no wasted words. Efficiently communicates key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two simple parameters and no output schema, the description fully explains inputs, prerequisites, and return values (fingerprint, hash, signature). The verifiability note adds useful context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; both parameters are documented in the schema. Description only restates the 'description' param's purpose, adding no new information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Sign'), the resource ('document or message'), and the key algorithm ('WaxSeal Ed25519 private key'). It differentiates from siblings by mentioning verifiability via waxseal.signature.verify.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly requires the WAXSEAL_PRIVATE_KEY_PEM environment variable, setting a clear prerequisite. Implicitly contrasts with verification tools in siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waxseal.identity.verifyA

Look up a WaxSeal cryptographic identity by its 64-character hex fingerprint. Returns on-chain status, display name, chain, owner wallet, lifecycle status, and the public key. Works for any minted WaxSeal on Ethereum, Base, or BNB Chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
fingerprintYes64-character hex fingerprint — the SHA-256 of the raw Ed25519 public key. Also accepted with a 0x prefix.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It explicitly lists the returned fields (on-chain status, display name, chain, owner wallet, lifecycle status, public key), making it clear this is a read-only operation. It does not disclose potential side effects or auth needs, but those are likely irrelevant for a lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The first sentence states the action and input, the second lists outputs and scope. Every sentence adds value, and the key info is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 param, no output schema, no nested objects), the description is complete enough: it covers input format, output contents, and supported chains. Missing error handling or edge cases, but these are minor for a straightforward lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for 'fingerprint'. The description adds utility details: SHA-256 of Ed25519 public key and optional 0x prefix, which goes beyond the schema's baseline and helps the agent format input correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: look up a WaxSeal cryptographic identity by hex fingerprint. It distinguishes from sibling tools (approvals, signatures, info) by specifying it returns identity-related data like on-chain status, display name, chain, owner, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: when you have a fingerprint and want identity details. It mentions supported chains but provides no explicit when-not-to-use or alternatives. Minimal guidance beyond the core purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waxseal.infoA

Returns an overview of the WaxSeal cryptographic trust infrastructure platform — what it is, the 11 trust layers it covers, available tiers, and how to use these MCP tools. Call this first if you are unfamiliar with WaxSeal.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It accurately describes a non-destructive, read-only operation returning an overview. No side effects or permissions are needed, but it could mention if any authentication is required, though not critical for an info tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the key information. Every word serves a purpose, and there is no redundancy or wasted space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, no-output-schema info tool, the description fully covers what the tool does, what it returns, and when to use it. It is complete and leaves no gaps in understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the schema coverage is trivially 100%. According to the rubric, a baseline of 4 is appropriate when there are zero parameters, as there is no additional information needed beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns an overview of the WaxSeal platform, including its trust layers, tiers, and usage guidance. It effectively distinguishes itself from sibling tools (e.g., waxseal.approval.create) which perform specific actions, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to call this first if unfamiliar with WaxSeal, providing clear context for when to use. However, it does not explicitly state when not to use it or suggest alternatives for familiar users, so it falls slightly short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waxseal.signature.verifyA

Verify an Ed25519 signature produced by waxseal.document.sign (or any WaxSeal-compatible signer). Fetches the public key for the fingerprint from the WaxSeal network, then verifies locally. The seal must be minted on-chain for verification to succeed.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe original document text or data that was signed.
signatureYesBase64 Ed25519 signature returned by waxseal.document.sign.
fingerprintYes64-character hex fingerprint of the signer.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description effectively discloses key behaviors: it fetches the public key from the WaxSeal network and performs local verification. It explains a precondition (on-chain minting). However, it could be more explicit about potential failures (e.g., network issues, invalid signature format) or success conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long with no fluff. The first sentence immediately states the core purpose, followed by two sentences explaining the verification process and a key requirement. Each sentence adds essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is simple with 3 well-documented parameters and no output schema, the description covers the main actions and preconditions. However, it does not specify the return value (presumably boolean or status), which is helpful for an agent to interpret the result. This gap prevents a higher score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and parameter descriptions are already informative. The tool description adds context that the signature is 'Base64 Ed25519 signature returned by waxseal.document.sign' and the fingerprint is '64-character hex', which helps agents understand the expected formats beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: verifying an Ed25519 signature produced by a specific signer. It specifies the algorithm, the source (WaxSeal network), and a precondition. Differentiates from sibling tools like waxseal.approval.verify and waxseal.identity.verify by focusing on pure signature verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use the tool: after signing with waxseal.document.sign or any WaxSeal-compatible signer. It also mentions a precondition (seal must be minted on-chain). While it doesn't explicitly state when not to use or list alternatives, the context is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedwaxseal.approval.create
    • First observedwaxseal.approval.verify
    • First observedwaxseal.document.sign
    • First observedwaxseal.identity.verify
    • First observedwaxseal.info
    • First observedwaxseal.signature.verify

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a uniquely defined purpose: creating/verifying approval tokens, signing/verifying documents, looking up identities, and returning platform info. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a strict waxseal.<category>.<action> naming scheme (e.g., waxseal.approval.create, waxseal.identity.verify). Verbs and categories are consistently applied.

Tool Count5/5

6 tools cover the essential operations of a cryptographic trust platform: identity, signatures, approvals, and info. The number is well-balanced and not excessive or insufficient.

Completeness4/5

The tool set covers the core workflow—sign, verify, approve, lookup identity, and get info. A minor gap is the lack of revocation or listing operations, but the primary use cases are addressed.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    On-chain trust verification for AI agent tools. Agents query skill attestations, audit levels, and risk scores before running third-party MCP servers, so you know what's safe before you execute.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    E-signature for AI agents. An MCP server that lets Claude Code, Cursor, Zed, or any MCP-aware agent prepare, send, track, and seal legally binding documents without a human ever touching a mouse.
    6 npm
    MIT