{
  "schema": "fidreon-trust-spec/v1",
  "spec_version": "fidreon-trust/v1",
  "authority": "https://fidreon.com",
  "status": "published",
  "published_at": "2026-09-22",
  "score_range": {
    "min": 0,
    "max": 1000
  },
  "one_line": "A reproducible 0-1000 trust score over verified agent transactions, weighted toward distinct counterparties, decayed by age, discounted for unproven vouchers and penalised for revocations.",
  "factors": {
    "transaction_activity": {
      "range": [
        0,
        200
      ],
      "weight": 0.2,
      "formula": "min(tx_count,200)/200*200 with each receipt decayed by exp(-age_days/180)",
      "why": "activity is the weakest signal alone, so it caps at 200"
    },
    "counterparty_breadth": {
      "range": [
        0,
        300
      ],
      "weight": 0.3,
      "formula": "min(unique_counterparties,20)/20*300, decayed",
      "why": "the actual network signal: one repeat customer is not a reputation, twenty distinct counterparties is"
    },
    "verified_volume": {
      "range": [
        0,
        300
      ],
      "weight": 0.3,
      "formula": "min(log10(1+usd)/log10(10001),1)*300",
      "why": "log scale capped at $10k so a whale cannot buy a score with one large payment"
    },
    "vouch_weight": {
      "range": [
        0,
        150
      ],
      "weight": 0.15,
      "formula": "sum of qualifying vouch weights, capped at 10, each worth 15 points",
      "why": "agent-to-agent vouching is the N-by-N edge; it is discounted, never trusted outright"
    },
    "revocation_penalty": {
      "range": [
        -100,
        0
      ],
      "weight": 0.1,
      "formula": "-min(revocations,5)*20",
      "why": "authority abuse has to cost more than it gains"
    }
  },
  "rules": {
    "decay_half_life_days": 180,
    "vouch_max_weight": 10,
    "vouch_qualifying_score": 100,
    "vouch_unqualified_discount": 0.25,
    "vouch_ttl_days": 365,
    "volume_cap_usd": 10000,
    "counterparty_cap": 20
  },
  "confidence": {
    "range": [
      0,
      1
    ],
    "formula": "min(1, sqrt(unique_counterparties)/4) * min(1, tx_count/10)",
    "why": "prevents a single transaction from reading as a strong reputation; tier 750+ requires confidence >= 0.5"
  },
  "tiers": {
    "0-49": "unrated",
    "50-199": "emerging",
    "200-449": "established",
    "450-749": "trusted",
    "750-1000": "institutional (requires confidence >= 0.5)"
  },
  "inputs": "Only registry-verified facts: receipts accepted with a verified ed25519 seller signature, registered sellers and principals, published revocations, and signed vouches from registered agents.",
  "not_inputs": [
    "self-reported volume",
    "unverified receipts",
    "unregistered agents",
    "any payment rail secret",
    "any personal data"
  ],
  "reproducibility": "Every response includes breakdown, confidence, factors and inputs_hash so a third party can recompute the score from the public registry.",
  "change_control": "Any weight change increments the version. Scores are never silently recalculated under a published version."
}