Skip to content

For Miners

Relevant Source Files

This document provides a comprehensive technical guide for miners participating in the SN106 Bittensor subnet. It covers the complete workflow from bridging Bittensor tokens to Solana, providing concentrated liquidity on Raydium, staking position NFTs, and earning emissions based on position quality and subnet performance.

For information about setting up and operating validators, see For Validators. For system architecture details, see System Architecture.

The SN106 mining process consists of four main stages that convert Bittensor alpha tokens into earning positions on Solana DeFi protocols.

graph TD
    BT["Bittensor Network"] --> BRIDGE["VoidAI Bridge<br/>bridge.voidai.com"]
    ALPHA["Alpha Tokens"] --> BRIDGE
    TAO["TAO Tokens"] --> BRIDGE
    
    BRIDGE --> WALPHA["wAlpha Tokens<br/>Wrapped Alpha"]
    BRIDGE --> WTAO["wTAO Tokens<br/>Wrapped TAO"]
    
    WALPHA --> RAYDIUM["Raydium CLMM<br/>Concentrated Liquidity"]
    WTAO --> RAYDIUM
    
    RAYDIUM --> NFT["Position NFT<br/>Liquidity Position"]
    NFT --> STAKE["SN106 Smart Contract<br/>NFT Staking"]
    
    STAKE --> EMISSIONS["Emissions Calculation<br/>Based on Position Quality"]
    EMISSIONS --> REWARDS["SN106 Token Rewards"]
    
    subgraph "Scoring Factors"
        WIDTH["Position Width<br/>Concentration Bonus"]
        DISTANCE["Distance from Tick<br/>Market Proximity"]
        LIQUIDITY["Liquidity Amount<br/>Capital Contribution"]
    end
    
    EMISSIONS --> WIDTH
    EMISSIONS --> DISTANCE
    EMISSIONS --> LIQUIDITY

Sources: README.md:22-50

Miners must first bridge their Bittensor tokens to Solana using the VoidAI Bridge infrastructure. This process converts native Bittensor tokens into Solana SPL tokens that can be used in DeFi protocols.

graph LR
    subgraph "Bittensor Source"
        BT_ALPHA["Alpha Tokens<br/>Various Subnets"]
        BT_TAO["TAO Tokens<br/>Native Bittensor"]
    end
    
    subgraph "VoidAI Bridge"
        BRIDGE_INTERFACE["Bridge Interface<br/>bridge.voidai.com"]
        BRIDGE_CONTRACT["Bridge Smart Contract<br/>Token Wrapping Logic"]
    end
    
    subgraph "Solana Destination"
        SPL_WALPHA["wAlpha SPL Tokens<br/>Mint Authority"]
        SPL_WTAO["wTAO SPL Tokens<br/>Mint Authority"]
    end
    
    BT_ALPHA --> BRIDGE_INTERFACE
    BT_TAO --> BRIDGE_INTERFACE
    BRIDGE_INTERFACE --> BRIDGE_CONTRACT
    BRIDGE_CONTRACT --> SPL_WALPHA
    BRIDGE_CONTRACT --> SPL_WTAO
  1. Connect Bittensor Wallet: Link your Bittensor wallet containing alpha tokens from various subnets
  2. Connect Solana Wallet: Link your Solana wallet to receive wrapped tokens
  3. Select Tokens: Choose which alpha tokens and TAO amounts to bridge
  4. Execute Bridge: Confirm transaction and wait for cross-chain confirmation
  5. Verify Receipt: Confirm wrapped tokens (wAlpha, wTAO) appear in Solana wallet

Sources: README.md:24-30

After bridging tokens, miners provide concentrated liquidity to Raydium Concentrated Liquidity Market Maker (CLMM) pools. This creates trading pairs between different subnet alpha tokens and TAO.

graph TD
    subgraph "Raydium CLMM System"
        RAYDIUM_INTERFACE["Raydium Interface<br/>raydium.io/clmm"]
        CLMM_PROGRAM["CLMM Program<br/>RAYDIUM_CLMM_PROGRAM_ID"]
        POOL_CREATION["Pool Creation<br/>wAlpha/wTAO Pairs"]
    end
    
    subgraph "Position Configuration"
        PRICE_RANGE["Price Range Selection<br/>Upper/Lower Ticks"]
        LIQUIDITY_AMOUNT["Liquidity Amount<br/>Token Pair Deposits"]
        CONCENTRATION["Concentration Level<br/>Range Width"]
    end
    
    subgraph "Position NFT Output"
        NFT_MINT["Position NFT Mint<br/>Unique Position ID"]
        NFT_METADATA["Position Metadata<br/>Range + Liquidity Data"]
        OWNERSHIP["NFT Ownership<br/>Transferable Asset"]
    end
    
    RAYDIUM_INTERFACE --> CLMM_PROGRAM
    CLMM_PROGRAM --> POOL_CREATION
    
    PRICE_RANGE --> NFT_MINT
    LIQUIDITY_AMOUNT --> NFT_MINT
    CONCENTRATION --> NFT_MINT
    
    NFT_MINT --> NFT_METADATA
    NFT_MINT --> OWNERSHIP
FactorImpact on RewardsOptimal Strategy
Range WidthNarrower ranges = higher concentration bonusTarget 10-20% price range around current market
Market ProximityCloser to current tick = higher scoreMonitor market and adjust positions
Liquidity AmountHigher liquidity = higher base rewardsBalance capital allocation across positions
Subnet PerformanceBetter subnet performance = higher pool allocationResearch subnet fundamentals and performance

Sources: README.md:32-37

The staking process locks position NFTs into the SN106 smart contract, enabling emission calculations and reward distribution.

graph TD
    subgraph "NFT Staking Process"
        NFT_WALLET["Miner Solana Wallet<br/>Position NFT Holder"]
        STAKING_TX["Staking Transaction<br/>transferChecked + stake"]
        SN106_CONTRACT["SN106 Smart Contract<br/>SN106_SVM_PROGRAM_ID"]
    end
    
    subgraph "Contract State Management"
        POSITION_REGISTRY["Position Registry<br/>Staked NFT Database"]
        MINER_MAPPING["Miner Mapping<br/>Hotkey to Positions"]
        EMISSION_TRACKING["Emission Tracking<br/>Reward Accumulation"]
    end
    
    subgraph "Fee Management"
        TRADING_FEES["Trading Fees<br/>From LP Position"]
        FEE_COLLECTION["Fee Collection<br/>To SN106 Treasury"]
        TREASURY["SN106 Treasury<br/>Accumulated Fees"]
    end
    
    NFT_WALLET --> STAKING_TX
    STAKING_TX --> SN106_CONTRACT
    SN106_CONTRACT --> POSITION_REGISTRY
    SN106_CONTRACT --> MINER_MAPPING
    SN106_CONTRACT --> EMISSION_TRACKING
    
    TRADING_FEES --> FEE_COLLECTION
    FEE_COLLECTION --> TREASURY
  1. Hotkey Registration: Associate Solana wallet with Bittensor hotkey
  2. NFT Approval: Grant SN106 contract authority over position NFT
  3. Staking Transaction: Execute stake operation with gas fees
  4. Position Verification: Confirm successful staking in contract state

Sources: README.md:39-46 , README.md:49

The SN106 system evaluates staked positions using a multi-factor scoring algorithm that determines emission allocation.

graph TD
    subgraph "Data Collection Phase"
        POSITION_DATA["Position NFT Data<br/>Tick Range + Liquidity"]
        CURRENT_TICK["Current Tick Data<br/>Market Price State"]
        SUBNET_ALPHA["Subnet Alpha Prices<br/>Performance Metrics"]
    end
    
    subgraph "Scoring Components"
        WIDTH_SCORE["Width Score<br/>1 / sqrt(tickUpper - tickLower)"]
        DISTANCE_SCORE["Distance Score<br/>Proximity to Current Tick"]
        LIQUIDITY_SCORE["Liquidity Score<br/>Normalized Amount"]
    end
    
    subgraph "Aggregation Logic"
        NFT_SCORE["Individual NFT Score<br/>Combined Components"]
        POOL_COMPETITION["Pool-Level Competition<br/>NFTs Within Same Pool"]
        MINER_TOTAL["Miner Total Score<br/>Sum of All NFT Scores"]
    end
    
    subgraph "Emission Distribution"
        POOL_WEIGHTS["Pool Weight Allocation<br/>Based on Subnet Performance"]
        MINER_WEIGHTS["Miner Weight Calculation<br/>Score / Pool Total"]
        FINAL_EMISSIONS["Final Emission Amount<br/>Pool Weight * Miner Weight"]
    end
    
    POSITION_DATA --> WIDTH_SCORE
    CURRENT_TICK --> DISTANCE_SCORE
    POSITION_DATA --> LIQUIDITY_SCORE
    
    WIDTH_SCORE --> NFT_SCORE
    DISTANCE_SCORE --> NFT_SCORE
    LIQUIDITY_SCORE --> NFT_SCORE
    
    NFT_SCORE --> POOL_COMPETITION
    POOL_COMPETITION --> MINER_TOTAL
    
    SUBNET_ALPHA --> POOL_WEIGHTS
    MINER_TOTAL --> MINER_WEIGHTS
    POOL_WEIGHTS --> FINAL_EMISSIONS
    MINER_WEIGHTS --> FINAL_EMISSIONS
ComponentFormulaPurpose
Width Score1 / sqrt(tickUpper - tickLower)Rewards concentrated positions
Distance Scoremax(0, 1 - distance/maxDistance)Rewards market proximity
Liquidity Scoreliquidity / maxLiquidityRewards capital contribution
Pool WeightBased on subnet alpha performanceDirects rewards to performing subnets

Sources: README.md:41-45

Miners should actively monitor their positions to maximize emission rewards and respond to market changes.

graph LR
    subgraph "Monitoring Tools"
        RAYDIUM_UI["Raydium Interface<br/>Position Management"]
        SN106_ANALYTICS["SN106 Analytics<br/>Emission Tracking"]
        MARKET_DATA["Market Data<br/>Price + Volume"]
    end
    
    subgraph "Optimization Actions"
        REBALANCING["Position Rebalancing<br/>Adjust Price Ranges"]
        MIGRATION["Pool Migration<br/>Switch to Better Subnets"]
        LIQUIDITY_MGMT["Liquidity Management<br/>Add/Remove Capital"]
    end
    
    subgraph "Performance Metrics"
        EMISSION_RATE["Emission Rate<br/>SN106/hour"]
        TRADING_FEES["Trading Fee APY<br/>LP Fee Income"]
        TOTAL_RETURN["Total Return<br/>Emissions + Fees"]
    end
    
    RAYDIUM_UI --> REBALANCING
    SN106_ANALYTICS --> MIGRATION
    MARKET_DATA --> LIQUIDITY_MGMT
    
    REBALANCING --> EMISSION_RATE
    MIGRATION --> TRADING_FEES
    LIQUIDITY_MGMT --> TOTAL_RETURN
  1. Position Score Rank: Relative ranking within pool
  2. Emission Rate: SN106 tokens earned per time period
  3. Trading Fee Yield: Income from providing liquidity
  4. In-Range Time: Percentage of time position is active
  5. Subnet Alpha Performance: Performance of chosen subnet tokens

Sources: README.md:162-167

Risk TypeDescriptionMitigation Strategy
Impermanent LossLoss from price divergence between paired tokensUse correlated token pairs, monitor rebalancing
Range RiskPosition going out of range and earning no feesSet wider ranges, active management
Smart Contract RiskSN106 contract vulnerabilitiesAudit contract code, start with small positions
Bridge RiskVoidAI bridge failures or delaysDiversify across multiple bridge providers

Sources: README.md:168