Skip to main content

StakrVaults Reference

Status: Live

Primary source documents:

Factory API

  • createStakrVault(address underlying, string _name, string _symbol, string _description, address _owner) returns (address vault)
  • createStakrVault(address underlying, string _name, string _symbol, string _description, address _owner, address plugin) returns (address vault)
  • availableStakrVaults(address _underlying) view returns (uint256)
  • stakrVaultByIndex(address _underlying, uint256 _index) view returns (address)

Reward API

  • addRewardToken(address token, uint256 amount, Settings calldata _settings)
  • modifyRewardToken(address token, uint256 amount, Settings calldata _settings)
  • rewardsCount() view returns (uint256)
  • rewards(address token) view returns (...)
  • updateStakrVault()

User/Position API

  • deposit(uint256 assets, address receiver)
  • depositAndLock(uint256 assets, address _user)
  • lock(uint256 _shares, address _user)
  • unlock(uint256 _shares, address _user)
  • unlockAndRedeem(uint256 shares, address receiver)
  • harvest(address _user)
  • lockedShares(address) view returns (uint256)

Plugin Hook Coverage

When plugin() != address(0), vault calls plugin hooks around:

  • Deposit: beforeDeposit / afterDeposit
  • Lock: beforeLock / afterLock
  • Unlock: beforeUnlock / afterUnlock
  • Redeem: beforeRedeem / afterRedeem
  • Rewards: beforeAddReward / afterAddReward, beforeModifyReward / afterModifyReward, beforeRemoveReward / afterRemoveReward
  • Harvest: beforeHarvest / afterHarvest

All hooks are strict-mode: revert in hook means revert in vault action.

Core Events

  • AddReward(address indexed token, uint256 amount, uint256 startDate, uint256 endDate)
  • ModifyReward(address indexed token, uint256 amount, uint256 startDate, uint256 endDate)
  • DeleteReward(address indexed token)
  • Harvest(address indexed user, address token, uint256 amount)
  • Lock(address indexed user, uint256 amount, uint256 lastLockedTime)
  • Unlock(address indexed user, uint256 amount, uint256 lastLockedTime)

Common Errors

  • StakrVaultInvalidReward()
  • StakrVaultInvalidSettings()
  • StakrVaultNotAllowed()
  • StakrVaultInsufficientBalance()
  • StakrVaultMathError()

Base Mainnet Contracts

Next Step