Start Staking
Step-by-step guide to staking LGM as a delegator
Start Staking
This guide walks you through staking your LGM tokens as a delegator to earn rewards.
Prerequisites
Before starting, ensure you have:
- 1,000+ LGM tokens for minimum stake
- Web3 wallet (MetaMask, WalletConnect, etc.)
- Referral key or direct invite from a validator
Understanding Staking
When you stake as a delegator:
- Your LGM is locked in the ResonanceSystem contract
- You earn rewards proportional to your stake
- Rewards are subject to proximity distribution (87% to uplines)
- You keep 13% of your rewards, minus 10% tax
- Unstaking requires a 25,000 block (~7 hour) lock period
Reward Calculation Example
Your Stake: 5,000 LGM
Validator Total Stake: 100,000 LGM
Epoch Reward to Validator: 100 LGM
Your Share: 100 × (5,000 / 100,000) = 5 LGM
After Proximity (13%): 0.65 LGM
After Tax (90%): ~0.585 LGM per epoch
Daily (~432 epochs): ~253 LGM
Annual: ~92,000 LGM (~1,840% of stake)Actual returns vary based on network conditions, validator performance, and your position in the proximity chain.
Staking Process
Connect Your Wallet
- Go to https://app.fene.network
- Click "Connect Wallet"
- Select your wallet (MetaMask, WalletConnect, etc.)
- Approve the connection
Add Living Mission Network:
Network Name: Living Mission
RPC URL: https://rpc.fene.network
Chain ID: 5881
Currency Symbol: LGM
Explorer: https://explorer.fene.networkGet Whitelisted
Before staking, you need to be whitelisted by a validator.
Option A: Use Referral Key
If you have a referral key from a validator:
- Go to "Join Validator" page
- Enter the referral key
- Click "Use Key"
- Confirm transaction
// Programmatically
const NFT_PASSPORT = "0x0000000000000000000000000000000000001001";
const passport = new ethers.Contract(NFT_PASSPORT, ABI, signer);
const referralKey = "0x..."; // From validator
await passport.useReferralKey(referralKey);Option B: Request Direct Invite
Contact a validator and ask them to whitelist your address directly.
Option C: Use Promo Code
Some validators offer public promo codes:
- Go to validator's page
- Enter promo code
- Click "Apply"
Choose a Validator
Select a validator to stake with. Consider:
| Factor | What to Look For |
|---|---|
| Commission | Lower = more rewards for you (5-10%) |
| Total Stake | Higher = larger share of epoch rewards |
| Uptime | Higher = more consistent rewards |
| Delegators | Your position affects proximity rewards |
| Reputation | Established validators are safer |
View Validators:
const RESONANCE_SYSTEM = "0x0000000000000000000000000000000000001000";
const contract = new ethers.Contract(RESONANCE_SYSTEM, ABI, provider);
const validators = await contract.getActiveValidators();
for (const va of validators) {
const info = await contract.getValidatorInfo(va);
console.log(va, {
status: info.status,
totalStake: ethers.formatEther(info.totalStake),
commission: info.commissionRate / 100 + "%",
delegators: info.stakerCount.toString()
});
}Stake Your LGM
Once whitelisted, stake your tokens:
Using the DApp:
- Navigate to the validator's page
- Enter stake amount (minimum 1,000 LGM)
- Click "Stake"
- Confirm transaction in wallet
Using Contract:
const validatorAddress = "0x...";
const tx = await contract.stakeToValidator(validatorAddress, {
value: ethers.parseEther("1000") // 1,000 LGM
});
await tx.wait();
console.log("Successfully staked!");Your position in the proximity chain is determined by when you stake. Earlier stakers receive proximity rewards from later stakers.
Monitor Your Stake
Track your staking position and rewards:
View Your Info:
const [status, stakeAmount, pendingRewards, joinedAt, stakerIndex] =
await contract.getDelegatorInfo(myAddress, validatorAddress);
console.log({
status: ["NOT_EXIST", "ACTIVE", "UNSTAKING"][status],
stake: ethers.formatEther(stakeAmount),
pending: ethers.formatEther(pendingRewards),
position: stakerIndex.toString()
});Estimate Rewards:
const [pending, afterProximity, afterTax] =
await contract.getEstimatedDelegatorReward(myAddress, validatorAddress);
console.log({
grossPending: ethers.formatEther(pending),
afterProximity: ethers.formatEther(afterProximity), // 13%
netReceive: ethers.formatEther(afterTax) // After 10% tax
});Managing Your Stake
Claim Rewards
Claim your accumulated rewards:
const tx = await contract.claimDelegatorReward(validatorAddress);
const receipt = await tx.wait();
// Parse event for details
const event = receipt.logs.find(
log => log.topics[0] === contract.interface.getEventTopic('DelegatorRewardClaimed')
);
const decoded = contract.interface.parseLog(event);
console.log({
gross: ethers.formatEther(decoded.args.gross),
net: ethers.formatEther(decoded.args.net),
tax: ethers.formatEther(decoded.args.tax)
});When you claim, 87% of your rewards are distributed to the 8 delegators who staked before you (proximity rewards).
Add More Stake
Top up your existing stake:
const tx = await contract.addDelegatorStake(validatorAddress, {
value: ethers.parseEther("500") // Add 500 LGM
});
await tx.wait();Adding stake does NOT change your position in the proximity chain.
Unstake
To withdraw your stake:
// Step 1: Initiate unstake
const tx1 = await contract.unstakeDelegator(validatorAddress);
await tx1.wait();
console.log("Unstake initiated. Lock period: 25,000 blocks (~7 hours)");
// Step 2: Wait for lock period...
// Step 3: Withdraw
const tx2 = await contract.withdrawDelegatorStake(validatorAddress);
await tx2.wait();
console.log("Stake withdrawn!");Warning: Unstaking removes you from the proximity chain. You will:
- Stop earning rewards immediately
- Lose your position (can't get it back)
- Miss proximity rewards from downstream delegators
Exit from Validator
Remove yourself from the whitelist after unstaking:
const passport = new ethers.Contract(NFT_PASSPORT, ABI, signer);
await passport.exitFromValidator(validatorAddress);Proximity Rewards Explained
The proximity system rewards early stakers:
Staking Order: D1 → D2 → D3 → D4 → D5 → D6 → D7 → D8 → D9 (you)
When you claim 100 LGM:
├── D8 receives: 5 LGM (Level 1: 5%)
├── D7 receives: 7 LGM (Level 2: 7%)
├── D6 receives: 8 LGM (Level 3: 8%)
├── D5 receives: 10 LGM (Level 4: 10%)
├── D4 receives: 12 LGM (Level 5: 12%)
├── D3 receives: 13 LGM (Level 6: 13%)
├── D2 receives: 15 LGM (Level 7: 15%)
├── D1 receives: 17 LGM (Level 8: 17%)
└── You receive: 13 LGM (13%)
└── After tax: ~11.7 LGMMaximizing Proximity Rewards
To receive proximity rewards from others:
-
Stake Early: Lower position = receive from more people
-
Stake More: Meet minimum for each level:
- Level 1: 1,000 LGM
- Level 2: 3,000 LGM
- Level 3: 5,000 LGM
- Level 4: 7,000 LGM
- Level 5: 9,000 LGM
- Level 6: 11,000 LGM
- Level 7: 13,000 LGM
- Level 8: 15,000 LGM
-
Stay Active: Don't unstake (removes you from chain)
-
Stake Age: Must be staked for 100+ blocks
Staking Strategies
Conservative
- Stake with established validators
- Diversify across 3-5 validators
- Claim and compound weekly
Growth-Focused
- Stake early with new validators
- Higher stake to qualify for all proximity levels
- Claim frequently to compound
Passive Income
- Set and forget with top validators
- Claim monthly
- Reinvest a portion
Tax Implications
All reward claims are taxed:
| Component | Rate | Destination |
|---|---|---|
| Burn | 9% | Burned (deflationary) |
| Dev Fee | 1% | Development treasury |
| Net | 90% | Your wallet |
Troubleshooting
"Not Whitelisted" Error
You need to be whitelisted before staking:
- Get a referral key from the validator
- Use the key via NFTPassport contract
- Or ask validator for direct invite
Transaction Failing
- Ensure you have enough LGM for stake + gas
- Check you're on the correct network (Chain ID: 5881)
- Verify the validator is active
Rewards Not Showing
- Rewards accumulate each epoch (200 blocks)
- Check
getEstimatedDelegatorReward()for pending - Ensure validator is actively producing blocks
Can't Withdraw
- Must wait 25,000 blocks after unstaking
- Check
getDelegatorInfo()forunstakeBlock - Calculate:
currentBlock - unstakeBlock >= 25000
FAQ
Q: What's the minimum stake? A: 1,000 LGM
Q: How often should I claim? A: Depends on gas costs vs rewards. Generally weekly or when rewards exceed gas significantly.
Q: Can I stake with multiple validators? A: Yes! You can stake with as many validators as you're whitelisted with.
Q: What happens if my validator unstakes? A: You'll stop earning rewards. Consider moving to another validator.
Q: Is my stake safe? A: Your stake is held in the audited ResonanceSystem contract. Only you can withdraw it.