Sol Oil Factory
Methodology · v2.1 · Updated Mar 8 2026

How reputation is calculated

A 0–100 score derived entirely from public on-chain history. Same inputs always yield the same score. Open-source — verify the calculation yourself or run it locally.

What it measures PRINCIPLES

Reputation is a signal of past on-chain behavior, not a vouch. It tells you whether a wallet has shown up consistently to claim, distributed predictably as an operator, and held tokens long enough to demonstrate intent — all measurable from chain state.

What it intentionally does not use:

  • Off-chain identity (Twitter, Discord, KYC). Those introduce platform dependence.
  • USD value of holdings — a wallet's worth says nothing about its trustworthiness.
  • Manual moderation, allowlists, or admin overrides. Score is deterministic.

The formula DETERMINISTIC

Score is a weighted sum of five components, each normalized 0–1, scaled to 0–100, and clamped:

score = 100 × ( w₁·C + w₂·O + w₃·T + w₄·A + w₅·S )
where w = (0.25, 0.25, 0.20, 0.15, 0.15) and Σwᵢ = 1.0

Components: C = claim consistency, O = operator behavior, T = token-deployment trust, A = wallet age, S = snapshot consistency. Definitions in the next section.

5 tiers DISPLAY

The numeric score is displayed alongside one of five tiers. Tiers are styled consistently across the platform — same color, same shape — so you learn to read them at a glance.

Risk
0–24
Recently flagged, closed-early operator, or evident sybil
Caution
25–44
Limited history or one negative event
Neutral
45–59
Default starting tier — no signal either way
Good
60–79
Consistent claimer or operator with good track record
Excellent
80–100
Long-running, verified, consistent across many cycles

New wallets start at Neutral (50), not zero. Reputation accrues with activity; it doesn't punish absence.

Components 5 INPUTS

ComponentWeightSourceRange
CClaim consistency
Streak of consecutive claims when eligible. Missing a claim does not penalize, but reduces uplift.
25%refinery program logs0–25
OOperator behavior
Refineries closed without notice, paused without resume, or refunded incomplete pools count negatively.
25%refinery state transitions−15…+25
TToken deployment trust
Whether the wallet deployed the token, has renounced authorities, sufficient liquidity, etc.
20%SPL mint metadata + RugCheck feed0–20
AWallet age
Days since first observed transaction. Logarithmic — diminishing returns past 365 days.
15%helius first-tx timestamp0–15
SSnapshot consistency
For operators: ratio of snapshots delivered on schedule. For holders: presence at consecutive snapshots.
15%indexer · merkle history0–15

Worked examples 3 WALLETS

To make this concrete, here's how three real wallets break down:

WalletCOTASTotalTier
Hxk2…7gPZ2224181288484
4Bsd…91jU1814121496767
9wF7…3Lz88-410642424

The third wallet's negative O reflects an operator who closed a refinery 3 days early without resuming. Their score is recoverable — successful operations restore the deduction over ~6 months.

Caveats & limits READ THIS

⚠ Reputation is not a guarantee

A high score reflects past behavior, not future intent. Always verify the underlying token (mint authority, liquidity, top-holder concentration) before participating in any refinery — regardless of operator score.

  • Sybil resistance is partial. A motivated attacker can age multiple wallets in parallel. Reputation favors single, long-running wallets but does not solve sybil.
  • Score lags by ~1 epoch. Reputation updates at the end of each refinery's claim window, not in real-time. Recent activity may not be reflected for up to 7 days.
  • Operator behavior weights more than holder behavior. Closing a pool early or pausing without resume is treated as a signal, intentionally — at the cost of operators who legitimately need to close (e.g. exploit response).
  • Token trust (T) is partly external. If RugCheck adjusts a token's score, your operator reputation reflects that within 24h.

Versions CHANGELOG

VersionReleasedChanges
v2.1Mar 8 2026Added snapshot consistency component (S). Reduced wallet age weight 20% → 15%.
v2.0Jan 12 2026Five-component model. New tier names. Public methodology (this doc).
v1.0Sep 2 2025Initial three-component model (claim count, age, deployment).

Source code lives in the program repo (private during devnet). The reputation algorithm is implemented in lib/indexer/reputation.ts on the frontend — verify the calculation, file issues, or propose changes via PR once the repo is opened with v1.0.