onchain reputation, made legible

How we read
your onchain self.

Every PROOF score is computed deterministically from public chain data. No secret model, no off-chain inputs, no PII. Here's exactly what we measure, how we weigh it, and why.

Composite score
S= Σ(wi·di)·1000
where di ∈ [0,1] and Σwi = 1

The score S is a weighted sum of six normalized dimensions, each scored on a unit interval and then scaled to a 1000-point passport. The weights below were chosen so that no single dimension can dominate, and so that a wallet cannot simply farm one signal to inflate its score.

Each dimension is itself a function of multiple raw signals — 47 in total — combined according to per-dimension rules described below.

The six dimensions
01
Activity
WEIGHT · 0.15
How consistently the wallet is used. Bursty wallets that go quiet for years score lower than wallets with sustained, regular activity.
Signals
Transactions per active month0.40
Active months ratio0.30
Longest streak (weeks)0.20
Recency decay0.10
02
History
WEIGHT · 0.20
Time-in-network. Older wallets are harder to fake and have weathered more market cycles. Log-scaled so a 10y wallet is not 10× a 1y wallet.
Signals
Age in days (log-scaled)0.60
First-tx block depth0.25
Survived bear markets0.15
03
Diversity
WEIGHT · 0.15
Breadth of interactions across protocols, chains, and asset types. Resists wallets that look real but only ever touch one contract.
Signals
Unique protocols (Shannon entropy)0.40
Chain count0.25
Asset class spread0.20
Counterparty entropy0.15
04
DeFi rep
WEIGHT · 0.20
Constructive participation in DeFi — providing liquidity, lending, staking — rather than purely extractive use like sandwich attacks or one-block flips.
Signals
LP positions (≥30d held)0.30
Lending volume / liquidations0.25
Staking duration0.25
MEV proximity (inverse)0.20
05
Governance
WEIGHT · 0.10
Voting in DAOs, holding governance tokens for non-trivial periods, contributing to proposals. Lowest-weighted because not every honest user participates.
Signals
Snapshot votes cast0.40
Onchain votes cast0.30
Gov-token holding time0.20
Delegation activity0.10
06
Risk-free
WEIGHT · 0.20
A negative score, inverted. Counts proximity to sanctioned addresses, mixers, drainers, and exploit-linked wallets. One direct match floors this dimension.
Signals
OFAC sanctions proximity0.40
Mixer interactions0.25
Drainer / phishing contracts0.20
Exploit-linked counterparties0.15

Tier thresholds

Scores map to four tiers. Protocols integrating PROOF typically gate features by tier rather than raw score, since the boundaries are designed to be stable across model updates.

Tier Range Interpretation Typical use
Trusted 700 – 1000 Established, diverse, no risk signals Reduced KYC, governance weight
Verified 500 – 699 Real user, limited history Standard access
Neutral 250 – 499 New or low-signal wallet Rate-limited, may require additional checks
Risky 0 – 249 Risk flags present or zero history Block or escalate

Anti-gaming

Reputation systems get gamed. The whole point of the design is to make farming any single signal economically irrational. Three mechanisms:

Time-weighting. Most signals are time-discounted. Sybil farms that batch-create wallets and run them through DeFi for a month gain little, because History and held-duration signals can't be shortcut.

Cross-dimensional minimums. A wallet scoring 100/100 on Activity but 0/100 on History maxes out at ~150 total. The weighted sum punishes one-dimensional wallets.

Risk floors. The Risk-free dimension is multiplicative, not additive. A direct OFAC match sets the entire score to under 50 regardless of other dimensions.

What we don't use

No off-chain identity. No social media. No KYC documents. No IP addresses. No browser fingerprints. PROOF reads only public chain data — if it isn't on a block explorer, it doesn't influence the score.

This is a deliberate trade-off: we lose the ability to bind a passport to a "real person", but we gain a system that can't be coerced by any single jurisdiction and that any wallet can audit for itself.

⚠ Caveats

This is a demonstration project. PROOF is not currently used by any production protocol. Scoring formulas, weights, and signal definitions are illustrative — a real system would publish versioned model files, change-log every weight adjustment, and undergo independent audit before any integration.