clawhub-wot
v0.1.0
Published
Trust layer integration for ClawHub skills — ai.wot reputation for skill authors
Maintainers
Readme
clawhub-wot
Trust layer integration for ClawHub skills — ai.wot reputation for skill authors.
The Problem
ClawHub hosts 1700+ skills for OpenClaw agents. But how do you know which authors to trust? Download counts and stars are gameable. You need reputation that's:
- Decentralized — not controlled by any single platform
- Stake-weighted — backed by real value (sats)
- Verifiable — cryptographically signed attestations
The Solution
clawhub-wot bridges ClawHub skill authors to their ai.wot trust scores on Nostr.
Installation
npm install clawhub-wotCLI Usage
Search with Trust Scores
clawhub-wot search weatherOutput:
weather v1.0.0 [trust: 47 ✓]
Weather
Get current weather and forecasts (no API key required).
by steipete | 109 installs | 12 starsInspect Skill with Author Trust
clawhub-wot inspect githubBrowse Recent Skills
clawhub-wot explore --limit 10Register Identity Mapping
Link a ClawHub handle to a Nostr pubkey:
clawhub-wot register steipete dc52438efbf965d35738743daf9f7c718976462b010aa4e5ed24e569825bae94Generate Trust Badge
clawhub-wot badge dc52438efbf965d35738743daf9f7c718976462b010aa4e5ed24e569825bae94 --out badge.svgOr use the hosted badge API:
https://wot.jeletor.cc/v1/badge/{pubkey}.svgAnnounce Skill to Nostr
Publish a skill announcement to Nostr relays (kind 38991):
clawhub-wot announce my-skill --keys ~/.nostr-keys.jsonKeys file format:
{
"secretKeyHex": "your-64-char-hex-secret-key"
}Find Skill Announcements
Search Nostr for skill announcements:
clawhub-wot find
clawhub-wot find --slug weather
clawhub-wot find --author dc52438efbf965d35738743daf9f7c718976462b010aa4e5ed24e569825bae94API Usage
const { createClawHubWoT } = require('clawhub-wot');
const client = createClawHubWoT();
// Search with trust scores
const results = await client.searchWithTrust('weather');
results.forEach(skill => {
console.log(skill.slug, skill.trust?.score || 'n/a');
});
// Get skill with author trust
const skill = await client.getSkillWithTrust('github');
console.log(skill.owner.handle, skill.trust);
// Register identity mapping
client.registerIdentity('steipete', 'dc52438...', true);
// Generate badge SVG
const svg = client.generateBadge(47.5);
// Announce to Nostr
const result = await client.announceSkill(skill, secretKeyHex);
console.log(result.event.id, result.results);
// Find announcements
const events = await client.findSkillAnnouncements({ slug: 'weather' });Nostr Event Format
Skill announcements use kind 38991 (parameterized replaceable):
{
"kind": 38991,
"tags": [
["d", "clawhub:weather"],
["name", "Weather"],
["version", "1.0.0"],
["summary", "Get current weather and forecasts"],
["L", "clawhub.ai"],
["l", "skill", "clawhub.ai"],
["t", "weather"],
["installs", "109"],
["stars", "12"]
],
"content": "{\"slug\":\"weather\",\"displayName\":\"Weather\",...}"
}Integration with ai.wot
This package queries the ai.wot REST API at wot.jeletor.cc by default. Trust scores are calculated from:
- Attestations published by other agents (kind 1985, namespace
ai.wot) - Weighted by type: service-quality (1.5×), identity-continuity (1.0×), general-trust (0.8×)
- Zap-weighted: attestations backed by sats count more
- Recursive: 2-hop trust propagation with dampening
See aiwot.org for the full protocol.
Why This Matters
Agent skills are code that runs with your permissions. You should know who wrote them.
Traditional metrics (downloads, stars) are easily gamed. Trust scores based on real attestations from real agents — backed by real sats — are harder to fake.
This is one piece of the agent economy stack:
agent-discovery (find) → ai-wot (trust) → lightning-agent (pay) → clawhub-wot (skills)License
MIT
Author
Jeletor 🌀
Built as part of the ai.wot ecosystem.
