Staking & Yield
Staking mechanisms, liquid staking, yield strategies, and reward distribution.
Overview
Staking secures networks and earns rewards.
Staking Types
| Type | Description |
|---|---|
| Native | Network validation |
| Liquidity | LP staking |
| Protocol | Governance staking |
| Liquid | Transferable tokens |
Staking Contract
contract Staking {
mapping(address => uint256) public staked;
mapping(address => uint256) public rewards;
uint256 public rewardRate;
event Staked(address user, uint256 amount);
event Withdrawn(address user, uint256 amount);
event RewardsClaimed(address user, uint256 amount);
function stake() public payable {
require(msg.value > 0);
staked[msg.sender] += msg.value;
emit Staked(msg.sender, msg.value);
}
function withdraw(uint256 amount) public {
require(staked[msg.sender] >= amount);
staked[msg.sender] -= amount;
payable(msg.sender).transfer(amount);
emit Withdrawn(msg.sender, amount);
}
function claimRewards() public {
uint256 reward = calculateReward(msg.sender);
rewards[msg.sender] = 0;
payable(msg.sender).transfer(reward);
emit RewardsClaimed(msg.sender, reward);
}
function calculateReward(address user) public view returns (uint256) {
return staked[user] * rewardRate / 100;
}
}
Liquid Staking
class LiquidStaking:
def __init__(self, total_staked):
self.total_staked = total_staked
self.shares = total_staked
self.reward_pool = 0
def deposit(self, amount):
shares = amount * self.shares / self.total_staked
self.total_staked += amount
self.shares += shares
return shares
def withdraw(self, shares):
amount = shares * self.total_staked / self.shares
self.total_staked -= amount
self.shares -= shares
return amount
def get_exchange_rate(self):
return self.total_staked / self.shares
Yield Strategies
| Strategy | Risk | APY |
|---|---|---|
| Staking | Low | 4-8% |
| LP providing | Medium | 10-20% |
| Yield farming | High | 20-100% |
| Leveraged | Very High | 50%+ |
Best Practices
- Diversify — Multiple protocols
- Impermanent loss — Monitor LP positions
- Smart contract risk — Audit verification
- Gas optimization — Batch operations
Practice
Build a liquid staking protocol.