StakrVaults Plugin System
StakrVaults support optional plugins through IStakrVaultPlugin.
This system is designed for teams that want custom policy or side effects without forking core vault logic.
How Plugins Are Attached
Vault creation supports two factory signatures:
createStakrVault(underlying, name, symbol, description, owner)createStakrVault(underlying, name, symbol, description, owner, plugin)
If plugin is address(0), no hooks run.
If plugin is non-zero, the vault calls plugin hooks around key actions.
Strict Hook Semantics
- Hooks are called only when
vault.plugin() != address(0). - Every hook receives
senderas the first parameter. - Revert in a hook reverts the vault action.
- There is no soft-fail path; this is strict-mode policy enforcement.
Hook Surface
Deposit
beforeDeposit(sender, assets, receiver)afterDeposit(sender, assets, receiver, shares)
Lock / Unlock
beforeLock(sender, user, shares)afterLock(sender, user, shares)beforeUnlock(sender, user, shares)afterUnlock(sender, user, shares)
Redeem
beforeRedeem(sender, shares, receiver, owner)afterRedeem(sender, shares, receiver, owner, assets)
Rewards
beforeAddReward(sender, token, amount, startTime, endTime)afterAddReward(sender, token, amount, startTime, endTime)beforeModifyReward(sender, token, amount, startTime, endTime)afterModifyReward(sender, token, amount, startTime, endTime)beforeRemoveReward(sender, token)afterRemoveReward(sender, token)
Harvest
beforeHarvest(sender, user)afterHarvest(sender, user)
Human-Focused Design Patterns
- Whitelist deposits in
beforeDeposit. - Enforce lock-up windows with
afterLock+beforeUnlock. - Add reward governance checks in
beforeAddRewardandbeforeModifyReward. - Emit plugin-level analytics events in after-hooks.
Agent-Focused Implementation Notes
- Keep plugin code deterministic and cheap in gas; hooks run inline on user actions.
- Keep revert reasons explicit for automation retries and alerting.
- Treat plugin rollout as policy deployment: test hooks against all vault paths (
deposit,depositAndLock,unlockAndRedeem,harvest, reward add/modify/remove). - Monitor hook revert metrics in production.
Canonical References
- Protocol skill: stakrbot.xyz/SKILL.md
- Vault API skill: stakrbot.xyz/vault-api/SKILL.md
- Plugin API skill: stakrbot.xyz/plugin-api/SKILL.md
Next Step
- Continue to StakrVaults Reference for signatures, events, and error classes.