Glossary
Consistent vocabulary for ShipLock concepts and terms.
Glossary
Consistent terminology used across ShipLock's protocol, documentation, and UI.
Core Terms
| Term | Definition |
|---|
| Bond | Collateral locked by the project (SOL / stablecoin / SPL token). Creates real downside for missed commitments. |
| Cadence | How frequently the project must deliver a valid check-in (e.g., every 48 hours). |
| Cycle | One cadence period — the time window in which the project must produce an accepted check-in. |
| Deadline | The time limit for the current cycle. After this, the grace period begins. |
| Grace period | Extra buffer after the deadline to avoid accidental slashes. After grace ends, slashing becomes valid. |
| Check-in | A submission that includes a claim (what was delivered), proof (links + optional content hash), and an endorsement window. |
| Endorsement | A watcher signs a transaction attesting: "This check-in meets the promise." Endorsements add weight toward acceptance. |
| Weight | Validation power derived from stake using diminishing returns: weight = floor(sqrt(stake)). |
| Threshold | Minimum total endorsement weight required to accept a check-in. |
| Slashing | Permissionless penalty executed when a project fails to produce an accepted check-in by grace end. |
States
| Term | Definition |
|---|
| Active | Project is within its deadline window and on track. |
| At risk | Near deadline and no accepted check-in yet. UX-only state — not an enforcement boundary. |
| Violation | Grace ended and no accepted check-in exists for that cycle. Slashing is now valid. |
| Slashable | Objective on-chain condition is true: slash() can be executed by anyone. |
| Slashed | The cycle was resolved by penalty. Bond partially transferred, cycle advances. |
Check-in States
| Term | Definition |
|---|
| Pending | Endorse window is open. Watchers can still endorse. |
| Accepted | Endorsement thresholds met within the window. Cycle is satisfied. |
| Rejected | Endorse window closed without reaching thresholds. |
Roles
| Term | Definition |
|---|
| Project Owner (Builder) | Creates a project, locks bond, submits check-ins. |
| Watcher (Validator) | Stakes $SHIP globally, endorses check-ins, earns rewards. |
| Enforcer (Slasher) | Any user who triggers slash() when conditions are met. Earns a bounty. |
| Watcher set | The active stakers able to endorse at any given time. |
On-chain Variables
| Term | Definition |
|---|
| cycleNonce | Integer cycle counter, starts at 0. Increments on each cycle advancement. |
| cycleStartAt | Timestamp when the current cycle began. |
| nextDeadlineAt | Deadline timestamp for the current cycle. |
| graceEndsAt | nextDeadlineAt + grace. Enforcement boundary. |
| lastAcceptedCheckinAt | Timestamp of the last accepted check-in. Used for streak calculation. |
| lastSlashedCycleNonce | Cycle nonce that was last slashed. Prevents double-slashing. |
Metrics
| Term | Definition |
|---|
| Compliance rate | (acceptedCheckins / totalExpectedCheckins) * 100. Measures shipping consistency. |
| Valid check-in | A check-in that ends as ACCEPTED. |
| Streak | Number of consecutive cycles with accepted check-ins. |
| Bounty | Portion of slashed amount paid to the slash executor. |
Economic Terms
| Term | Definition |
|---|
| Diminishing returns | sqrt(stake) ensures more stake gives less proportional weight. |
| Two-factor gate | Acceptance requires both weight threshold AND minimum endorser count. |
| Rolling cadence | Shipping sooner resets the timer. No fixed weekly schedule. |
| Stake-and-run | Attack where someone stakes, endorses, then immediately unstakes. Prevented by 72h unlock delay. |