Bird
Raised Fist0
Blockchain / Solidityprogramming~20 mins

Yield farming concepts in Blockchain / Solidity - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Yield Farming Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Yield Farming Rewards

In yield farming, users provide liquidity to a pool and earn rewards. Which of the following best describes how rewards are typically calculated?

ARewards are randomly assigned to users each day.
BRewards are proportional to the amount of liquidity a user provides relative to the total pool.
CRewards depend only on the time a user has held tokens, not the amount provided.
DRewards are fixed and distributed equally regardless of the amount provided.
Attempts:
2 left
💡 Hint

Think about fairness in sharing rewards based on contribution size.

Predict Output
intermediate
1:30remaining
Calculate User Share in a Liquidity Pool

Given the following Python code that calculates a user's share percentage in a liquidity pool, what is the output?

Blockchain / Solidity
total_liquidity = 1000
user_liquidity = 250
user_share = (user_liquidity / total_liquidity) * 100
print(f"User share: {user_share:.1f}%")
AUser share: 250.0%
BUser share: 2.5%
CUser share: 0.25%
DUser share: 25.0%
Attempts:
2 left
💡 Hint

Divide user liquidity by total liquidity and multiply by 100 to get percentage.

Predict Output
advanced
1:30remaining
Yield Farming Reward Calculation with Variable Rates

Consider this Python function that calculates rewards based on liquidity and a variable reward rate. What is the output when calling calculate_rewards(500, 0.05)?

Blockchain / Solidity
def calculate_rewards(liquidity, reward_rate):
    return liquidity * reward_rate

print(calculate_rewards(500, 0.05))
A500.05
B10.0
C25.0
D0.025
Attempts:
2 left
💡 Hint

Multiply liquidity by reward rate to get rewards.

🔧 Debug
advanced
2:00remaining
Identify the Error in Reward Distribution Code

What error will this Python code produce when run?

Blockchain / Solidity
rate = 0.1
rewards = {user: liquidity * rate for user, liquidity in [('Alice', 100), ('Bob', 200)]}
print(rewards)
A{'Alice': 10.0, 'Bob': 20.0}
BTypeError due to wrong multiplication
CNameError because 'rate' is used before assignment
DSyntaxError in dictionary comprehension
Attempts:
2 left
💡 Hint

Check the order of variable definitions and usage.

🧠 Conceptual
expert
2:30remaining
Risks in Yield Farming Strategies

Which of the following is the most significant risk unique to yield farming compared to traditional savings?

ASmart contract vulnerabilities causing loss of funds
BInflation risk reducing the value of rewards
CInterest rate changes by central banks
DBank insolvency leading to loss of deposits
Attempts:
2 left
💡 Hint

Think about what can go wrong specifically in blockchain-based yield farming.

Practice

(1/5)
1. What is the main purpose of yield farming in blockchain?
easy
A. To trade cryptocurrencies on exchanges
B. To earn rewards by staking cryptocurrency in pools
C. To mine new cryptocurrency coins
D. To create new blockchain networks

Solution

  1. Step 1: Understand yield farming basics

    Yield farming involves staking crypto assets to earn rewards.
  2. Step 2: Compare options to yield farming

    Mining, trading, and creating blockchains are different activities.
  3. Final Answer:

    To earn rewards by staking cryptocurrency in pools -> Option B
  4. Quick Check:

    Yield farming = earning rewards by staking [OK]
Hint: Yield farming means staking crypto to earn rewards [OK]
Common Mistakes:
  • Confusing yield farming with mining
  • Thinking yield farming is trading
  • Believing yield farming creates new blockchains
2. Which of the following is the correct way to describe a yield farming pool?
easy
A. A software to trade cryptocurrencies instantly
B. A wallet to store cryptocurrencies securely
C. A blockchain that creates new tokens automatically
D. A place where users stake crypto to earn rewards

Solution

  1. Step 1: Define a yield farming pool

    A pool is where users stake crypto to earn rewards.
  2. Step 2: Eliminate unrelated options

    Wallets store crypto, blockchains create tokens, and software trades crypto.
  3. Final Answer:

    A place where users stake crypto to earn rewards -> Option D
  4. Quick Check:

    Pool = staking place for rewards [OK]
Hint: Pools are for staking crypto to earn rewards [OK]
Common Mistakes:
  • Mixing pools with wallets
  • Thinking pools create tokens
  • Confusing pools with trading software
3. Consider this simplified code snippet for calculating yield farming rewards:
def calculate_rewards(staked_amount, reward_rate):
    return staked_amount * reward_rate

print(calculate_rewards(1000, 0.05))
What is the output of this code?
medium
A. 50.0
B. 5
C. 1000
D. 0.05

Solution

  1. Step 1: Understand the function calculation

    The function multiplies staked_amount (1000) by reward_rate (0.05).
  2. Step 2: Calculate the multiplication

    1000 * 0.05 = 50.0
  3. Final Answer:

    50.0 -> Option A
  4. Quick Check:

    1000 * 0.05 = 50 [OK]
Hint: Multiply staked amount by reward rate [OK]
Common Mistakes:
  • Confusing multiplication with addition
  • Using reward rate as output directly
  • Mixing up staked amount and reward rate
4. Find the error in this yield farming reward calculation code:
def calculate_rewards(staked_amount, reward_rate):
    rewards = staked_amount + reward_rate
    return rewards

print(calculate_rewards(1000, 0.05))
medium
A. Incorrect function name
B. Missing return statement
C. Using addition instead of multiplication for rewards
D. Wrong print syntax

Solution

  1. Step 1: Review the reward calculation logic

    The code adds staked_amount and reward_rate instead of multiplying.
  2. Step 2: Understand correct reward formula

    Rewards should be staked_amount * reward_rate, not addition.
  3. Final Answer:

    Using addition instead of multiplication for rewards -> Option C
  4. Quick Check:

    Rewards = stake * rate, not stake + rate [OK]
Hint: Rewards = stake times rate, not plus rate [OK]
Common Mistakes:
  • Adding instead of multiplying rewards
  • Forgetting to return value
  • Misnaming functions
  • Incorrect print usage
5. You want to calculate total rewards from multiple pools with different stakes and rates:
pools = {"PoolA": (1000, 0.05), "PoolB": (2000, 0.03), "PoolC": (1500, 0.04)}
total_rewards = sum(stake * rate for stake, rate in pools.values())
print(total_rewards)
What is the output of this code?
hard
A. 170.0
B. 0.12
C. 4500
D. SyntaxError

Solution

  1. Step 1: Calculate rewards for each pool

    PoolA: 1000*0.05=50, PoolB: 2000*0.03=60, PoolC: 1500*0.04=60
  2. Step 2: Sum all rewards

    Total = 50 + 60 + 60 = 170
  3. Step 3: Verify code output

    The code prints the sum of rewards, which is 170.0 (float)
  4. Final Answer:

    170.0 -> Option A
  5. Quick Check:

    Sum of all pool rewards = 170.0 [OK]
Hint: Sum stake * rate for each pool to get total rewards [OK]
Common Mistakes:
  • Adding rates instead of multiplying
  • Forgetting to sum all pools
  • Expecting integer output instead of float
  • Misreading dictionary values