Endorsement System

How community validation works — staked endorsements, weight formula, incentives, and thresholds.

Endorsement System

Endorsements are the mechanism that converts a check-in into a validated signal. It's not a like or a vote — it's validation with stake behind it.

What an Endorsement Means

An endorsement is a positive attestation:

"I reviewed this check-in and I believe it satisfies the project's stated promise for this cycle."

Key points:

  • Endorsing does not fund the project
  • Endorsing does not change the project's bond
  • Endorsing does move the check-in toward ACCEPTED
  • Endorsing does make you eligible for rewards (if the check-in is accepted)

How It Works

  1. A project publishes a check-in with evidence
  2. An endorse window opens (default: 12 hours)
  3. Staked watchers review the evidence and endorse
  4. When total endorsement weight + endorser count meet thresholds → ACCEPTED

Weight Formula

Endorsement weight uses a square root function to prevent whale dominance:

weight = floor(sqrt(stake))
StakeWeightCapital to double weight
100 SHIP10300 more
400 SHIP201,200 more
1,600 SHIP404,800 more
10,000 SHIP10030,000 more
100,000 SHIP316300,000 more

A whale with 100x more tokens only gets ~10x more influence.

The Two-Factor Acceptance Gate

A check-in becomes ACCEPTED only if it passes both requirements:

totalWeight >= thresholdWeight    (economic conviction)
AND endorserCount >= minEndorsers (diversity requirement)
AND now <= endorseWindowEndsAt    (within time window)

Neither alone is sufficient:

  • Weight alone isn't enough — a single whale could accept everything
  • Count alone isn't enough — a sybil swarm with minimum stake could spam endorsements

Together they create a security gate that requires both capital and coordination.

Why 100 weight and 3 endorsers?

With minStakeSHIP = 100, minimum watcher weight = 10.

If thresholdWeight = 100 and minEndorsers = 3:

  • Three minimum stakers give only 30 weight (not enough)
  • You need either more endorsers, higher stakes, or both

This prevents trivial acceptance and forces real community engagement.

Check-in States

StateDescription
PENDINGEndorse window is open — watchers can still endorse
ACCEPTEDBoth thresholds met within the window — check-in is valid
REJECTEDWindow closed without reaching thresholds

Rules

  1. One endorse per wallet per check-in — No double-endorsing
  2. Top 25 endorsements count — Capped by weight to prevent spam
  3. Fixed endorse window — Cannot be extended or modified
  4. Minimum stake required — 100 SHIP to prevent bot spam
  5. One pending check-in at a time — Prevents window overlap and confusion

Why "No Endorse" is Rejection

In MVP, there is no explicit "reject" button. If you think a check-in is insufficient:

  • Don't endorse — your non-participation is the signal
  • The check-in fails to reach threshold → becomes REJECTED after the window
  • If the project runs out of time → slash becomes available

This avoids complex "negative voting" games where attackers could grief projects with reject spam.

Watcher Incentives

Endorsements must be rational even for strangers. Three motivations:

1. Direct Economic Rewards

Watchers earn rewards for endorsing check-ins that end as ACCEPTED:

  • If you endorsed an accepted check-in → you qualify for rewards
  • If you endorsed a rejected check-in → you earn nothing

This aligns incentives: endorse only if you believe the check-in is legitimate and others will also endorse.

2. Reputation (Optional)

Even without on-chain reputation, the UI can display:

  • Watcher endorsement counts
  • Acceptance rate
  • "Top validators" on the leaderboard

3. Self-Interest Alignment

Communities endorse projects they care about — builders they want to succeed, tools they use. ShipLock creates a clean "validation ritual" with clear deadlines.

Reward Distribution

Watcher rewards come from two sources:

  1. Protocol fees — 20% of all fees go to the watcher rewards pool
  2. Slash distributions — 20% of slashed bonds go to watchers

Rewards are distributed proportionally to stake weight among watchers who endorsed accepted check-ins.

Anti-Spam Knobs

To prevent "endorse everything" behavior:

  • Only accepted check-ins earn rewards — failed endorsements earn nothing
  • Timing incentives — earlier endorsements can receive slightly higher rewards
  • Per-wallet caps — no wallet can earn more than 5% of epoch rewards
  • Endorsement accuracy (post-MVP) — track validator acceptance rate