Bird
Raised Fist0
Blockchain / Solidityprogramming~5 mins

Liquidity pools in Blockchain / Solidity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a liquidity pool in blockchain?
A liquidity pool is a collection of tokens locked in a smart contract that allows users to trade assets directly without needing a traditional buyer or seller. It helps keep trading smooth and prices stable.
Click to reveal answer
beginner
How do liquidity providers earn rewards?
Liquidity providers earn rewards by supplying tokens to the pool. They get a share of the trading fees generated when others swap tokens using the pool.
Click to reveal answer
intermediate
What is impermanent loss in liquidity pools?
Impermanent loss happens when the price of tokens in the pool changes compared to when they were deposited. It can cause a loss compared to just holding the tokens outside the pool.
Click to reveal answer
intermediate
Explain the role of Automated Market Makers (AMMs) in liquidity pools.
AMMs are smart contracts that use mathematical formulas to price assets in liquidity pools. They allow users to trade tokens automatically without needing an order book or a middleman.
Click to reveal answer
beginner
What happens when you add liquidity to a pool?
When you add liquidity, you deposit tokens into the pool and receive liquidity tokens in return. These tokens represent your share of the pool and can be redeemed later.
Click to reveal answer
What do liquidity providers receive in exchange for their tokens?
AInterest payments from the blockchain
BVoting rights in the blockchain
CNew tokens minted by the protocol
DLiquidity tokens representing their share
What is the main purpose of a liquidity pool?
ATo create new blockchains
BTo mine new tokens automatically
CTo allow direct token swaps without a middleman
DTo store user passwords securely
Which risk is associated with providing liquidity?
ANetwork congestion
BImpermanent loss
CToken minting failure
DSmart contract hacking only
How do Automated Market Makers (AMMs) set prices?
AUsing mathematical formulas based on token amounts
BBy following centralized exchange prices
CBy user voting
DRandomly
What do you get when you remove liquidity from a pool?
AYour original tokens plus fees earned
BOnly the fees earned
CNew tokens minted by the pool
DNothing, liquidity cannot be removed
Describe how liquidity pools work and why they are important in decentralized finance.
Think about how people trade tokens without needing a buyer or seller directly.
You got /4 concepts.
    Explain impermanent loss and how it affects liquidity providers.
    Consider what happens if token prices move after you add them to the pool.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a liquidity pool in blockchain?
      easy
      A. To allow users to trade tokens directly without a middleman
      B. To create new tokens automatically
      C. To store user passwords securely
      D. To mine new blocks faster

      Solution

      1. Step 1: Understand liquidity pool function

        Liquidity pools let users trade tokens directly without needing a middleman like an exchange.
      2. Step 2: Compare options to definition

        Only To allow users to trade tokens directly without a middleman describes this function correctly; others describe unrelated blockchain features.
      3. Final Answer:

        To allow users to trade tokens directly without a middleman -> Option A
      4. Quick Check:

        Liquidity pools enable direct token trading = B [OK]
      Hint: Liquidity pools remove middlemen in token trading [OK]
      Common Mistakes:
      • Confusing liquidity pools with token creation
      • Thinking liquidity pools mine blocks
      • Assuming liquidity pools store passwords
      2. Which of the following is the correct way to represent a liquidity pool share in code?
      easy
      A. shares = {'user1': 100, 'user2': 50}
      B. shares = ['user1', 'user2', 100, 50]
      C. shares = (100, 50, 'user1', 'user2')
      D. shares = 'user1:100, user2:50'

      Solution

      1. Step 1: Identify data structure for mapping users to shares

        A dictionary (key-value pairs) is best to map user names to their share amounts.
      2. Step 2: Check options for dictionary syntax

        shares = {'user1': 100, 'user2': 50} uses a dictionary with user keys and numeric values, which is correct syntax and logic.
      3. Final Answer:

        shares = {'user1': 100, 'user2': 50} -> Option A
      4. Quick Check:

        Use dictionary for user-share mapping = A [OK]
      Hint: Use dictionaries to map users to their shares [OK]
      Common Mistakes:
      • Using lists instead of dictionaries for key-value pairs
      • Incorrect tuple ordering for mapping
      • Using string instead of structured data
      3. Given this Python code simulating a liquidity pool token ratio update:
      pool = {'tokenA': 1000, 'tokenB': 2000}
      new_tokenA = 100
      new_tokenB = 200
      pool['tokenA'] += new_tokenA
      pool['tokenB'] += new_tokenB
      price_ratio = pool['tokenB'] / pool['tokenA']
      print(round(price_ratio, 2))

      What is the printed output?
      medium
      A. 1.90
      B. 2.20
      C. 2.0
      D. 3.00

      Solution

      1. Step 1: Calculate updated token amounts in pool

        tokenA = 1000 + 100 = 1100; tokenB = 2000 + 200 = 2200
      2. Step 2: Compute price ratio and round

        price_ratio = 2200 / 1100 = 2.0; rounded to 2 decimals is 2.0
      3. Final Answer:

        2.0 -> Option C
      4. Quick Check:

        2200 ÷ 1100 = 2.0 [OK]
      Hint: Add tokens first, then divide for ratio [OK]
      Common Mistakes:
      • Dividing before adding new tokens
      • Rounding incorrectly
      • Mixing tokenA and tokenB values
      4. This code snippet tries to update a liquidity pool but has a bug:
      pool = {'tokenA': 500, 'tokenB': 1000}
      new_tokenA = 50
      new_tokenB = 100
      pool['tokenA'] =+ new_tokenA
      pool['tokenB'] =+ new_tokenB
      print(pool)

      What is the bug?
      medium
      A. The dictionary keys 'tokenA' and 'tokenB' are misspelled
      B. The operator '=+' is incorrect; should be '+='
      C. The print statement is missing parentheses
      D. The new_token variables should be strings, not integers

      Solution

      1. Step 1: Identify operator usage in assignment

        The code uses '=+' which is not a valid operator; it assigns positive new_tokenA instead of adding.
      2. Step 2: Correct operator for addition assignment

        The correct operator is '+=' to add new_tokenA to pool['tokenA'] and similarly for tokenB.
      3. Final Answer:

        The operator '=+' is incorrect; should be '+=' -> Option B
      4. Quick Check:

        Use '+=' to add values in place [OK]
      Hint: Use '+=' to add and assign in one step [OK]
      Common Mistakes:
      • Confusing '=+' with '+=' operator
      • Assuming print needs no parentheses in Python 3
      • Thinking keys are misspelled
      5. You want to write a function that calculates each user's share percentage in a liquidity pool given a dictionary of shares like {'Alice': 300, 'Bob': 700}. Which code correctly returns a new dictionary with user names and their share percentages rounded to 2 decimals?
      hard
      A. def calc_shares(shares): total = len(shares) return {user: amount / total for user, amount in shares.items()}
      B. def calc_shares(shares): total = sum(shares.keys()) return {user: amount / total for user, amount in shares.items()}
      C. def calc_shares(shares): total = sum(shares.values()) return [round(amount / total * 100, 2) for amount in shares.values()]
      D. def calc_shares(shares): total = sum(shares.values()) return {user: round(amount / total * 100, 2) for user, amount in shares.items()}

      Solution

      1. Step 1: Calculate total shares correctly

        Sum the values of the shares dictionary to get total tokens contributed.
      2. Step 2: Compute percentage per user and round

        Use dictionary comprehension to divide each user's amount by total, multiply by 100, and round to 2 decimals.
      3. Final Answer:

        def calc_shares(shares): total = sum(shares.values()) return {user: round(amount / total * 100, 2) for user, amount in shares.items()} -> Option D
      4. Quick Check:

        Sum values, divide each, round = correct share % [OK]
      Hint: Sum values, then divide each share by total and round [OK]
      Common Mistakes:
      • Summing keys instead of values
      • Returning list instead of dictionary
      • Using length instead of sum for total