Sign in

Reference

Protocol reference

Contracts, state machines, invariants and the parameters, with the calls to read them yourself.

WatchedClaimedOpenActiveBreachedLapsedRetiredclean epoch

Contracts

  • ProbeLog: the service registry, the prober set and every posted window. One storage word per service, hour and prober.
  • BondBook: bonds, legs, tranches, premium accounting, settlement, exits, the ETH distribution over $PBI backing, and isBonded.
  • Compensation: slashed USDG, customer roots, claims and the compensation reserve.
  • PasskeyAccountFactory: deterministic accounts controlled by a WebAuthn passkey, used by Go mode.
  • TimelockController (OpenZeppelin): owner of the three, 48 h minimum delay.

State machines

Service: Watched, Claimed, Open, Active, Breached, Lapsed, Retired. Epoch: Probing, Closed, Settled, Claimable. The protocol page draws both and reads every parameter live.

Invariants

I1 cash, I2 cap, I3 first loss, I4 order, I5 no dodge, I6 bounded compensation, I7 owner. A stateful fuzzer checks them after every call, 8,192 calls per invariant on every build, next to unit tests and fork tests against this chain with real USDG.

Read it with cast

cast call $BONDBOOK "getParams()((uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint16,uint32))" --rpc-url $RPC
cast call $BONDBOOK "getBond(uint256)" 1 --rpc-url $RPC
cast call $PROBELOG "latest()" --rpc-url $RPC
cast call $PROBELOG "epochStats(uint256,uint256,uint256,uint8)(uint256,uint256,uint256)" 1 $FROM $TO 255 --rpc-url $RPC
cast send $BONDBOOK "settle(uint256)" 1 --rpc-url $RPC --private-key $KEY