Antilles · RMT · S33 generation · branch rmt-core-convergence-2026-05-17

RMT — agent reputation, scored & sybil-hardened

A PageRank-scored, KYC-tiered, sybil-resistant reputation system for agents. The S33 intelligence lives off-chain in the oracle service; the chain stores scores + a binary seed floor. Schematic reconstructed from the convergence branch (on-chain contracts are byte-identical to main).

0.9397
composite (synthetic)
93.7%
sybil detection
0.960
XBlock AUC (2.97M nodes)
0–10000
score scale (bp)
83%
prod readiness (25/30)
wired in production path on-chain contract built, test-only candidate deferred → S34

The scoring pipeline — OracleOrchestrator.run()

01Data ingestionmulti-source citation + identity edges
CitationFetcher EAS Attested eventsMultiChainFetcherERC8004Fetcher feedback→edgesHelixaApiFetcher live multi-chain (fail-loud chainId)OffChainCitationStoreShyftMainnetTopologyFetcher chain 7341 (sim-only)
02Graph build + freshnessCitationGraph
filter deregistered botsper-TA-operator rate limit 50/epochfreshness decay 0.00125/day (~555d half-life)retroactive revocation exclusion
03Sybil & diversity defensethe security spine
SybilDetector reciprocal·cluster·carousel·star·fan-inOwnerRegistry MIN_UNIQUE_OWNERS=5AttestorDiversity ≥3 unique TA paths or cap at 2×seedstar@indeg8 · fanIn0.5 · carousel0.865/0.039
04ScoringPageRank spine + PPR blend
computePageRank α=0.85, dangling redistributioncomputePprWeight sigmoid w∈[0,0.10], mid=100 TAsblend (1−w)·citation + w·PPRppr.ts / hits.ts = test-only (HITS→S34)
05Composite + seed floorseed is a floor, not a boost
composite = min(max(PR, decayedSeed), 10000)decay = seed ≫ min(epochs,8)off-chain graduated KYC seeds 187–3820 bpon-chain binary 2000/500 bp
06Normalize → clamp → submiton-chain write
normalize to bpattestor-diversity capdelta-bound vs existingPageRankOracle.submitScores (oracle-only, cooldown, epoch dedup)audit hash
07Reputation readconsumer surface
ReputationEngine.getReputation → oracle passthroughgetCompositeScore seed-flooredconsumers: agents, dashboard, ERC8004Bridge

The load-bearing boundary: on-chain is thin, off-chain is smart

On-chain (Solidity, identical on main & the S33 branch): score storage + a binary seed floor (verified 2000 / self 500 bp), raw getReputation passthrough, cooldown/delta/epoch guards. Deliberately minimal — raising the graduated seed caps on-chain needs 3-model convergence.

Off-chain (the oracle/ TypeScript service): all the intelligence — PPR sigmoid blend, SybilDetector (+419 lines), AttestorDiversity, OwnerRegistry diversity, multi-chain Helixa ingestion, and the graduated KYC seed tiers. This is where S33 actually advanced.

Subsystem map

On-chain · Solidity

Contracts

ReputationEngine registry, tiers, fee, getReputation
PageRankOracle score store, submitScores, composite
ShyftGatedResolver EAS↔Shyft citation gate
CitationCounters append-only tallies
Domain Registry/Factory per-domain channels
ERC8004Bridge agentId↔bot, 5-level ladder
KycLevelResolver 🆕 TA→KYC level 0–4
OwnerRegistry 🆕 owner-diversity (≥5)
Oracle · scoring

Algorithms

computePageRank α=0.85 spine
computePprWeight sigmoid blend (max 0.10)
SybilDetector 6 topologies + anomaly Gini
AttestorDiversity TA-path laundering cap
ppr.ts teleport PPR (test-only)
hits.ts hub/authority (gated → S34)
Identity · KYC

Trust tiers

KycLevelResolver min(self-declared, document-bitmask)
L0 187 · L1 573 · L2 1528 · L3 2865 · L4 3820 bp
on-chain binary fallback 2000/500
TTL gate: TA registered ≥20 epochs
Shyft TrustAnchor verification = T2 anchor
Gitcoin Passport / Worldcoin L4 adapters → S34

Convergence state & what's open

S33 — "ONE creditScore" v2.0 · locked

  • creditScore = min(max(graphScore, l4Floor, seedFloor), 10000); floors compete in max() (anti-inflation)
  • 5-model adversarial convergence (Claude+Grok+Codex+Gemini+local)
  • Validated: 0.9397 composite · 93.7% sybil · 0% FP synthetic · XBlock AUC 0.960
  • Locked: ONE-score decision · seed-as-floor · ephemeral TTL→0 · parameter table

Open → S34 / needs convergence

  • HITS promotion to canonical (gated on hub-inflation sim)
  • Real L4 adapters (Gitcoin/Worldcoin); economicProfile anomaly
  • α revalidation (0.85 conservative; 0.95 → 5.4% FP)
  • Raising graduated KYC caps on-chain (currently off-chain only)

Flagged discrepancies (reconcile before trusting params)

massCapTarget 0.20 in SeedManager code vs 0.08 locked in invariants doc · clusterDensityThreshold 0.6 code vs 0.18 doc · PPR sigmoid/max-0.10 code vs the S33 spec's earlier linear form · on-chain composite still binary while off-chain is graduated. Grok CTO PLAN→DESIGN gate was REQUEST_CHANGES (PPR formula, on-chain TTL-min, dead-code) — partially closed by later branch commits.