Stake
Single-asset stablecoin vaults. Stake USDC or EURC, earn yield as the price-per-share rises. Standard ERC-4626. No lockup, withdraw anytime.
100% OZ v5 ERC4626, Ownable2Step, Pausable, ReentrancyGuard, SafeERC20.
Rescue function blocks the underlying asset. No admin withdrawal path exists.
Pause blocks deposits only. Redeem is never pausable — you can always unstake.
_decimalsOffset = 6 virtual shares mitigates first-depositor donation griefing.
Full audit checklist →
SECURITY-AUDIT-YIELD-VAULT.mdUSDC · Yield Vault
ERC-4626Stake USDC → receive sUSDC. Yield accrues as price-per-share rises. Withdraw anytime. No lockup.
TVL
0 USDC
Price / share
1.000000 USDC
Your stake
0 USDC
Wallet
0 USDC
Allowance: — USDC
EURC · Yield Vault
ERC-4626Stake EURC → receive sEURC. Yield accrues as price-per-share rises. Withdraw anytime. No lockup.
TVL
0 EURC
Price / share
1.000000 EURC
Your stake
0 EURC
Wallet
0 EURC
Allowance: — EURC
Plain-english risk
- Yield is funded by the protocol/treasury calling
fundRewards(). If no one funds rewards, shares stay at 1:1 and you simply get your principal back. - Smart-contract risk is never zero. This contract is ~150 lines, 100% OpenZeppelin primitives, immutable, no proxy, no delegatecall.
- Stablecoin de-peg risk (USDC / EURC / EURW) is upstream and outside protocol control.
- Pausing blocks new deposits only — you can always withdraw your stake. The owner role is a two-step transfer and can only pause, unpause, fund rewards, and rescue non-underlying tokens.