Install
openclaw skills install @moltycel/moltrust-vetCheck any agent skill against ten versioned, CWE-mapped security checks before you install it, and get a verdict a third party can recompute.
openclaw skills install @moltycel/moltrust-vetVet a skill before installing it. The verdict comes from a published check list with a version number and a checksum, over a canonical hash of the skill file, so anyone can run the same check and get the same answer.
A checklist you eyeball gives a different answer on Tuesday than on Friday. This runs ten fixed checks, each mapped to a CWE identifier, each with a stated deduction, and reports the auditor version alongside the score. Two people auditing the same bytes get the same number, and can say which check fired.
The check list is public: https://api.moltrust.ch/guard/audit/checks returns
every check with its severity, deduction and CWE reference. Its version and
checksum come from https://api.moltrust.ch/guard/audit/version.
vet <github-url-or-slug>
Examples:
vet https://github.com/someone/their-skill
vet someone/their-skill
Resolve the argument to a repository URL. A bare owner/repo becomes
https://github.com/owner/repo.
Request the audit:
GET https://api.moltrust.ch/guard/skill/audit?url=<repository-url>
No API key. No account. The endpoint allows five audits per hour per IP.
Add &profile=claude_skill when vetting a Claude Agent Skill, which
downgrades the agent-card check to informational.
Report to the user:
audit.score out of 100 and whether passed is trueaudit.findings: severity, category, description, deductionaudit.auditorVersion, so the verdict can be reproduced laterskillHash, the canonical hash of the file that was actually readecosystem_trust_score, or that it is null when the skill declares no
MolTrust authorState the score without softening it. A skill scoring 62 is not "mostly fine". Report the number, the findings, and let the user decide.
| Field | Meaning |
|---|---|
passed | score at least 70 and no hard failure |
audit.score | 100 minus the deductions that fired |
audit.findings[] | which checks fired, with severity and deduction |
audit.vc_issuable | whether a signed credential could be issued for this |
skillHash | canonical SHA-256 over the normalised file |
ecosystem_trust_score | cross-skill reputation, null for unknown authors |
Status codes worth distinguishing: 404 skill_md_not_found means the repository
has no SKILL.md, which is a fact about the target and not an error on our side.
429 rate_limited means the five-per-hour allowance is used up.
On first use the agent may register a MolTrust identity, so that skills it later publishes carry an author other tools can resolve. This is optional; vetting works without it.
Registration is keyless — no API key, no signup, no email:
GET https://api.moltrust.ch/identity/register-challenge returns a challenge
string and a proof-of-work seed with a difficulty in bits.POST https://api.moltrust.ch/identity/register-pop with the public key, the
challenge, the signature, the nonce, a display name, and
platform set to clawhub.The response carries a did:moltrust: identifier and a signed credential. Put
that identifier in the author: field of your own SKILL.md frontmatter. The free
tier holds no spendable credits and keeps no request history.
Store the private key wherever the host keeps its own secrets. This skill does not choose that location and does not transmit the key.
It does not install, modify or execute the skill it is asked to vet — it reads one file over HTTPS and reports what the checks say.
It does not issue a credential. That is a separate, paid endpoint
(POST /guard/vc/skill/issue, 5 USDC via x402) for when you need a verdict to
show someone else rather than to decide for yourself. A vetting run never
triggers it.
A passing score is not a guarantee of safety. It means ten specific checks found nothing, over the version of the file that was fetched at that moment.
Two hosts, both stated up front:
api.moltrust.ch — the audit, and registration if you opt into itgithub.com / raw.githubusercontent.com — reached by the audit service, not
by this skill, to read the target SKILL.mdNothing else is contacted. Nothing about your machine is transmitted.
This skill is subject to its own checks:
GET https://api.moltrust.ch/guard/skill/audit?url=https://github.com/MoltyCel/moltrust-vet
Its published credential, if one has been issued, resolves by hash:
GET https://api.moltrust.ch/guard/skill/verify/<skillHash>
Apache-2.0. See LICENSE in the repository.