sTARE¶
ERC-4626 savings vault over TARE. Depositors receive sTARE shares; share price rises when engine surplus is distributed — no rebasing.
Source: TARE-Stablecoin/src/stare.vy (Vyper 0.4.3)
Sepolia deployment: 0xCc7A41B795b433d41481980b9c5b84e34541107d — address book
Concept guide: sTARE protocol page
Implementation overview¶
- Thin snekmate wrapper — all share math in audited
erc4626module; no custom@externalfunctions. - Yield source — TARE transferred in by
TareEngine.distribute_to_savingsand via SurplusSplitter senior slice. totalAssets()—TARE.balanceOf(self); NAV rises only on inbound TARE transfers.
Init¶
@deploy
def __init__(tare_address: address):
erc4626.__init__(
NAME, # "Savings TARE"
SYMBOL, # "sTARE"
erc4626.IERC20(tare_address),
DECIMALS_OFFSET, # 0
NAME,
EIP_712_VERSION,
)
| Param | Description |
|---|---|
tare_address |
TARE ERC-20 used as vault underlying |
Deploy script seeds dead shares for inflation-attack mitigation (script/deploy_stare.py).
Trust model¶
| Property | Behavior |
|---|---|
| Yield | Share price up only when TARE arrives — stability fees → engine surplus → distribute_to_savings / SurplusSplitter |
| Bad debt | Not first-loss capital; engine never skims below surplus_buffer_target |
| Admin mint | None — no custom admin on wrapper |
| Rebasing | No — ERC-4626 share appreciation only |
| Collateral claim | Savers have no claim on CDP collateral |
Protected wrapper
NatSpec: sTARE is a protected yield wrapper. At worst NAV stalls when no fees accrue; savers are not diluted to cover insolvent positions.
Yield flow¶
flowchart LR
Fees[Stability fees] --> Surplus[Engine surplus]
Surplus --> Dist[distribute_to_savings]
SS[SurplusSplitter] --> sTARE[sTARE vault]
Dist --> sTARE
sTARE --> Shares[Share price rises]
Engine wiring: owner calls set_savings_vault to point distributions at this contract.
Standard ERC-4626 surface¶
Full interface re-exported via exports: erc4626.__interface__:
deposit/mint/withdraw/redeemconvertToAssets/convertToShares/previewDeposit/ etc.asset()→ TARE address- ERC-20 share token + EIP-2612 permit
For per-function ERC-4626 docs see snekmate erc4626.
Cross-links¶
- TareEngine API —
distribute_to_savings,set_savings_vault - SurplusSplitter API — senior surplus routing
- TareToken API — underlying asset
- TARE hub