Stellar / Soroban
Back an uptime promise with funds a contract actually holds.
A provider locks a bond in the sla_vault contract. Registered watchers check the service each round and vote Up or Down. When a round reaches quorum on Down, anyone can trigger settlement and the configured penalty is paid to the beneficiary.
Have an SLA ID? Look up its public status:
What v1 actually enforces
- Settlement is decided per round, not as a monthly uptime average.
- The configured uptime target is display-only in v1. The contracts do not calculate monthly uptime against it.
- All SLAs currently share one watcher set. A provider cannot choose watchers for an SLA.
- Anyone can call settlement once quorum is reached. It is not limited to the provider.
How a round moves from bond to settlement
Each step is a call or rule in the contracts. Nothing here is live network data. Open a status page to see a real SLA.
Provider creates the SLA
The provider sets the token, bond, penalty per breach, quorum threshold and beneficiary, and funds the bond.
sla_vault.create_slaBond is held
The bond stays in the vault. The provider can top it up while the SLA is active.
sla_vault.top_up_bondWatchers vote each round
Every 60 seconds each registered watcher checks the service once and votes Up or Down.
watcher_registry.submit_checkVotes are tallied
The registry counts the Up and Down votes for the round. It does not decide anything.
watcher_registry.get_round_tallyQuorum is checked
A round qualifies when its Down votes reach the SLA's quorum threshold. Up votes do not count toward it.
votes_down ≥ quorum_thresholdAnyone settles
Once a round qualifies, any wallet can trigger settlement. The penalty is paid from the bond to the beneficiary.
sla_vault.trigger_settlement