Compound Map · Source-Verified · Most-Recent State

RMT — Where Citations Land & Where the Oracle Plugs In The actual recording path for citations, the attestation gate, the oracle integration point, and where all four research tracks stopped — one combined, updated map.

2026-06-24 · antilles-v2 @ main (RMT layer audited) · flow verified at file:line · research state read from track source-of-truth files
Short answer to "where do citations go?" Not one place — citations land across a few things on purpose: the EAS attestation is the canonical record, CitationCounters is the durable on-chain tally, and an off-chain signed store holds citations that get batched in later. "Trust channels" are the gate that decides if a citation is allowed — not where it's stored. The oracle reads all of those, scores them, and plugs into reputation through one socket: PageRankOracle.
01

The schematic — citation → gate → landing zones → oracle → reputation

Read top to bottom. A citation is created, passes the attestation gate, then lands in up to three recording zones. The off-chain oracle reads them all, scores the graph, and writes back into the reputation system through PageRankOracle.

ON-CHAIN contract OFF-CHAIN oracle service GATE (eligibility check, not storage)
① a citation is created
Agent A cites Agent B
A verified bot vouches for another. The citation payload is decoded as (fromBot, toBot, tier, workHash, …).
payment hook: attest() can charge a citation fee → § your 2nd task
② the attestation gate decides if it counts
⛨ ShyftGatedResolver — 4 checks, all must pass
attester is a Shyft-verified Trust Anchor attester actually registered A (attribution) both A & B hold Shyft attestations A & B share an active Trust Channel route
This is where "trust channels" live: they're gate ④ — a connectivity check (getActiveTrustChannelRoutePossible, ShyftGatedResolver.sol:173), NOT a place citations are stored.
③ where the citation is actually recorded (the landing zones)
SOURCE OF TRUTH
ON-CHAIN · EAS
EAS Attestation
The canonical "A cited B" record. Emits Attested(recipient, attester, uid, schemaUID). On Stable there's no EAS predeploy → we self-deploy canonical EAS.
oracle reads: index.ts:31 event sig
DURABLE TALLY
ON-CHAIN · LEDGER
CitationCounters
citationsReceived[B], citationsGiven[A], pairCitationCount[A,B], totalCitations. Append-only — survives EIP-4444 event pruning. Only the resolver may write.
CitationCounters.sol:12–34 · authorizedCaller
OPTIONAL
OFF-CHAIN · STORE
Off-chain Citation Store
EIP-712-signed citations (workHash) that don't hit chain one-by-one. Held off-chain, verified, then batched on-chain by the oracle.
oracle/ OffChainCitationStore · OffChainCitationSigner
PATH 1 Real-time, one at a time
EAS → ShyftGatedResolver.attest() runs all 4 gates, then calls CitationCounters.recordCitation(). Fully gated.
ShyftGatedResolver.sol:139 → :184
PATH 2 Bulk, from the oracle
batchRecordCitations() lands many off-chain-sourced citations at once. Only the batchAnchor (the oracle service) or owner may call it.
ShyftGatedResolver.sol:206 → :235 · setBatchAnchor:116
④ the off-chain oracle reads every source & scores the graph
EAS events
on-chain citations (CitationFetcher)
Off-chain store
signed citations by workHash
ERC-8004 feedback
agent feedback edges
Multi-chain
other chains, deduped
build graph → SybilDetector strips fakes → PageRank (α≈0.85) → normalize 0–10000 → clamp delta/first-score
⑤ where the oracle PLUGS IN to the reputation system
THE SOCKET (on-chain)
PageRankOracle
The oracle operator writes scores here via submitScores() (cooldown + max-delta + first-score caps). This contract IS the plug point.
PageRankOracle.sol:74 · getCompositeScore:155
WIRED TO IT
ReputationEngine
setPageRankOracle() wires the socket in; getReputation() reads oracle.getScore() then applies the tier cap (T0≈3500 / T2≈8500 bp).
ReputationEngine.sol:196 → :199
RESULT
Reputation 0–10000
Tier-capped trust score. The wiring is a 2-way cycle: PageRankOracle ↔ ReputationEngine.
⑥ who consumes the score
x402 Trust Channels (payment/credit) ← consumer, not storage Credit lines Access gating

↳ Direct answer to your question

"Where are citations supposed to go / actually landed?" → Recorded in CitationCounters (the durable on-chain tally), with the EAS attestation as the canonical event and an optional off-chain store for batched ones. "Was it on trust channels?" → No — Shyft trust channels are the eligibility gate (gate ④); x402 "Trust Channels" is a downstream consumer of the score. "Where does the oracle plug in?" → It reads citations from every source, then writes scores into PageRankOracle, which ReputationEngine reads. So yes — it's "across a bunch of things," by design: the contracts stay simple, the scoring intelligence is off-chain and swappable.

02

What we got to — most-recent state, all four tracks

Synthesized from each track's source-of-truth files (manifest / executive summary / strategy), not the empty auto-dashboards. "Froze" = the last date real research data was written.

RMT Reputation LOCKED · CLOSEST TO DEPLOY

0.9397
composite · sybil 0.937 · false-positive 0.0%

26 structural params; biggest win starInDegreeThreshold 6→8. α=0.85 validated on Bitcoin/Ethereum (XBlock AUC 0.960); PPR-with-anchors +75–100% sybil resistance.

Froze: ~Jun 22, 2026 (manifest.yaml) · status ACTIVE, locked

Identity & Attestation BELOW TARGET

0.512
locked-param composite (vs 0.80 target · +21% over 0.423)

816 experiments, 263 improvements. Attack-suppression 0.82, cascade 1.00, gating-fairness 0.86, stability 0.96. Blocker: tierAccuracy 0.30 needs real on-chain data. Shyft topology is power-law (2 TAs control 85%).

Froze: Jun 24, 2026 (EXECUTIVE_SUMMARY.md) · needs TAs 21→50+

x402 Trust Channels DESIGN · BLOCKED

1.0
research composite · 71 experiments (last live run)

Architecture LOCKED (11,026-line spec, Feb 2026) + 5 product templates. Blocked on: MiroShark sim (HTTP sequencing), regulatory (18 USC §1960), credit-gaming economics.

Froze: last live data Apr 10; strategy May 6, 2026

Lottery / Incentives DESIGN · SECONDARY

1.0
research composite · 9 research questions

Parameter design: LP-vault sizing, prize splits, ticket pricing, referral economics, player archetypes. Integrates after the core trust stack.

Froze: Apr 10, 2026 · status ACTIVE, secondary
03

The real visuals — linked (empty skeletons removed)

Only content-rich explainers are linked below. The per-iteration auto-dashboards (research-*-summary / iterN) were ~3KB empty shells — intentionally NOT linked.

🧩 RMT System Schematic (S33)
Scoring pipeline, subsystem map, on/off-chain boundary.
rmt · oracle · architecture
🏛️ Antilles Trust Framework
Generalized 5-layer trust/identity/attestation architecture.
x402 · trust · identity
🔏 Tier-0 Signed Attestation Chain
Attestation-chain plan review (signed evidence).
attestation · identity
💸 Shyft Attestation Payment Flow
Attestation fee / payment flow — bridges to task 2.
attestation · payments
🗺️ Identity-Trust Deployment Roadmap
6-phase converged deployment roadmap.
deployment · roadmap
🎯 Stable Deploy — CTO Tactical Scope
What's built vs missing for the Stable deploy.
deployment · status
On "all the generated CF dashboards": I enumerated the Cloudflare account — it holds 10 Pages projects total, and the only RMT/trust one is this hub (antilles-stable-review). The auto-research loop wrote local per-iteration dashboards (.forge/dashboards/research-*), but they're empty ~3KB skeletons — they were never the real artifact. The actual research lives in the track source files, which is what this map is built from. Nothing rich was lost; there was no deployed trove to recover.
Citation-path provenance (antilles-v2 @ main). CitationCounters.sol:12–34 (state + recordCitation, authorizedCaller-gated) · ShyftGatedResolver.sol:139 attest(onlyEAS) → :149 decode → :158 trust-anchor → :173 trust-channel gate → :184 recordCitation · :206→:235 batchRecordCitations (batchAnchor) · :116 setBatchAnchor · :85 setCitationCounters. Off-chain: oracle/src/offchain/{OffChainCitationStore,OffChainCitationSigner}, fetcher/{CitationFetcher,MultiChainFetcher,ERC8004Fetcher}, index.ts:31 Attested event. Oracle plug: PageRankOracle.sol:74 submitScores / :155 getCompositeScore ↔ ReputationEngine.sol:196→199 getReputation→getScore.
Research figures are research-eval composites from the forge tracks (rmt-reputation, identity-attestation, x402-trust-channels, lottery), not on-chain guarantees.
Next: attestation-fee economics (Shyft-token vs USDT split) against test/27_test_attestationFee.js, main branch — folds into this set.