Bound
Contracts

AuditorStaking

The auditor's own money — slashable if the vouch turns out to be false.

CCSJTEXOJZ322XI5ZJF6YZ2IRLCRKNXTGHGK3ZLATKL6Y7CGQODS4VZB

An attestation is only worth what the attester loses for lying. This contract holds that amount.

Functions

FunctionAuthNotes
initialize(challenge_manager, registry, token, min_stake)once
stake(auditor, amount)auditorA stake at or above min_stake is registration
is_registered(auditor) -> boolviewstake >= min_registration_stake
get_stake(auditor) -> i128viewCurrent live stake
lock(auditor, until)Registry onlyBond the stake to a certificate; extends, never shortens
locked_until(auditor) -> u64viewWhen the bond lifts
slash(auditor, recipient, amount)ChallengeManager onlyMove stake to a recipient
release(auditor)auditorReverts stake_locked if now < locked_until

Registration is not an allowlist

There is no admin approving auditors. Staking at or above the minimum is what makes you one, and the same act is what makes you slashable. Anyone can become an auditor; nobody can become one for free.

The lock is the whole point

The Registry calls lock inside attest, so vouching and locking are one transaction — there is no window in which a certificate is Verified while its auditor can still walk away with their stake. lock only ever extends the deadline, so an auditor covering several certificates stays bound until the last one expires.

Slashing

Only the ChallengeManager can slash, and only through a resolved challenge. On a proven short reserve it slashes twice: 80% of the live stake to the victim, 20% to the challenger who caught it.

On this page