Risk guard
On-chain risk score, insurance reserve and protection switch. Every executor action is gated by this contract.
Risk score
RiskGuard.getRiskScore() returns a 0..100 integer that the executor compares against the per-strategy ceiling. Above the ceiling, allocations are skipped silently — capital is held in the vault rather than deployed.
solidity
function getRiskScore() external view returns (uint256); // 0..100
function protectionActive() external view returns (bool);
function insuranceReserve() external view returns (uint256);Protection switch
When protectionActive() is true, the executor refuses any action that increases exposure to non-blue-chip adapters. The dashboard surfaces this as a banner.
Insurance reserve
A portion of harvested yield is routed to insuranceReserve(). The reserve is denominated in the vault asset and can be drained only by a successful governance proposal.