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
Principal1,000
Spendable yield12.40
vs

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.