> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enso.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Curve Convex Yield Farming

> Deposit into Curve pools and stake LP tokens in Convex for boosted CRV rewards

export const date_0 = "2025-09-29"

## Deposit ETH into Curve stETH/ETH Pool and Stake in Convex

This use case automates the complete yield farming workflow for Curve's liquid staking pool with Convex rewards.

[**Try this route →**](https://happypath.enso.build?chainId=1\&tokenIn=0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\&tokenOut=0x182B723a58739a9c974cFDB385ceaDb237453c28)

**Route Mechanics:**

* Deposit native ETH into the Curve stETH/ETH liquidity pool
* Receive Curve LP tokens representing your pool share
* Automatically stake the LP tokens in the corresponding Curve Gauge
* Earn both trading fees from the pool and CRV rewards from the gauge

```mermaid theme={null}
flowchart LR
    ETH((ETH)) -->|curve<br/>deposit| LP_TOKEN((stETH/ETH LP))
    LP_TOKEN -->|curve-gauge<br/>deposit| GAUGE_TOKEN((Gauge Token))
```

```typescript theme={null}
const chainId = 1; // Ethereum mainnet
const fromAddress = "0xd8da6bf26964af9d7eed9e03e53415d37aa96045";

// Token addresses
const tokenInEth = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
const lpTokenStethEth = "0x06325440d014e39736583c165c2963ba99faf14e"; // stETH/ETH Curve LP token
const stEthEthPool = "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022"; // stETH/ETH Curve Pool
const stEthGauge = "0x182B723a58739a9c974cFDB385ceaDb237453c28"; // stETH/ETH Curve Gauge

const amountIn = parseUnits("1000", 6); // 1000 USDC

const bundle = await client.getBundleData(
  {
    chainId,
    fromAddress,
    routingStrategy: "delegate",
  },
  [
    {
      // Step 1: Deposit into Curve stETH/ETH pool using standard "deposit" action
      protocol: "curve",
      action: "deposit",
      args: {
        tokenIn: [tokenInEth],
        tokenOut: lpTokenStethEth, // stETH/ETH LP token
        amountIn: [amountIn.toString()],
        primaryAddress: stEthEthPool, // Curve stETH pool address
      },
    },
    {
      // Step 2: Stake LP tokens in Curve Gauge for CRV rewards
      protocol: "curve-gauge",
      action: "deposit",
      args: {
        tokenIn: lpTokenStethEth, // stETH/ETH LP token
        tokenOut: stEthGauge, // stETH/ETH Gauge
        amountIn: {
          useOutputOfCallAt: 0, // Use LP tokens from Curve deposit
        },
        primaryAddress: stEthGauge, // Gauge address
      },
    },
  ]
);

await sendEoa(bundle.tx, bundle.gas);
```

<div className="text-right text-xs gray-200 font-semibold w-full" style={{marginTop: '0'}}>
  <p style={{
        color: "#b2b2b2"  
    }}>Updated {date_0}</p>
</div>
