Smart Contracts
VSPR.sol
Native ERC-20 token. Responsibilities: ERC-20 accounting, 9-decimal precision, restricted minting and Treasury-authorized issuance.
sVSPR.sol
Rebasing representation of staked VSPR. Responsibilities: staker accounting, rebase adjustments and staking integration.
Staking.sol
Coordinates stake, unstake, optional warm-up, cycle accounting, reward distribution and rebase execution.
Treasury.sol
Controls protocol-owned reserves, asset whitelist, reserve accounting, valuation and VSPR mint authorization.
BondDepository.sol
Manages accepted deposit assets, bond pricing, discounts, vesting and VSPR claims.
Distributor.sol
Pays each cycle min(swept hook revenue + bond proceeds, excess reserves) into Staking. There is no fixed reward rate.
ReservePricer.sol
Values reserve tokens through Chainlink tokenized-equity feeds, with an owner-set fallback. It never reverts on a stale price: it returns the last answer and flags it, so valuations read "as of last close".
lib/SessionClock.sol
Pure library. From a timestamp it returns the session state (closed, pre-market, open, last light, after the close) and the seconds to the next close, with rule-based DST and NYSE holidays for 2026 and 2027.
hooks/LastLight.sol
LAST LIGHT, the Uniswap v4 hook: session-aware fees, the final-hour fee ramp, baseline restoration, the protocol fee share and permissionless settlement of each cycle into the Treasury.
Permissions
Privileged functions should be limited to clearly defined configuration responsibilities. Critical permissions and contract ownership should be publicly identifiable from deployed contracts.