Principal Protection · Proven on-chain
Your principal can't be spent.
CindrelVault enforces it in code. Try it below — spend from your yield, and it succeeds. Try to touch the principal, and the contract refuses.
The contract
function spend (uint256 amount) {
require (amount <= spendableYieldOf(msg.sender));
// ↑ principal can never leave
positions[msg.sender].spent += amount;
usdg.transfer(msg.sender, amount);
}
Your vault
principal = 1,000 USDG
accrued = 12.40 USDG
spent = 0 USDG
// spendable = 12.40
Principal 1,000
Spendable yield 12.40
Spend 10 USDG (from yield)
vs
Spend 2,000 USDG (touch principal)
This is a simulation of the exact `require` logic in CindrelVault.sol. The real contract does the same on-chain — verify it yourself, don't take our word.