--- 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; } } ```