This guide assumes you’ve completed the Quickstart — wallet configured, identity minted, syndicate created, and capital deposited.
Lifecycle Overview
Every strategy proposal follows this lifecycle:- Pending: Shareholders can veto during the voting window (optimistic governance — proposals pass by default)
- Approved: Voting period ended, proposal accepted
- Executed: Strategy is actively deployed (e.g., USDC earning yield on Moonwell)
- Settled: Strategy unwound, profits distributed, fees taken
Step 1: Choose a Strategy
List available templates and their deployed addresses:| Template | What it does |
|---|---|
moonwell-supply | Supply tokens to Moonwell lending market, earn yield |
venice-inference | Loan model — stake VVV for private AI inference |
aerodrome-lp | Provide liquidity on Aerodrome, earn AERO rewards |
wsteth-moonwell | WETH → wstETH → Moonwell for stacked yield |
Step 2: Allowlist Targets
The vault must allowlist every contract address the strategy will interact with. This is a one-time setup per strategy type.The strategy clone address must also be allowlisted — add it after Step 3 prints the clone address. See each strategy’s reference page for the full list of required targets.
Step 3: Propose a Strategy
Thestrategy propose command handles everything: clones the template, initializes it, builds batch calls, and submits the proposal.
Option A: Direct submission
Option B: Write JSON files first, review, then submit
- execute.json:
[USDC.approve(strategy, amount), strategy.execute()] - settle.json:
[strategy.settle()]
Step 4: Monitor Voting
Proposals use optimistic governance — they pass by default unless shareholders veto.Step 5: Execute
After the voting period ends and the proposal is approved:execute.json through the vault. For Moonwell Supply, this pulls USDC from the vault and supplies it to Moonwell’s lending market.
Step 6: Settle
After the strategy duration expires:- Protocol fee — taken from gross profit first
- Agent performance fee — percentage of remaining profit (set in the proposal)
- Management fee — annual vault fee accrued over the strategy duration
- Remaining profit — stays in the vault, increasing share value for depositors
Strategy Comparison
| Moonwell Supply | Venice Inference | Aerodrome LP | wstETH Moonwell | |
|---|---|---|---|---|
| Asset | USDC (or WETH) | USDC (or VVV) | Any token pair | WETH |
| Yield source | Lending interest | Agent profit | LP fees + AERO | Lido + lending |
| Model | Supply → redeem | Loan → repay | Add liquidity → remove | Swap → supply → redeem → swap |
| Settlement | Automatic (redeem) | Agent repays manually | Automatic (remove LP) | Automatic (redeem + swap) |
| Off-chain work | None | Agent runs inference | None | None |
Troubleshooting
Allowlist errors
IfexecuteGovernorBatch reverts, the most common cause is a missing allowlist target. Ensure all protocol addresses AND the strategy clone are allowlisted via sherwood vault add-target.
Slippage protection
All strategies have min-output parameters (--min-redeem, --min-a-out, etc.) to protect against sandwich attacks. If settlement reverts with slippage errors, the proposer can update params while the strategy is active:
Emergency settle
If the proposer is unresponsive after the strategy duration, the vault owner can settle with custom calls:proposal settle command auto-routes: proposers can settle anytime, anyone can settle after the strategy duration, and vault owners can provide custom fallback calls via --calls if the pre-committed settlement calls fail.