Skip to main content

Introduction

Becoming a validator on Fenine Network allows you to participate in consensus, earn block rewards, and receive commission from delegators. Unlike traditional PoS chains, Fenine uses contract-layer validators — you manage your validator entirely through smart contracts.
Requirements:
  • Minimum Stake: 10,000 FEN
  • Technical Skills: Basic blockchain/smart contract understanding
  • Hardware: Optional (only needed for RPC/monitoring)
  • Uptime: Maintain >95% to avoid jailing

How Fenine Validators Work

Unique Architecture: Fenine validators are managed at the contract layer, not the node layer.You do NOT need to:
  • Run special validator node software
  • Configure validator keys
  • Manage validator infrastructure
Block production and signing happen automatically through the consensus protocol once you’re registered.

What You DO Need

Smart Contract Registration

Register via FenineSystem contract

10,000 FEN Stake

Lock minimum stake as collateral

Wallet Security

Secure validator address (hardware wallet recommended)

Monitoring (Optional)

Track performance and rewards

Prerequisites

Acquire 10,000+ FEN

Purchase Options:
  1. Centralized Exchanges (CEX):
  2. Decentralized Exchanges (DEX):
    • Uniswap (if bridged to Ethereum)
    • FenineSwap (native DEX)
  3. Bridge from Other Chains:
Always withdraw to your own wallet, not exchange wallet. You need full control for staking.

Registration Process

1

Prepare Validator Address

Use a secure wallet for your validator:
# If using hardware wallet (recommended)
# Connect Ledger/Trezor to MetaMask

# Note your validator address
Validator Address: 0xYourValidatorAddress...
This address will receive all validator rewards. Secure it properly!
2

Approve FEN Transfer

First, approve the FenineSystem contract to transfer your FEN:Via stake.fene.app (easiest):
  1. Go to stake.fene.app
  2. Connect wallet
  3. Click “Become Validator”
  4. Approve token spending (gas: ~50,000)
Via Contract (advanced):
// FEN Token: 0x... (get from explorer)
// FenineSystem: 0x0000000000000000000000000000000000001000

FEN.approve(0x0000000000000000000000000000000000001000, 10000 * 10**18)
Wait for transaction confirmation.
3

Register as Validator

Call registerValidator with your parameters:Parameters:
  • commission: 1-100 (e.g., 5 = 5% commission)
  • description: Your validator name/description
Via stake.fene.app:
  1. Enter commission rate (suggested: 5-10%)
  2. Enter validator description
  3. Click “Register Validator”
  4. Confirm transaction (gas: ~200,000)
Via Contract:
// Using ethers.js
const fenineSystem = new ethers.Contract(
  "0x0000000000000000000000000000000000001000",
  FENINE_SYSTEM_ABI,
  signer
);

const tx = await fenineSystem.registerValidator(
  5,  // 5% commission
  "MyValidator - Reliable & Secure"
);

await tx.wait();
console.log("Registered! Waiting for next epoch...");
Registration takes effect at the next epoch (within ~10 minutes).
4

Verify Registration

Check your validator status:Via Web Interface:Via RPC:
curl -X POST https://rpc.fene.app \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_getValidatorInfo",
    "params": ["0xYourValidatorAddress"],
    "id": 1
  }'
Expected response:
{
  "result": {
    "status": "active",
    "stake": "10000000000000000000000",
    "commission": 5,
    "jailCount": 0,
    "lastRewardEpoch": 12345
  }
}
5

Monitor Your Validator

Track performance and rewards:Dashboard: stake.fene.app/my-validatorKey Metrics:
  • Uptime percentage
  • Blocks produced
  • Rewards earned
  • Delegator count
  • Total delegated stake
Set up alerts for:
  • Jailing events
  • Commission changes
  • Large delegations

Validator Operations

Check Validator Status

// Using ethers.js
const info = await fenineSystem.getValidatorInfo(validatorAddress);

console.log("Status:", info.status);  // 0=Pending, 1=Active, 2=Jailed, 3=Unbonding
console.log("Stake:", ethers.formatEther(info.stake));
console.log("Commission:", info.commission, "%");
console.log("Delegated:", ethers.formatEther(info.totalDelegated));

Update Commission Rate

// Change commission (1-100%)
const tx = await fenineSystem.updateValidatorCommission(10);  // 10%
await tx.wait();

console.log("Commission updated to 10%");
Commission changes take effect in the next epoch. Frequent changes may frustrate delegators.

Claim Rewards

// Claim accumulated rewards (10% tax applies)
const tx = await fenineSystem.claimValidatorRewards();
await tx.wait();

// Check balance
const rewards = await fenineSystem.getValidatorRewards(validatorAddress);
console.log("Claimable:", ethers.formatEther(rewards), "FEN");
Tax Information:
  • 10% tax on claimed rewards
  • Tax goes to treasury (development fund)

Increase Stake

// Add more stake (no maximum)
const amount = ethers.parseEther("5000");  // Add 5,000 FEN

await fenToken.approve(fenineSystemAddress, amount);
await fenineSystem.addStake(amount);

console.log("Stake increased by 5,000 FEN");
Higher stake = higher rewards share.

Unregister Validator

// Exit validator set (21-day unbonding period)
const tx = await fenineSystem.unregisterValidator();
await tx.wait();

console.log("Unbonding started. Withdrawal available in 21 days.");

// After 21 days:
await fenineSystem.withdrawStake();
During unbonding:
  • Stop earning rewards immediately
  • Delegators must redelegate
  • Cannot cancel unbonding

Validator Economics

Revenue Streams

Base Emission: 3.5 FEN per blockYour share depends on your stake proportion:Rtextbase=fracStextvalidatorStexttotaltimesEtextepochR_{\\text{base}} = \\frac{S_{\\text{validator}}}{S_{\\text{total}}} \\times E_{\\text{epoch}}Example:
  • Your stake: 10,000 FEN
  • Total network: 10,000,000 FEN
  • Epoch emission: 700 FEN
R=frac10,00010,000,000times700=0.7textFEN/epochR = \\frac{10,000}{10,000,000} \\times 700 = 0.7 \\text{ FEN/epoch}Daily: 0.7 × 144 epochs = 100.8 FENAnnual: ~36,792 FEN ≈ 368% APY on 10K stake alone!

Example Monthly Earnings

Scenario: Small validator
  • Your stake: 10,000 FEN
  • Delegated: 50,000 FEN
  • Commission: 5%
  • Referral network: 10 people (Level 1-2)
  • Network total: 5,000,000 FEN
Calculations:
Base rewards:
  (10,000 / 5,000,000) × 700 × 144 × 30 = 6,048 FEN

Commission rewards:
  (50,000 / 5,000,000) × 700 × 144 × 30 × 0.05 = 1,512 FEN

Proximity rewards (estimated):
  10 referrals earning avg 200 FEN/month
  Level 1 (5 people): 5 × 200 × 0.07 = 70 FEN
  Level 2 (5 people): 5 × 200 × 0.05 = 50 FEN
  Total proximity: 120 FEN

Priority fees (avg):
  ~0.01 FEN/block × 28,800 blocks/day × 30 = 8.64 FEN

──────────────────────────────────────────
TOTAL: 7,688.64 FEN/month

APY on 10K stake: (7,688.64 × 12 / 10,000) × 100 = 922% APY!
APY decreases as network grows (more competition for rewards), but remains highly profitable for early validators.

Slashing & Penalties

Slashing Conditions

Validators can lose stake for these violations:
OffensePenaltyAuto-JailDescription
Double-Sign-5% stakeYesSign two different blocks at same height
Invalid Block-1% stakeYesPropose block that fails validation
DowntimeJail onlyYes<95% uptime over 200 blocks
CensorshipWarning → JailAfter 3 warningsConsistently ignore valid transactions

Jailing

What is Jailing?
  • Temporary removal from active validator set
  • Stop earning rewards
  • Keep your stake (no loss)
  • Can manually exit or wait for unjail
How to Get Unjailed:
// Manual unjail (if eligible)
await fenineSystem.unjailValidator();

// Or exit and re-register
await fenineSystem.unregisterValidator();
// Wait 21 days, withdraw, then re-register
Unjail Conditions:
  • Waited at least 1 epoch (10 minutes)
  • Fixed underlying issue
  • No active slashing penalties

Avoiding Slashing

Best Practices:
  • ✅ Keep validator key secure (never share)
  • ✅ Don’t run validator on multiple machines
  • ✅ Monitor uptime regularly
  • ✅ Have backup monitoring in place
  • ✅ React quickly to jailing events
  • ✅ Keep sufficient FEN balance for gas

Running a Full Node (Optional)

While not required for validation, running a node provides:
  • Independent RPC access
  • Network monitoring
  • Block validation
  • Decentralization support

Quick Node Setup

# Download fene-geth
wget https://github.com/fenines-network/fene-geth/releases/download/v1.0.0/fene-geth-linux-amd64.tar.gz

# Extract and install
tar -xzf fene-geth-linux-amd64.tar.gz
sudo mv fene-geth /usr/local/bin/

# Create data directory
sudo mkdir -p /var/lib/fenine

# Download genesis
wget https://raw.githubusercontent.com/fenines-network/genesis/main/mainnet.json -O /var/lib/fenine/genesis.json

# Initialize
fene-geth init /var/lib/fenine/genesis.json --datadir /var/lib/fenine

# Run node
fene-geth --datadir /var/lib/fenine --http --http.addr 0.0.0.0 --http.api eth,net,web3,fenine
See Non-Validator Node Setup for complete guide.

Delegator Management

Attract Delegators

Strategies:
  1. Competitive Commission: 5-10% is typical
  2. High Uptime: Aim for >99%
  3. Clear Communication: Website, Twitter, Discord
  4. Security Transparency: Hardware wallet, audits
  5. Referral Program: Share proximity rewards

Monitor Delegations

// Get all delegators
const delegators = await fenineSystem.getValidatorDelegators(validatorAddress);

console.log("Total delegators:", delegators.length);

// Get delegation details
for (const delegator of delegators) {
  const amount = await fenineSystem.getDelegation(delegator, validatorAddress);
  console.log(`${delegator}: ${ethers.formatEther(amount)} FEN`);
}

Communicate with Delegators

Discord Server

Create dedicated validator channel

Twitter/X

Regular updates and announcements

Website

Validator profile and statistics

Email List

Important notifications

Validator Dashboard

Key Metrics to Track

  • Uptime: Target >99%
  • Blocks Produced: Should match expected
  • Missed Blocks: Investigate if >1%
  • Jailing Events: Should be 0
  • Slashing Events: Should be 0
Monitoring Tools:

Troubleshooting

Common causes:
  • Insufficient FEN balance for gas
  • Didn’t approve token transfer first
  • Already registered as validator
  • Commission rate out of range (1-100)
Solution:
// Check if already registered
const info = await fenineSystem.getValidatorInfo(yourAddress);
console.log("Status:", info.status);

// If status > 0, you're already registered
Check:
  1. Registration confirmed (check on explorer)
  2. Waited for next epoch (10 minutes)
  3. Status is “Active” (not Pending/Jailed)
  4. Sufficient stake (10,000+ FEN)
Verify:
curl -X POST https://rpc.fene.app \
  -d '{"jsonrpc":"2.0","method":"eth_getValidatorInfo","params":["0xYourAddress"],"id":1}'
Reasons:
  • Downtime (even if not your fault)
  • Network issues
  • Double-signing (if key compromised)
Recovery:
  1. Wait 1 epoch (10 minutes)
  2. Call unjailValidator()
  3. Monitor for recurring jails
  4. If persistent, check security
Check:
  • Network total stake (increased competition)
  • Your commission rate (too high?)
  • Missed blocks (uptime issues)
  • Proximity network activity
Compare:
const totalStake = await fenineSystem.getTotalStake();
const myShare = yourStake / totalStake;
console.log("Your network share:", (myShare * 100).toFixed(4), "%");

Next Steps

Become a Delegator

Also delegate to other validators

Proximity Rewards

Build your referral network

FenineSystem API

Complete contract reference

Monitoring Setup

Track validator performance
Validator Support:Share your validator address in Discord to get verified badge!