Arc Testnet · 5042002

Stake

Single-asset stablecoin vaults. Stake USDC or EURC, earn yield as the price-per-share rises. Standard ERC-4626. No lockup, withdraw anytime.

OpenZeppelin only

100% OZ v5 ERC4626, Ownable2Step, Pausable, ReentrancyGuard, SafeERC20.

Owner cannot drain

Rescue function blocks the underlying asset. No admin withdrawal path exists.

Always exit-able

Pause blocks deposits only. Redeem is never pausable — you can always unstake.

Inflation-attack safe

_decimalsOffset = 6 virtual shares mitigates first-depositor donation griefing.

Full audit checklist →

SECURITY-AUDIT-YIELD-VAULT.md

USDC · Yield Vault

ERC-4626

Stake 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-4626

Stake 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.