Skip to content

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.

Everything settles at the close.