EU AI Act: Article 50 transparency from 2 Aug 2026, Article 12 logging from 2 Dec 2027how MolTrust supports both → EU AI Act · Art. 50 Aug 2026 · Art. 12 Dec 2027 →
§
🌙 Toggle Dark Mode Home MoltGuard MoltProof MT Global · Regulated Markets MolTrust Sports MT Shopping MT Travel MT Skills MT Prediction MT Salesguard MT Music Integrity Dashboard VCOne Blog Developers Pricing Enterprise Partners Compliance About Publications Verify Us Status Contact API Docs

Build agents that can prove what they did.

An identity and a mandate going in. A recomputable record coming out — verify it yourself, or hand it to a partner, a bank, or an auditor.

Get your free API key → Run a live call →

Email only, no card — 100 credits on registration.  🇨🇳 中文文档

Step 1 · free

Identity + mandate

One call: a W3C identity, a signed credential, an on-chain anchor. Add an AAE mandate — what the agent may do, up to which limit.

Step 2 · the record

The record

Every action becomes a MoltProof — hashed, batched, anchored on Base L2. Recomputable by anyone, later.

Step 3 · disputes and compliance

Verify

Check a credential offline against Base L2, no key. Hand a recomputable proof to a partner, a bank, or an auditor.

Verify an agent in 2 minutes

Three steps, three copy-paste blocks, ending in a real signed verdict. Every path below is verified live against the MolTrust API v1.

1

Get a free API key

Email only, no card. Returns a key with 100 credits.

bash
curl -s -X POST https://api.moltrust.ch/auth/signup \ -H "Content-Type: application/json" \ -d '{"email":"you@example.com"}' # → returns { "api_key": "..." }; export it: export MOLTRUST_API_KEY=<your key>
2

Register your agent

Costs no credits. Returns a full signed AgentTrustCredential + 100 credits. Trust score is withheld until the agent has ≥3 endorsements.

bash
curl -s -X POST https://api.moltrust.ch/identity/register \ -H "X-API-Key: $MOLTRUST_API_KEY" \ -H "Content-Type: application/json" \ -d '{"name":"my-agent","description":"autonomous buyer"}'
3

Read a live trust score — the result

Public, no key. This returns a real signed score payload from the network.

bash
curl -s https://api.moltrust.ch/skill/trust-score/did:moltrust:d34ed796a4dc4698
GET /skill/trust-score/...

See the full A2A self-onboarding flow →

Drop it into your stack

One line of trust verification, any framework. Pick yours — install, then read the setup guide.

Node — Express / Hono / Fastify

Verify agents at your API with @moltrust/sdk middleware.

bash
npm install @moltrust/sdk
Setup for Express / Hono / Fastify →

CrewAI

Trust check before every tool call — one guardrail.

bash
pip install moltrust-crewai
CrewAI setup →

LangChain 1.x

Middleware for create_agent — gate by trust score.

bash
pip install moltrust-langchain
LangChain setup →

Google ADK ⚠️ Experimental

Request interceptor for A2A remote agents.

bash
pip install moltrust-adk
Google ADK setup →

OpenClaw

Same IPR evidence — anchored or attested. The attested path needs no chain access.

bash
openclaw plugins install @moltrust/openclaw
Anchored vs attested →

MCP (Claude, etc.)

44 tools for trust verification, scoring & credentials.

bash
pip install moltrust-mcp-server
MCP endpoint →

Node adapters

typescript
import express from 'express'; import { AgentTrust } from '@moltrust/sdk'; const app = express(); // Verify all agents — minimum trust score 60 (optional) app.use(AgentTrust.verify({ minScore: 60 })); app.post('/api/purchase', (req, res) => { const { did, trustScore, aae } = req.agentVerification; // AAE already evaluated — safe to proceed res.json({ authorized: true, agentDid: did }); });
typescript
import { Hono } from 'hono'; import { AgentTrust } from '@moltrust/sdk'; const app = new Hono(); app.use('*', AgentTrust.honoVerify({ minScore: 60 })); app.post('/api/purchase', (c) => { const verification = c.get('agentVerification'); return c.json({ authorized: true, did: verification.did }); });
typescript
import Fastify from 'fastify'; import { AgentTrust } from '@moltrust/sdk'; const app = Fastify(); app.addHook('preHandler', AgentTrust.verify({ minScore: 60 }));

Python agent frameworks

Trust verification before every tool call — one line. Read the walkthrough →

CrewAI

python
# pip install moltrust-crewai from moltrust_crewai import MolTrustGuardrail guard = MolTrustGuardrail(min_score=60) guard.install() # registers before_tool_call hook
PyPI →GitHub →

LangChain 1.x

python
# pip install moltrust-langchain from moltrust_langchain import MolTrustMiddleware from langchain.agents import create_agent agent = create_agent( model="anthropic:claude-sonnet-4-6", tools=[...], middleware=[MolTrustMiddleware(min_score=60)], )
PyPI →GitHub →

Google ADK ⚠️ Experimental

python
# pip install moltrust-adk from moltrust_adk import create_trust_interceptor interceptor = create_trust_interceptor(did="did:moltrust:...", min_score=60) # pass to A2aRemoteAgentConfig(request_interceptors=[interceptor])
PyPI →GitHub →

What each package gives you

Benefit first. Pick by what you're building — each is an independent install.

@moltrust/sdk

Use it when you want to gate agents at your API — Express / Hono / Fastify: verify(), register(). Pulls in @moltrust/aae.

bash
npm install @moltrust/sdk

@moltrust/verify

Use it when you want to verify credentials offline — W3C VC + IPR against Base L2. No MolTrust API key.

bash
npm install @moltrust/verify

@moltrust/x402 · @moltrust/mpp

Use them when you want to gate paid endpoints — x402 payments, or MPP (Stripe / Tempo / Visa). Same requireScore() shape.

bash
npm install @moltrust/x402 # or @moltrust/mpp
Payment middleware →

@moltrust/aae

Use it when you want to author or validate an AAE — schema + runtime validator. Already pulled in by the SDK.

bash
npm install @moltrust/aae

@moltrust/agent-firewall

Use it when you want to react when trust changes post-onboarding — CAEP Profile v1 event-reactive layer.

bash
npm install @moltrust/agent-firewall
How it reacts →

@moltrust/openclaw · moltrust-mcp-server

Use them for an agent runtime (OpenClaw plugin) or an MCP client (Claude, etc., PyPI).

bash
openclaw plugins install @moltrust/openclaw

@moltrust/verify and @moltrust/agent-firewall are standalone consumer libraries — no MolTrust API key. @moltrust/sdk declares @moltrust/aae as a dependency, so installing the SDK pulls AAE in automatically.

Payment middleware — x402 & MPP

One line gates a paid endpoint by trust score. Same requireScore() API for both @moltrust/x402 (x402 payments) and @moltrust/mpp (MPP — Stripe / Tempo / Visa). Untrusted agents get a 403 before they transact.

javascript
// npm install @moltrust/x402 (or @moltrust/mpp — same shape) const { requireScore } = require('@moltrust/x402'); app.use(requireScore({ minScore: 60 })); // req.moltrust available downstream app.post('/api/data', requireScore({ minScore: 50 }), (req, res) => { const { wallet, score } = req.moltrust; res.json({ message: 'Welcome, score ' + score }); });
1. Extract

Wallet from the x402 / MPP payment header.

2. Score

MolTrust trust score (5-min cache, <10ms warm).

3. Gate

403 + registration link if below threshold.

Every x402 wallet also gets an automatic Wallet Trust Profile (shadow score, history, projected score after registration): GET https://api.moltrust.ch/wallet/{address} · public page /wallet/{address}.

Two ways to carry the evidence

Same identity, same mandate, same MoltProof. What differs is where the proof lives — and how strong the claim is.

Anchored · Base L2 · default

Anchored

Every record is anchored on the public chain and recomputable by anyone, for years. The proof stands on the chain — no trust in us required. Default for global on-chain agents.

Attested · API-only · the weaker claim

Attested

No blockchain, no VPN — for regulated markets (China, India) and OpenClaw deployments without chain access. Records are verifiable against MolTrust's signed log, not recomputable from the public chain; you're trusting our signature. It is the weaker guarantee — use it where the chain isn't reachable.

Protocol internals

Not needed to start. Open a topic when you want it.

Trust scoring — why a fresh agent starts at null, not 0

A freshly registered agent does not start at a fixed grade. Until it has at least three endorsements, its score is withheldGET /skill/trust-score/{did} reports it as null, not 0. That is the expected starting state, not an error. Grades run S / A / B / C / D / F over a 0–100 score.

Agent Authorization Envelope (AAE) — the mandate that gets proven later

AAE is configured via POST /delegation/configure after registration — a machine-readable permission contract your API can inspect. The credential from /identity/register does not embed it.

📜 MANDATE

  • Purpose & allowed actions
  • Denied actions
  • Target resources
  • Delegation rules

🔒 CONSTRAINTS

  • Time bounds & TTL
  • Financial thresholds
    Autonomous: < $100 · Step-up: $100–$10,000 · Human approval: > $10,000
  • Jurisdictions
  • Counterparty min score

✅ VALIDITY

  • Issuer DID
  • Holder binding
  • Expiry timestamp
  • Revocation endpoint
  • Base L2 anchor

Protocol Whitepaper v0.8 → · did:moltrust Method Specification →

IPR / Evidence — what a MoltProof is under the hood (Interaction Proof Records, Merkle-batched on Base L2)

Under the hood, a MoltProof is an Interaction Proof Record (IPR). Every agent action can produce one — IPRs are Merkle-batched and anchored on Base L2.

POST /vc/ipr/submit

Submit an IPR. Provide output_hash (SHA-256), agent_did, and confidence score. Returns ipr_id.

GET /vc/ipr/{ipr_id}

Retrieve an IPR by ID. Returns output_hash, anchor status, Merkle proof, and Base L2 transaction hash.

POST /vc/ipr/verify

Verify an IPR: checks signature, on-chain anchor, and Merkle proof. Returns validity + anchor TX link.

GET /vc/ipr/agent/{did}

List all IPRs for an agent. Paginated. Returns proof records with anchor status and Merkle proofs.

GET /vc/ipr/stats

Network-wide IPR statistics: total records, anchored count, unique agents, average confidence score.

GET /vc/ipr/{ipr_id}/status

Anchor status of a specific IPR: pending, anchored, or failed. Includes retry count and block number.

Sequential Action Safety (SAS) — pre-execution check for order-sensitive sequences

Pre-execution safety check for order-sensitive action sequences. Opt-in, deterministic, no LLM calls. Phase 1: WARN-only.

POST /guard/api/action/check

Check a proposed action against the session history. Returns verdict (SAFE/WARN/BLOCK), residual score, and conflicting action.

GET /guard/api/action/stats

Aggregated SAS statistics: total events, breakdown by verdict, average residual.

GET /guard/api/action/events/{did}

SAS events for a specific DID. Shows all WARN/BLOCK events with residual scores and conflicting actions.

Kernel-level enforcement (Falco) — syscall-level, not bypassable from userspace

MolTrust supports a third enforcement layer via Falco eBPF — syscall-level monitoring that agents cannot bypass from userspace.

Layer 1 — Cryptographic

Ed25519 signatures, JCS canonicalization. Tamper-proof by construction.

Layer 2 — API

Trust score degradation, IPR submission, credential revocation.

Layer 3 — Kernel

Falco eBPF/syscall detection. Not bypassable by the agent process.

When a policy violation is detected at the kernel level, Falco fires a webhook to the MolTrust bridge, which submits an IPR violation record — trust score degrades automatically. Reference implementation →

Agent Firewall / CAEP — react in real time when a counterparty's trust changes

Identity plus a one-time score check isn't enough: a counterparty you onboarded yesterday can be revoked or downgraded today. @moltrust/agent-firewall polls the registry's CAEP Profile v1 and fires typed events on trust-score changes and revocations, with the new score verified end-to-end (JCS + Ed25519) before your handler runs.

GET /caep/pending/{did}

Cursor-based pending events. Rate limit 120 polls/h per DID (30 s interval, server-enforced).

POST /caep/acknowledge/{event_id}

Idempotent soft-ack, 90-day retention.

GET /.well-known/registry-key.json

Ed25519 JWK for signature verification.

GET /skill/trust-score/{did}

Signed score payload (JCS + Ed25519, kid moltrust-registry-2026-v1).

javascript
# 1 — install npm install @moltrust/agent-firewall // 2 — instantiate, watching the counterparties you depend on import { MoltrustCaepClient } from '@moltrust/agent-firewall'; const fw = new MoltrustCaepClient({ watch: ['did:moltrust:<counterparty>'] }); // 3 — react: re-gate on score drop, block on revocation fw.on('trust_score_change', (s) => regate(s.did, s.score)); fw.on('did_revoked', (did) => block(did)); await fw.start();

Polling-only (CAEP Profile v1, proprietary — not OpenID SET). Page size: server default limit=50 (max 500). Typed handlers fire only for cryptographically-verified events by default.

Show your trust score — a live README badge

One line in your README. The badge fetches your live trust score automatically.

markdown
[![MolTrust Verified](https://api.moltrust.ch/badge/YOUR_DID)](https://moltrust.ch)
Live preview:MolTrust Verified

Your agent onboards itself

Your agent discovers, registers, and gets its credentials — without you in the loop. Point it at our agent-card and walk away. Every path below is verified live against the MolTrust API v1.

bash
# 0 — Get an API key (one-time): POST https://api.moltrust.ch/auth/signup # Reference: https://api.moltrust.ch/docs export MOLTRUST_API_KEY=<your key> # 1 — Discover the registry's capabilities (public, no key) curl -s https://api.moltrust.ch/.well-known/agent-card.json # 2 — Register (needs X-API-Key). Returns a full signed AgentTrustCredential + 100 credits. # Costs no credits; trust score is withheld until the agent has >=3 endorsements. curl -s -X POST https://api.moltrust.ch/identity/register \ -H "X-API-Key: $MOLTRUST_API_KEY" \ -H "Content-Type: application/json" \ -d '{"name":"my-agent","description":"autonomous buyer"}' # 3 — Inspect your own extended agent-card (use the did from step 2) curl -s https://api.moltrust.ch/a2a/agent-card/did:moltrust:YOUR_DID # 4 — Subscribe to trust events for any counterparty (CAEP polling, 120/h per DID) npm install @moltrust/agent-firewall # 5 — Sign downstream requests so counterparties can verify you curl https://partner.example/resource \ -H "X-MolTrust-DID: did:moltrust:YOUR_DID"

did:moltrust is the only supported DID method today; did:web and did:key are not accepted. You bring no key material in advance — POST /identity/register provisions your identifier and its Ed25519 signing key, publishes the public key in your DID document, and anchors it on Base L2.

API reference

VerifyOptions

OptionTypeDefaultDescription
minScorenumber0Minimum trust score required to pass verification. Agents below this threshold receive a 403.
requireAAEbooleanfalseRequire a valid Agent Authorization Envelope in the credential. Rejects agents without one.
evaluateActionstringCheck whether the AAE mandate permits this specific action (e.g. "purchase", "transfer").
evaluateAmountnumberEvaluate AAE financial constraints against this transaction amount (USD).
evaluateJurisdictionstringVerify the AAE permits operations in this ISO 3166-1 jurisdiction code.
apiBasestringapi.moltrust.chOverride the MolTrust API base URL. Useful for staging or self-hosted deployments.

AgentVerification interface

typescript
interface AgentVerification { did: string; // e.g. "did:moltrust:d34ed796a4dc4698" trustScore: number; // 0–100 grade: 'S'|'A'|'B'|'C'|'D'|'F'; aae: AAE | null; // parsed Agent Authorization Envelope credential: VerifiableCredential; // full W3C VC issuer: string; // issuer DID issuedAt: Date; expiresAt: Date; onChainAnchor: string | null; // Base L2 tx hash }

@moltrust/sdk

Express + Hono middleware. AgentTrust.verify(), .middleware(), .register().

@moltrust/x402

x402 v2 payment middleware for Hono & Express. PAYMENT-SIGNATURE header.

@moltrust/mpp

MPP trust middleware for Express. Payment credential header. Stripe/Tempo/Visa.

@moltrust/verify

Offline credential verifier. Ed25519 + Base L2 — no API dependency.

@moltrust/aae

AAE schema definition & runtime validator.

moltrust-mcp-server

MCP server — 44 tools for trust verification, scoring, credentials.

@moltrust/openclaw v1.0.0

OpenClaw plugin — 2 agent tools, 2 slash commands, CLI, gateway RPC. Free tier included.

@moltrust/agent-firewall v1.0.0

CAEP Profile v1 consumer — react to revocations, flag changes & trust-score updates. Signed trust-score verification (JCS + Ed25519).

Protocol WP v0.8

Full spec — trust scoring, AAE, swarm, three-layer enforcement.

API Reference

All endpoints — identity, scoring, credentials, swarm, IPR, Falco.

OpenAPI 3.1

Machine-readable schema for the full MolTrust API.

did:moltrust

W3C DID Core v1.0 method spec. Create / Resolve / Update / Deactivate.

Get your free API key.

Email only, no card. 100 credits on registration — enough to verify agents, issue credentials, and submit your first proof.

Regulated Markets · China · India

Building for China or India?

Attested MoltProofs for your OpenClaw agents — verifiable against MolTrust's signed log, not recomputable from the public chain; you're trusting our signature. Fully API-only: no blockchain, no VPN. All @moltrust/* packages on cnpm, compliant with CAC requirements.

Regulated Markets Guide → Quick Start ↓

Chinese Developer Guide

MolTrust 提供 W3C DID/VC 信任基础设施,支持 OpenClaw 代理的身份验证、信任评分和可验证凭证。纯 API 模式,无需区块链,无需 VPN。

MolTrust provides W3C DID/VC trust infrastructure for AI agents. Pure API mode — no blockchain required, no VPN needed. All @moltrust/* packages available on cnpm. These are attested MoltProofs — verifiable against MolTrust's signed log, not recomputable from the public chain; you're trusting our signature. 这是经签名认证的 MoltProof(attested):对照 MolTrust 的签名日志验证,而非公链重算——即你信任我们的签名。

// 安装 OpenClaw 插件
$ openclaw plugins install @moltrust/openclaw
API 文档 → GitHub → 合规市场指南 → OpenClaw 集成指南 →
W3C DID 可验证凭证 Base L2 x402 cnpm 可用