A MoltProof (MP) is the signed, recomputable record of what your agent did. This page is the MP verifier — read-only, holds no keys: it recomputes any MP's verdict (ADHERENT/BREACHED) against the chain, so anyone can check it.
Base
Hyperliquid
MoltProof names both the record and the tool that checks it. Keep them apart:
The signed, recomputable record of what your agent did — produced when the agent acts. At its core it is an Interaction Proof Record (IPR): hashed, anchored, verifiable. It exists in two tiers — anchored (recomputable against Base L2 by anyone) and attested (verifiable against MolTrust's signed log; you're trusting our signature). The MP is what you issue and hand to a partner, a bank, or an auditor.
Read-only, holds no keys. Point it at an agent and it recomputes an MP's verdict — ADHERENT / BREACHED / NO_MANDATE / NEEDS_REVIEW — against the committed AAE mandate and the public chain. It issues nothing and moves nothing; it only re-runs the check, so no one has to take your word.
Returns a real, recomputable verdict for any agent that has committed a mandate. Live example — the first demonstrator agent (3 in-mandate WETH buys, 1 out-of-mandate trade):
curl https://api.moltrust.ch/proof/verdict-free/0xD35AE5C22C117Cf1b9EF870697AB0034314A59e2$ curl https://api.moltrust.ch/proof/verdict-free/0xD35AE5C22C117Cf1b9EF870697AB0034314A59e2
{
"agent": "0xD35AE5C22C117Cf1b9EF870697AB0034314A59e2",
"verdict": "BREACHED",
"mandate_tightness": 0.88,
"recomputable": true
}
A breach cites the exact transaction:
$ curl https://api.moltrust.ch/proof/evidence/0xD35AE5C22C117Cf1b9EF870697AB0034314A59e2
{
"verdict": "BREACHED",
"breaches": [{
"txHash": "0xf6311aae…ca68",
"failedChecks": { "outputToken": "fail" },
"reasons": ["acquired USDC; mandate allows only WETH"]
}],
"recomputable": true
}
Resolve an agent's committed AAE mandate from its DID / ERC-8004 identity.
Read public on-chain execution within the mandate's validity window.
Check each action against venue / position / validity.
Score how constraining the mandate is, so "adherent" can't be gamed.
Every verdict reproducible from public data; Ed25519-signed for portability.
MoltProof is read-only by construction: it holds no keys and can issue no transaction, so the architecture itself enforces the security properties.
Takes an agent address / DID / mandate ref. It cannot accept, request, store, or log a private key, seed, or API key — a scanner rejects secret-shaped input, enforced by a build-gating test.
No signing on behalf of users, no wallet connection, no funds held. Read-only RPC/indexer calls only.
There is no code path that places, cancels, or routes a trade. Nothing is written to caller systems.
Every verdict is recomputable from public chain data and the public mandate — you never have to trust us to vouch for it.
Contrast with wrapper / custody approaches that hold keys or intermediate orders: those can lose funds by design. MoltProof cannot, because it never touches them.
| Check | Constraint | Pass / Fail / Inconclusive |
|---|---|---|
| Venue | allowed_venues | Every venue-address touched (entrypoint + Swap-log emitter) is whitelisted, or its venue is. Unrecognised → inconclusive. |
| Position | max_position_notional | Action notional ≤ cap. Not deterministically priceable → inconclusive. |
| Validity | valid_from / valid_until | Action timestamp inside the window. |
| Tightness | — | 0–1 score of how constraining the mandate is; shown with every verdict. |
An action that can't be decoded to (venue, notional, time) from a recomputable source yields NEEDS_REVIEW, never a silent ADHERENT.
https://api.moltrust.ch/proof| Method | Path | Tier |
|---|---|---|
| GET | /verdict-free/:agent | free · 1/10min — verdict only |
| GET | /verdict/:agent | $0.05 — full per-check breakdown |
| GET | /evidence/:agent | $0.05 — verdict + decoded breaching txs |
| GET | /mandate/:agent | free — the committed AAE mandate |
| POST | /verify | free — recompute + check signature (never gated) |
| GET | /registry | free — agents + current verdict |
| GET | /info · /health | free |
x402 on Base, same pattern as MoltGuard. The core verdict, mandate lookup, and /verify are free; the deep and full-history endpoints are $0.05.
Tools moltproof_verdict, moltproof_mandate, moltproof_evidence, moltproof_verify, moltproof_registry — live on the shared gateway.
Served by the shared MolTrust MCP gateway at https://api.moltrust.ch/mcp — one endpoint for all MolTrust tools. The moltproof_* tools are read-only pass-throughs to the verdict API; they inherit the same no-keys gate.
{
"mcpServers": {
"moltproof": {
"type": "streamable-http",
"url": "https://api.moltrust.ch/mcp"
}
}
}
| Stack | Node 20 · TypeScript · Hono · viem |
| Networks | Base (canonical), Ethereum, Arbitrum, Optimism, Polygon, Hyperliquid — supported; Solana — beta |
| Signing key | did:web:moltrust.ch#moltproof-key-1 (Ed25519 JWS) |
| AAE profile | draft-kroehl-agentic-trust-aae-00 |
| Standards alignment | owasp-agentic-top10 |
| Payments | x402 on Base (chainId 8453) |
| Caching | bounded lookback windows; short-TTL verdict cache |
From the running service at launch. Live counts are always available via /proof/registry; these grow as more agents commit mandates.
Live from /proof/registry. The first demonstrator agent is seeded; counters grow as more agents commit mandates.
MoltProof verifies adherence to a committed mandate, not profitability. No trading, no advice. Supports Article 12 logging.