Octant v2 Smart Contracts
This section is the contract-reference layer of the docs, aligned with octant-v2-core 1.2.0-develop.15 at commit 36ed6ad6665661a18f83394d561fa75c68ccf4ac. Use it when you need exact method names, events, inheritance, roles, or edge-case behavior. If you are still deciding which component to use or in what order to read the docs, start with Developer Orientation or Common Developer Workflows first.
Start here if you need a quick route
| I need to... | Open these pages |
|---|---|
| write or inspect a custom strategy | BaseStrategy, TokenizedStrategy, BaseHealthCheck |
| inspect a Yield Donating Strategy | YieldDonatingTokenizedStrategy, ERC4626Strategy, AaveV3Strategy, YearnV3Strategy |
| inspect a Yield Skimming Strategy | BaseYieldSkimmingStrategy, YieldSkimmingTokenizedStrategy, IYieldSkimmingStrategy, BaseYieldSkimmingHealthCheck |
| forward or swap donated yield | YieldForwarder, SwappingYieldForwarder, ISwapper |
| inspect multi-strategy vault behavior | MultistrategyVault, MultistrategyLockedVault, DebtManagementLib |
| deploy prebuilt strategies or factories | BaseStrategyFactory, BaseERC4626StrategyFactory, YieldForwarderFactory |
| inspect allocation mechanisms | BaseAllocationMechanism, TokenizedAllocationMechanism, OctantQFMechanism, QuadraticVotingMechanism |
| inspect staking and reward flows | RegenStaker, RegenStakerBase, RegenEarningPowerCalculator |
| inspect payout helpers | PaymentSplitter, PaymentSplitterFactory |
Core Strategy Primitives
- BaseStrategy - abstract contract strategy authors build on.
- TokenizedStrategy - shared implementation delegated to by strategy proxies.
- YieldDonatingTokenizedStrategy - realized-profit donation implementation.
- YieldSkimmingTokenizedStrategy - value-accrual and skimming implementation.
- Privileged - shared caller allowlist base for privileged strategy variants.
- PrivilegedYieldDonatingTokenizedStrategy - caller-gated YDS implementation.
- PrivilegedYieldSkimmingTokenizedStrategy - caller-gated YSS implementation.
Concrete Strategies
- AaveV3Strategy - Aave V3 yield-donating adapter with rewards and sweep support.
- ERC4626Strategy - generic ERC-4626 yield-donating adapter.
- MorphoCompounderStrategy - Morpho compounder adapter.
- SkyCompounderStrategy - Sky compounder adapter.
- SparkStrategy - Spark adapter with airdrop sweep support.
- YearnV3Strategy - Yearn V3 adapter.
- BaseYieldSkimmingStrategy - base for passive-hold YSS strategies.
- LidoStrategy - Lido/wstETH yield-skimming adapter.
- RocketPoolStrategy - Rocket Pool yield-skimming adapter.
- IYieldSkimmingStrategy - YSS interface.
Forwarders And Swappers
- YieldForwarder - reports, redeems donation shares, and forwards underlying assets.
- SwappingYieldForwarder - reports, redeems, swaps, and forwards target assets.
- ISwapper - pull-pattern swapper interface.
- CurveSwapper - Curve implementation of the swapper interface.
- PSMSwapper - PSM implementation of the swapper interface.
- UniswapV3SwapperAdapter - Uniswap V3 swapper adapter.
- UniswapV4SwapperAdapter - Uniswap V4 swapper adapter.
- UniswapV3Swapper - legacy/periphery Uniswap V3 helper used by Sky strategy flows.
Vaults
- MultistrategyVault - vault that allocates one asset across multiple strategies.
- MultistrategyLockedVault - multistrategy vault with custody-based exit flow.
- MultistrategyVaultFactory - factory for multistrategy vault proxies.
- DebtManagementLib - helper library for idle liquidity and strategy debt movements.
Factories
- BaseStrategyFactory - base clone factory for strategy deployments.
- BaseERC4626StrategyFactory - base factory for ERC-4626 style strategies.
- AaveV3StrategyFactory - Aave V3 strategy factory.
- AddressSetFactory - address-set factory.
- ERC4626StrategyFactory - generic ERC-4626 strategy factory.
- LidoStrategyFactory - Lido strategy factory.
- MorphoCompounderStrategyFactory - Morpho compounder strategy factory.
- RegenEarningPowerCalculatorFactory - regen earning-power calculator factory.
- RegenStakerFactory - regen staker factory.
- SkyCompounderStrategyFactory - Sky compounder strategy factory.
- SparkStrategyFactory - Spark strategy factory.
- YearnV3StrategyFactory - Yearn V3 strategy factory.
- RocketPoolStrategyFactory - Rocket Pool strategy factory.
- YieldForwarderFactory - deterministic forwarder factory.
Package compatibility shims
1.2.0-develop.15 retains a few deprecated interfaces only to preserve published package import-path compatibility:
src/interfaces/IDragon.sol- legacy Dragon facade interface.src/interfaces/IFactory.sol- legacy factory fee-configuration interface.src/interfaces/IMorphoCompounderStrategyFactoryV1.sol- V1 Morpho factory interface for the mainnet factory at0x052d20B0e0b141988bD32772C735085e45F357c1, whosecreateStrategy(...)signature has no_symbolparameter.
Use those only when interacting with the older deployed contracts or legacy package imports. New strategy code should prefer the current factory interfaces and the deployed-address guidance for V1/V2 factory selection.
Allocation Mechanisms
- BaseAllocationMechanism - base voting/allocation mechanism.
- TokenizedAllocationMechanism - tokenized allocation mechanism.
- AllocationMechanismFactory - mechanism factory.
- OctantQFMechanism - concrete Octant quadratic-funding mechanism.
- QuadraticVotingMechanism - quadratic voting mechanism.
- ProperQF - quadratic-funding voting strategy base.
Regen, Helpers, And Guards
- RegenStakerBase - staking base with earning-power accounting.
- RegenStaker - staker with delegate surrogate votes.
- RegenStakerWithoutDelegateSurrogateVotes - staker without delegate surrogate votes.
- RegenEarningPowerCalculator - earning-power calculator.
- PaymentSplitter - pull-based payout splitter.
- PaymentSplitterFactory - splitter factory.
- ERC20SafeApproveLib - safe approval helper for non-standard ERC-20s.
- AddressSet - ownable address allow/block set.
- KeeperBotGuard - guard for keeper automation flows.
Out of scope for this reference
The pinned [email protected] also ships the src/zodiac-core/ contracts (LinearAllowanceExecutor and LinearAllowanceSingletonForGnosisSafe). These are not covered by this reference section. Consult the source in the pinned core repo if your integration needs them.
How to use this section without getting lost
- Start with the guide for your task, not with the longest contract page.
- Use Reading the Smart-Contract Reference to jump from a task to the right reference page.
- Keep the matching guide open while reading the contract page.
- Return to Common Developer Workflows if you lose the bigger picture.