How To Provide Liquidity to the USDC/ETH Pool on Uniswap
Tyler Internet
0xF38c
March 24th, 2022

gm 🐰

Welcome to the final stop of this DeFi journey! To cap off our trek, we’ll be heading to Uniswap, the leading decentralized crypto trading protocol, and providing liquidity to the USDC/ETH pool. This is the final leg of a 4 part journey - if you haven’t yet completed the previous skills you may want to complete those first before continuing on here.

We’ve covered a lot of ground, so let’s take a quick look back at what we’ve accomplished so far. We began our journey by staking ETH on Lido and, in return, we received some stETH. That stETH is bringing us daily staking rewards as long as we continue to hold it. Then, we lent that stETH on Aave. Finally, we used that stETH as collateral to borrow USDC on Aave.

This series of transactions has allowed us to retain ownership of our stETH, continue receiving those staking rewards, and made it possible for us to borrow another liquid asset (USDC) to be further put to work. We will now be using that USDC, along with some ETH, to provide liquidity to a pool and receive a cut of its transaction fees!

What Do I Need?

Before we head to Uniswap, let’s make sure you’ve got your gear in order. In order to provide liquidity to the USDC/ETH pool, you will need:

  • An Ethereum wallet, such as MetaMask or Rainbow
  • ETH in that wallet
  • USDC in that wallet

If you need help any of this, head over to our YouTube Channel. There, you’ll find guides for setting up your wallet and purchasing some ETH!

Liquidity Pools, Trading & Uniswap

Our previous stop saw us lending and borrowing some crypto on Aave. On Uniswap, we’ll be taking this a step further and diving into the world of trading.

In the traditional financial world, trading takes place on a centralized institution’s order books. These order books aggregate buy and sell orders for a certain asset. When a buyer puts in an order to purchase an asset at the same price a seller is looking to sell it at, a trade occurs. The buyer receives the asset, and the seller gets some cash. But order books have their drawbacks and function poorly when the volume of buyers and sellers is low. Thankfully, DeFi forged a better path for trading - liquidity pools.

Liquidity pools, like those found on Uniswap, allow for permissionless peer-to-peer trading without any centralized institutions in between. These liquidity pools are smart contracts containing two or more assets, such as USDC and ETH, and allow users to trade instantly without needing to match with a buyer or seller. Thanks to a complicated algorithm, known as an automated market maker (AMM), liquidity pools maintain a constant 1:1 asset value ratio, ensuring that liquidity is always there for trades to occur. But where does this liquidity come from in the first place? From you!

Anyone can add coins and tokens to a liquidity pool, and those who do so are known as liquidity providers, or LPs. So, why would you want to be an LP? Well, for every trade that takes place in a liquidity pool, the trader pays a fee. The LPs who have contributed to that pool then earn a share of those trading fees proportional to the liquidity they provided. As an LP, you are helping to create the foundation for trading to take place and getting rewarded for it!

LP Risks

As important as liquidity providing is, it is not without its risks. One of the biggest of these risks is known as impermanent loss. At a high level, this is the loss you incur by providing liquidity for certain assets instead of simply holding those same assets in your wallet. A liquidity pool will constantly rebalance itself, ensuring all LPs always have the same value of both assets in terms of USD. So if one of the assets increases in value relative to the other, you will lose some of the stronger performing asset and gain more of the weaker asset. Had you just held the assets instead, you wouldn’t have lost any of the stronger performing asset and you would have seen the upside that came with it rising in price.

That being said, the trading fees you receive for being an LP can often make up for the impermanent loss you incur. To minimize your risk of impermanent loss, try to provide liquidity to pools containing assets that you think will rise or fall at relatively the same rate. Better yet, you can provide liquidity for assets that won’t change in value at all such as stablecoin pairs. As you can probably guess, impermanent loss is a complicated issue and it is not the only risk you take when becoming an LP. To learn more about impermanent loss and other risks, check out the Uniswap FAQ and videos like this.

Still with us? Okay, let’s go provide some liquidity!

The Guide

Step 1

First, head to uniswap.org and click Launch App in the top-right corner.

Step 2

Now in the app, click Connect Wallet, choose your wallet provider, and Connect.

Step 3

Once your wallet has been connected, click Pool at the top. Then, click New Position. This will open the Add Liquidity box.

Step 4

On the left, you will have dropdown menus for the asset pair you wish to provide liquidity to. Choose ETH for one and USDC for the other.

You will now have a handful of parameters to set.

Step 5

Under Deposit Amounts in the bottom-left corner, enter how much of each cryptocurrency you would like to deposit to the pool. Entering an amount for one will automatically generate the equivalent or similar amount for the other.

Step 6

Next, select your fee tier. Each fee tier shows the percentage of traders who opt to use that tier. The more used a fee tier is, the more trade fees it will generate. However, that also means there will likely be more LPs at that tier sharing those fees. Still, choosing the tier with the highest liquidity is always a safe choice.

To successfully complete this RabbitHole task, you must LP into the 0.3% fee tier.

Step 7

Once you have your fee tier set, it’s time to set your price range. This is the range in which you are willing to provide liquidity for the asset pair. While you can choose to provide liquidity across the entire price range, that will earn you a drastically lower return than you would receive by narrowing your range. By choosing a narrower price range, you are choosing to only provide liquidity when the assets are within that range. If ETH were to go outside of your range you would stop receiving trading fees until it falls back into your range.

When choosing your price range, consider the current price of ETH, how much you think it will fluctuate during your position’s lifetime, and how much time you can afford to keep an eye on your position. It’s also important to note that altering your position in the future will require gas fees, so simply moving the price range on a daily basis will probably not make economical sense.

Step 8

Once you have set your deposit amounts, fee tier, and price range, you will need to give Uniswap access to your USDC. Click Approve USDC, and then confirm the transaction in your wallet. There will be a small gas fee associated with this.

Step 9

Now that Uniswap can use your USDC, click Preview. If all of the preview information looks correct, click Add.

Step 10

Finally, confirm this transaction in your wallet. This transaction will require one final gas fee and may take a few minutes to be confirmed. Uniswap will show a Pending icon in the top right corner while you are waiting.

Congratulations!

Once this transaction has been confirmed, you’ll have officially added liquidity to the USDC/ETH pool on Uniswap! Now as other users trade in this pool you will receive a cut of the fees generated — supporting the Uniswap protocol and earning some passive income while you’re at it! AND you’re still receiving staking rewards from the ETH you staked with Lido. *chef’s kiss*

Well, it looks like we’ve reached the summit of our DeFi journey for this season. If you’ve completed all 4 DeFi skills, then you have staked ETH on Lido, lent stETH on Aave, borrowed USDC on Aave, and provided liquidity on Uniswap!

Now that you’ve gotten your feet wet in DeFi, come learn about NFTs and DAOs with us and hop into the RabbitHole community Discord!

Arweave TX
vBDmVPNnn9aqYTPnlvHi-lfb21SoipiQ5NrCCOpfWJU
Ethereum Address
0xF38c7980F7Cd3Ae27745Bc3dFd5F166D042E838f
Content Digest
UXDq2WH0VDAqVNSr9NNYSgU08f7anI6O_UeKlLOmBGo