mcpField
N
nostr-wot

nostr-wot

github.com/aibtcdevSecurity11110 installsUpdated 1d ago
Repository

About nostr-wot

nostr-wot is a deprecated skill for pre-transaction risk assessment of Nostr counterparties, now consolidated into `wot`. It provides trust scores, Sybil classifications, trust-graph neighbors, and network statistics.

Key features

  1. 01Look up trust score, rank, and percentile
  2. 02Classify possible Sybil accounts using multiple signals
  3. 03Find connected public keys in the trust graph
  4. 04View graph-wide network statistics
  5. 05Configure trust thresholds and inspect cache

Use cases

  1. 01Assess a Nostr counterparty before a transaction
  2. 02Screen public keys for suspicious or Sybil activity
  3. 03Inspect a public key's trust-network neighbors
  4. 04Adjust assessment thresholds and check cache status

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aibtcdev/skills --skill nostr-wot

After installing, type/nostr-wotin Claude Code to confirm it loaded.

Bundled filesnostr-wot.ts

Details

From the project README

Deprecated: This skill has been consolidated into wot. Use the wot skill for all Web of Trust operations. This skill will not receive further updates.

Nostr Web of Trust Skill

Pre-transaction counterparty risk assessment using Nostr Web of Trust scores. Accepts hex pubkeys or npub1... bech32 addresses.

  • 52K+ pubkeys indexed with 2.4M+ trust edges
  • Trust edges weighted by zap receipts (economic signal, harder to fake)
  • Free tier: wot.klabo.world (50 req/day per IP), no key required
  • Paid fallback: maximumsats.com/api/wot-report (100 sats via L402) when free tier exhausted
  • 1-hour local cache to avoid redundant API calls

Usage

bun run nostr-wot/nostr-wot.ts <subcommand> [options]

Subcommands

trust-score

Look up WoT trust score, rank, and percentile. Checks against configurable thresholds.

bun run nostr-wot/nostr-wot.ts trust-score --pubkey 2b4603d2...
bun run nostr-wot/nostr-wot.ts trust-score --npub npub1abc...

Output:

{
  "success": true,
  "cached": false,
  "api": "free",
  "pubkey": "2b4603d2...",
  "trusted": true,
  "normalized_score": 87,
  "rank": 142,
  "percentile": 99.7
}
sybil-check

Classify a pubkey as normal, suspicious, or likely_sybil using follower quality, mutual trust ratio, and community integration signals.

bun run nostr-wot/nostr-wot.ts sybil-check --pubkey 2b4603d2...
bun run nostr-wot/nostr-wot.ts sybil-check --npub npub1abc...

Output:

{
  "success": true,
  "pubkey": "2b4603d2...",
  "classification": "normal",
  "is_sybil": false,
  "is_suspicious": false
}
neighbors

Discover trust graph neighbors — connected pubkeys with combined trust scores.

bun run nostr-wot/nostr-wot.ts neighbors --pubkey 2b4603d2...
network-health

Graph-wide stats: total nodes, edges, Gini coefficient, power law alpha. No pubkey required.

bun run nostr-wot/nostr-wot.ts network-health
config

View or update trust thresholds. Stored at ~/.aibtc/nostr-wot/config.json.

bun run nostr-wot/nostr-wot.ts config                    # view current thresholds
bun run nostr-wot/nostr-wot.ts config --min-rank 5000
bun run nostr-wot/nostr-wot.ts config --require-top100
bun run nostr-wot/nostr-wot.ts config --no-require-top100

Threshold fields:

  • minRank — Maximum acceptable rank. Default: 10000
  • requireTop100 — Reject if not in top 100. Default: false
cache-status

Show cache statistics. Cache stored at ~/.aibtc/nostr-wot/cache.json with 1-hour TTL.

bun run nostr-wot/nostr-wot.ts cache-status

Trust Thresholds

RankMeaning
1–100Elite (top 100 Nostr users by WoT)
101–1000Well-connected, high economic activity
1001–10000Active community member
>10000Low trust, new account, or no Nostr activity

API Details

Two endpoints, tried in order:

BaseAuthCostRate
https://wot.klabo.worldNoneFree50 req/day/IP
https://maximumsats.com/api/wot-reportL402100 satsUnlimited

Free tier returns HTTP 402 when exhausted; skill auto-falls back to paid endpoint. L402 payment requires a Lightning client — without one, paid calls return an error with the BOLT11 invoice.

Comments

Markdown supported