---
tags: 'strategy-diagrams'
---
# Strategy Diagrams
### 1inchStaking
**Description:** Stakes {{token}} on [1inch DAO](https://app.1inch.io/#/1/dao/governance) to collect governance rewards. Rewards are harvested and deposited back into the strategy.
```graphviz
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="0x111111111117dC0aa78b770fA6A738034120C302", label="Deposit"];
gov_staking[token="{{1inch staking image}}", label="1inch Governance"];
reward[token="0x111111111117dC0aa78b770fA6A738034120C302", label="Reward"];
node[group=descriptions, height=1, labelloc="c"];
stake_desc[label="Earn 1inch emissions \nstaking in gov"];
{rank = same; stake_desc; gov_staking;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> gov_staking;
gov_staking -> reward;
reward -> gov_staking
}
}
```
### AaveBorrow
**Description:** Supplies {{token}} to [AAVE](https://app.aave.com/home) to generate interest and earn staked AAVE tokens. Once unlocked, earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy. This strategy also borrows tokens against {{token}}. Borrowed tokens are then deposited into corresponding yVault to generate yield.
```graphviz
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
aave_pool[token="{{generic-aave-pool}}", label="Aave Pool"];
reward[token="0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9", label="Reward"];
borrow[token="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", label="Borrow"];
yvault[token="0x5f18C75AbDAe578b483E5F43f12a39cF75b973a9", label="yVault"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Earn interest \nand Aave tokens \n by lending"];
{rank = same; pool_desc; aave_pool;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
borrow_desc[label="Stablecoins are \nborrowed and \ndeposited in yVault"];
{rank = same; borrow_desc; borrow;}
yvault_desc[label="Profits are harvested from yVault and redeposited into the Aave pool"];
{rank = same; yvault_desc; yvault;}
subgraph connections {
deposit -> aave_pool;
aave_pool -> reward;
aave_pool -> borrow;
borrow -> yvault;
yvault -> aave_pool;
reward -> aave_pool;
}
}
```
### AaveCreamLenderOptimizer
**Description:** Supplies {{token}} to [AAVE](https://app.aave.com/home) and [C.R.E.A.M.](https://app.cream.finance/) to generate interest and earn staked AAVE tokens. Once unlocked, earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.
```plantuml
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
aave_pool[token="{{generic-aave-pool}}", label="Aave Pool"];
cream_pool[token="{{generic-cream-pool}}", label="Cream Pool"];
reward[token="0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9", label="Reward"];
node[group=descriptions, height=1, labelloc="c"];
aave_desc[label="Earn interest \nand Aave tokens \n by lending"];
{rank = same; aave_desc; aave_pool;}
aave_desc[label="Earn interest \nand Aave tokens \n by lending"];
{rank = same; aave_desc; aave_pool;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> aave_pool;
aave_pool -> reward;
deposit -> cream_pool;
aave_pool -> cream_pool;
reward -> aave_pool;
}
}
```
### AaveLenderOptimizer
**Description:** Supplies {{token}} to [AAVE](https://app.aave.com/home) to generate interest and earn staked AAVE tokens. Once unlocked, earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.
```plantuml
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
aave_pool[token="{{generic-aave-pool}}", label="Aave Pool"];
reward[token="0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9", label="Reward"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Earn interest \nand Aave tokens \n by lending"];
{rank = same; pool_desc; aave_pool;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> aave_pool;
aave_pool -> reward;
reward -> aave_pool;
}
}
```
### AlphaHomoraLenderOptimizer
**Description:** Supplies {{token}} to [Alpha Homora](https://homora.alphafinance.io/) to generate interest.
```graphviz
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
alpha_pool[token="{{generic-alpha-pool}}", label="Alpha Pool"];
reward[token="0xa1faa113cbE53436Df28FF0aEe54275c13B40975", label="Reward"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Earn interest \nand ALPHA tokens \n by lending"];
{rank = same; pool_desc; alpha_pool;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> alpha_pool;
}
}
```
### AlphaHomoraReinvest
**Description:** Supplies {{token}} to [Alpha Homora](https://homora-v2.alphafinance.io) to generate interest and earn ALPHA tokens. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
alpha_pool[token="{{generic-alpha-pool}}", label="Alpha Pool"];
reward[token="0xa1faa113cbE53436Df28FF0aEe54275c13B40975", label="Reward"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Earn interest \nand ALPHA tokens \n by lending"];
{rank = same; pool_desc; alpha_pool;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> alpha_pool;
alpha_pool -> reward;
reward -> alpha_pool;
}
}
```
### CompoundLeverage
**Description:** Supplies and borrows {{token}} on [Compound Finance](https://app.compound.finance) simultaneously to earn COMP. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy. Flashloans are used to obtain additional {{token}} from [dYdX](https://margin.dydx.exchange/markets/overview) to boost the APY.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"];
deposit[token="{{token-address}}", label="Deposit"];
comp_pool[token="{{generic-comp-pool}}", label="Compound Pool"];
reward[token="0xc00e94Cb662C3520282E6f5717214004A7f26888", label="Reward"];
loan[token="{{dYdX logo}}", label="Loan"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Earn interest \nand COMP tokens \n by lending"];
{rank = same; pool_desc; comp_pool;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
flashloan_desc[label="dYdX Flashloans increase yield"];
{rank = same; flashloan_desc; loan;}
subgraph connections {
deposit -> comp_pool;
comp_pool -> loan;
loan -> comp_pool;
comp_pool -> reward;
reward -> comp_pool;
}
}
}
```
### ConvexReinvest
**Description:** Supplies {{token}} to [Convex Finance](https://www.convexfinance.com/stake) to earn CRV and CVX (and any other available tokens). Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
convex_pool[token="{{generic-convex-pool}}", label="Convex Pool"];
reward[token="{{convex-token}}", label="Reward"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Earn interest \nand CVX tokens \n by lending"];
{rank = same; pool_desc; convex_pool;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> convex_pool;
convex_pool -> reward;
reward -> convex_pool;
}
}
```
### CreamDyDxLenderOptimizer
**Description:** Supplies {{token}} to [dYdX](https://margin.dydx.exchange/markets/overview) and [C.R.E.A.M.](https://app.cream.finance) to generate interest. The proportions are adjusted each time the strategy calls harvest.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
dydx_pool[token="{{generic-convex-pool}}", label="dYdX Pool"];
cream_pool[token="{{generic-convex-pool}}", label="C.R.E.A.M. Pool"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Automatically \nseek highest rates \nbetween these pools"];
{rank = same; pool_desc; dydx_pool;}
subgraph connections {
deposit -> dydx_pool;
deposit -> cream_pool;
cream_pool -> dydx_pool;
dydx_pool -> cream_pool;
}
}
```
### CreamLenderOptimizer
**Description:** Supplies {{token}} to [C.R.E.A.M.](https://app.cream.finance) to generate interest.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
cream_pool[token="{{generic-cream-pool}}", label="C.R.E.A.M. Pool"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Manage proportions of \nC.R.E.A.M. Finance deposits"];
{rank = same; pool_desc; cream_pool;}
subgraph connections {
deposit -> cream_pool;
}
}
```
---
### CurveDaoFeeClaim
**Description:** Converts {{token}} into yveCRV and earns a continuous share of [Curve Finance](https://curve.fi) fees. Earned [3Crv](https://curve.fi/3pool) (Curve's 3pool LP token) fees can be claimed every Friday.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="0xD533a949740bb3306d119CC777fa900bA034cd52", label="Deposit"];
curve_gov[token="0xc5bDdf9843308380375a611c18B50Fb9341f502A", label="Curve Governance"];
reward[token="0x9cA85572E6A3EbF24dEDd195623F188735A5179f", label="Reward"];
node[group=descriptions, height=1, labelloc="c"];
gov_desc[label="CRV is locked indefinitely"];
{rank = same; gov_desc; curve_gov;}
reward_desc[label="Stablecoin LP distributed every Friday"]
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> curve_gov;
curve_gov -> reward;
}
}
```
### CurveDaoFeeClaimReinvest
**Description:** Accepts {{token}} to earn a continuous share of [Curve Finance](https://curve.fi) fees. Earned [3Crv](https://curve.fi/3pool) (Curve's 3pool LP token) fees are harvested, swapped for more {{token}} which is deposited back into the strategy. Swap happens either via market-buy or mint, depending which is more capital efficient.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="0xD533a949740bb3306d119CC777fa900bA034cd52", label="Deposit"];
curve_gov[token="0xc5bDdf9843308380375a611c18B50Fb9341f502A", label="Curve Governance"];
reward[token="0x9cA85572E6A3EbF24dEDd195623F188735A5179f", label="Reward"];
node[group=descriptions, height=1, labelloc="c"];
gov_desc[label="CRV is locked indefinitely"];
{rank = same; gov_desc; curve_gov;}
reward_desc[label="Stablecoin LP distributed every Friday"]
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> curve_gov;
curve_gov -> reward;
reward -> deposit
}
}
```
### IdleReinvest
**Description:** Supplies {{token}} to [Idle Finance](https://idle.finance) to earn IDLE and COMP. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"];
deposit[token="{{token-address}}", label="Deposit"];
idle_pool[token="{{generic-idle-pool}}", label="Idle Pool"];
reward[token="0x875773784Af8135eA0ef43b5a374AaD105c5D39e", label="Reward"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Deposit into Idle Finance \n strategies and earn emissions"];
{rank = same; pool_desc; idle_pool;}
reward_desc[label="IDLE (or any other reward) \nare sold and reinvested"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> idle_pool;
idle_pool -> reward;
reward -> idle_pool;
}
}
```
### IronBankCompoundLending
**Description:** Supplies {{token}} to [Compound](https://app.compound.finance) and opens a long-term debt on [Iron Bank](https://docs.cream.finance/iron-bank/iron-bank) for an additional amount of {{token}} to earn COMP. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"];
deposit[token="{{token-address}}", label="Deposit"];
comp_pool[token="{{generic-comp-pool}}", label="Compound Pool"];
reward[token="0xc00e94Cb662C3520282E6f5717214004A7f26888", label="Reward"];
loan[token="{{dYdX logo}}", label="Loan"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Earn interest \nand COMP tokens \n by lending"];
{rank = same; pool_desc; comp_pool;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
flashloan_desc[label="dYdX Flashloans increase yield"];
{rank = same; flashloan_desc; loan;}
subgraph connections {
deposit -> comp_pool;
comp_pool -> loan;
loan -> comp_pool;
comp_pool -> reward;
reward -> comp_pool;
}
}
```
### KeeperDaoReinvest
**Description:** Supplies {{token}} to [KeeperDAO](https://app.keeperdao.com) to earn ROOK. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"];
deposit[token="{{token-address}}", label="Deposit"];
comp_pool[token="{{generic-comp-pool}}", label="Compound Pool"];
reward[token="0xc00e94Cb662C3520282E6f5717214004A7f26888", label="Reward"];
loan[token="{{Iron Bank logo}}", label="Loan"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Earn interest \nand COMP tokens \n by lending"];
{rank = same; pool_desc; comp_pool;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
flashloan_desc[label="Iron Bank flashloans \nborrow tokens to increase yield"];
{rank = same; flashloan_desc; loan;}
subgraph connections {
deposit -> comp_pool;
comp_pool -> loan;
loan -> comp_pool;
comp_pool -> reward;
reward -> comp_pool;
}
}
```
### MakerDelegate
**Description:** Stakes {{token}} in [MakerDAO](https://oasis.app/borrow) vault and mints DAI. This newly minted DAI is then deposited into the DAI yVault to generate yield.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"];
deposit[token="{{token-address}}", label="Deposit"];
maker_vault[token="0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2", label="MakerDAO Vault"];
minted_token[token="0x6B175474E89094C44Da98b954EedeAC495271d0F", label="Borrowed DAI"];
yvault[token="0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e", label="yVault"];
node[group=descriptions, height=1, labelloc="c"];
maker_vault_desc[label="Supply tokens \nto MakerDAO"];
{rank = same; maker_vault_desc; maker_vault;}
minted_token_desc[label="Mint DAI with your collateral"];
{rank = same; minted_token_desc; minted_token;}
yvault_desc[label="Deposit minted DAI \ninto yVault"];
{rank = same; yvault_desc; yvault;}
subgraph connections {
deposit -> maker_vault;
maker_vault -> minted_token;
minted_token -> yvault;
yvault -> maker_vault;
}
}
```
### MushroomReinvest
**Description:** Supplies {{token}} to [Mushroom Finance](https://mushrooms.finance) {{token}} Vault to earn MM. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
mushroom_farm[token="{{mushroom-finance-token}}", label="Mushroom Finance Vault"];
reward[token="0xa283aA7CfBB27EF0cfBcb2493dD9F4330E0fd304", label="Reward"];
node[group=descriptions, height=1, labelloc="c"]
mushroom_desc[label="Earn MM for \ndepositing in vaults"];
{rank = same; mushroom_desc; mushroom_farm;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> mushroom_farm;
mushroom_farm -> reward;
reward -> mushroom_farm;
}
}
```
### PoolTogetherReinvest
**Description:** Supplies {{token}} to [Pool Together](https://app.pooltogether.com) to earn POOL. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy. If strategy wins prize of the week, prize will also be added to the strategy.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
pooltogether_pool[token="{{pooltogether-pool}}", label="Pool Together"];
reward[token="{{pooltogether-token}}", label="Reward"];
prize[token="{{prize-token}}", label="Prize"];
node[group=descriptions, height=1, labelloc="c"]
pooltogether_desc[label="Earn POOL\n and prizes for \ndepositing into \n the protocol"];
{rank = same; pooltogether_desc; pooltogether_pool;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> pooltogether_pool;
pooltogether_pool -> reward;
pooltogether_pool -> prize;
reward -> pooltogether_pool;
prize -> pooltogether_pool;
}
}
```
### SingleSided
**Description:** Supplies {{token}} to [Curve Finance](https://curve.fi) to earn CRV. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy. Strategy automatically switches to the most profitable Curve pool.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
curve_pool_a[token="{{generic-curve-pool-image}}", label="Curve Pool A"];
curve_pool_b[token="{{generic-curve-pool-image}}", label="Curve Pool B"];
curve_pool_c[token="{{generic-curve-pool-image}}", label="Curve Pool C"];
curve_gauge[token="{{curve-gauge-image}}", label="Curve Guage"];
reward[token="0xD533a949740bb3306d119CC777fa900bA034cd52", label="Reward"];
yveCRV[token="0xc5bDdf9843308380375a611c18B50Fb9341f502A", label="yveCRV"];
node[group=descriptions, height=1, labelloc="c"];
deposit_desc[label="Earn by providing \nliquidity to Curve"];
{rank = same; deposit_desc; deposit;}
pool_desc[label="Tokens automatically \n seek highest yield pool",];
{rank = same; pool_desc; curve_pool_b;}
yveCRV_desc[label="Yearn's Staked CRV \ntokens boost earnings",];
{rank = same; yveCRV_desc; yveCRV;}
reward_desc[label="Rewards are sold \nand redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> curve_pool_a;
curve_pool_a -> curve_gauge;
curve_pool_a -> curve_pool_b;
curve_pool_b -> curve_pool_a;
curve_pool_b -> curve_gauge;
curve_pool_c -> curve_gauge;
curve_pool_c -> curve_pool_b;
curve_pool_b -> curve_pool_c;
yveCRV -> curve_gauge
curve_gauge -> reward;
reward -> curve_gauge;
}
}
```
### SynthetixMinterReinvest
**Description:** Stakes {{token}} on [Synthetix](https://staking.synthetix.io/) and mints sUSD. The newly minted sUSD is then deposited into the sUSD yVault to generate yield. Generated yield, weekly {{token}} fees and vested rewards (when claimable) are harvested, sold for more {{token}} which is deposited back into the strategy. **Rewards on staked {{token}} are locked for 1 year**.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"];
deposit[token="{{token-address}}", label="Deposit"];
synthetix_vault[token="Minter-logo", label="Synthetix Vault"];
minted_token[token="0x57Ab1ec28D129707052df4dF418D58a2D46d5f51", label="Borrowed sUSD"];
reward[token="0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F", label="SNX Rewards"];
yvault[token="0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e", label="yVault"];
node[group=descriptions, height=1, labelloc="c"];
synthetix_mintr_desc[label="Supply tokens \nto Synthetix"];
{rank = same; synthetix_mintr_desc; synthetix_vault;}
snx_[label="Supply tokens \nto Synthetix"];
{rank = same; synthetix_mintr_desc; synthetix_vault;}
minted_token_desc[label="Mint sUSD with your collateral"];
{rank = same; minted_token_desc; minted_token;}
mintr_desc[label="Deposit minted sUSD \ninto yVault"];
{rank = same; mintr_desc; yvault;}
subgraph connections {
deposit -> synthetix_vault;
synthetix_vault -> minted_token;
synthetix_vault -> reward;
reward -> synthetix_vault;
minted_token -> yvault;
yvault -> synthetix_vault;
}
}
```
### VesperReinvest
**Description:** Supplies {{token}} to [Vesper Finance](https://vesper.finance) to earn VSP. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
vesper_farm[token="{{vesper-finance-token}}", label="Vesper Finance Vault"];
reward[token="0x1b40183efb4dd766f11bda7a7c3ad8982e998421", label="Reward"];
node[group=descriptions, height=1, labelloc="c"]
vesper_desc[label="Earn VSP for \ndepositing in vaults"];
{rank = same; vesper_desc; vesper_farm;}
reward_desc[label="Rewards are redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> vesper_farm;
vesper_farm -> reward;
reward -> vesper_farm;
}
}
```
### VoterProxy
**Description:** Supplies {{token}} to [Curve Finance](https://curve.fi) and stakes it in gauge to collect any available tokens and earn enhanced CRV rewards thanks to [locked CRV boost](https://resources.curve.fi/guides/boosting-your-crv-rewards). Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.
```
digraph strategy {
node[shape=none]
rankdir=LR;
node[group=tokens, height=1.35, imagepos="tc", labelloc="b"]
deposit[token="{{token-address}}", label="Deposit"];
curve_pool[token="{{generic-curve-pool-image}}", label="Curve Pool"];
curve_gauge[token="{{curve-gauge-image}}", label="Curve Guage"];
reward[token="0xD533a949740bb3306d119CC777fa900bA034cd52", label="Reward"];
yveCRV[token="0xc5bDdf9843308380375a611c18B50Fb9341f502A", label="yveCRV"];
node[group=descriptions, height=1, labelloc="c"];
pool_desc[label="Earn by providing \nliquidity to Curve"];
{rank = same; pool_desc; curve_pool;}
yveCRV_desc[label="Yearn's Staked CRV \ntokens boost earnings",];
{rank = same; yveCRV_desc; yveCRV;}
reward_desc[label="Rewards are sold \nand redeposited"];
{rank = same; reward_desc; reward;}
subgraph connections {
deposit -> curve_pool;
curve_pool -> curve_gauge;
yveCRV -> curve_gauge
curve_gauge -> reward;
reward -> curve_gauge;
}
}
```