Staking Program
Understanding how the Inference.net staking protocol works
The Inference.net staking program is a Solana-based protocol that manages stake delegation, reward distribution, and economic incentives for GPU operators and token holders. This page explains the core concepts and mechanics of how the program operates.
For operator or delegator guides, see Operator Guide or Delegator Guide.
The Inference.net Staking Protocol is being tested on Solana Devnet with test tokens. These tokens have no monetary value and should not be used for real-world transactions or bought or sold by anyone.
Purpose
The purpose of the Inference staking program to ensure honesty network operation for the distributed GPU cluster which comprises Inference.net. This is accomplished by establishing robust economic incentives for operators to ensure they are aligned with the network. Specifically:
- Inference jobs are routed to operators based on their stake weight, incentivizing operators to maintain a high stake in the network
- Operators may share rewards with delegators, incentivizing non GPU-owning token holders to stake in the network
- Operators may be halted or slashed for any network or protocol violations, incentivizing operators to maintain network integrity and honest operation
Core Components
Operator Pools
Operator pools are the fundamental unit of the staking system. Each GPU operator creates a pool that:
- Manages their self-stake and delegated tokens
- Tracks performance metrics and reward distribution
- Sets economic parameters like commission rates
- Receives stake-weighted job allocations
Operators must maintain a specific minimum stake of their pool’s total stake to ensure network economic security.
Staking Records
Every participant (operators and delegators) has a staking record for each pool they stake in. These records track:
- Share ownership in the pool
- Unstaking amounts and cooldown timers
- The relationship between the staker and the pool
Pool Overview
A singleton account that manages global protocol settings:
- Minimum operator stake requirements
- Unstaking cooldown periods
- Halt statuses for security
- Epoch and reward management
- Authority controls for administration
Understanding Pool Shares
Inference.net uses a share-based accounting system to fairly distribute rewards. When you stake tokens, you receive shares that represent your proportion of the pool.
How Shares Work
When you stake tokens to a pool, you don’t just hold tokens - you receive shares that represent your ownership percentage of the pool. This system allows rewards to be distributed fairly without complex calculations for each delegator.
The key formulas:
- When staking:
shares = (your tokens / total pool tokens) × total shares
- When unstaking:
tokens = (your shares / total shares) × total pool tokens
Why Share-Based Accounting?
The share system enables several critical features:
-
Automatic Reward Distribution: When rewards are added to a pool, they increase the total token amount without creating new shares. This automatically increases the value of existing shares proportionally.
-
Fair Compounding: All participants benefit from reward compounding without requiring individual claim transactions.
-
Efficient On-Chain Operations: The protocol can handle thousands of delegators without expensive per-user calculations.
Precision and Rounding
Due to how share calculations work with integer math, you might notice small differences between what you stake and what you can immediately unstake. This is normal and expected.
Precision Rounding Example: If you stake 100 tokens to a pool that has already received rewards, you might only be able to unstake 99 tokens immediately. This happens because:
- The pool’s share-to-token ratio is no longer 1:1 after rewards
- Integer division during share calculation rounds down
- The “dust” (fractional tokens) remains in the pool
This is not a loss - it’s how the protocol ensures fair reward distribution.
The $INT token will have 9 decimal places of precision, so any rounding occurs at very small fractions of a token (e.g., 0.000000001 tokens).
Practical Example
Let’s walk through a scenario with Alice and Sam:
Initial State:
- Alice stakes 1,000 tokens to a new pool
- She receives 1,000 shares (1:1 ratio)
- The pool earns 100 tokens in rewards
- Pool now has: 1,100 tokens, 1,000 shares
Sam joins the pool:
- Sam stakes 100 tokens
- Sam’s shares = (100 / 1,100) × 1,000 = 90 shares (rounded down)
- Pool now has: 1,200 tokens, 1,090 shares
Share values:
- Alice’s 1,000 shares = (1,000 / 1,090) × 1,200 = 1,100 tokens
- Sam’s 90 shares = (90 / 1,090) × 1,200 = 99 tokens
Alice has earned 100 tokens in rewards, while Sam would receive 99 tokens if unstaking immediately (with 1 token lost to rounding).
Reward Distribution Flow
Protocol rewards are distributed at a time interval referred to as an epoch. Epochs will initially be 24 hours in duration, but epoch durations can be adjusted as needed.
Note that on devnet for testing purposes epoch duration will likely be more frequent than 24 hours, but will vary at a discretionary basis.
Epoch-Based Rewards
The protocol operates on an epoch system where rewards are distributed periodically:
- Epoch Finalization: Administrators signal the end of an epoch
- Reward Record Creation: A merkle tree of rewards is generated off-chain
- Operator Claims: Each operator claims their pool’s rewards using merkle proofs
- Automatic Distribution: Rewards are split between operators (commission) and delegators
Pool reward claims are permissionless and can be submitted by anyone. Pool reward claims must be processed sequentially from oldest to most recent. All available rewards claims must be processed before any staking actions can occur to maintain consistent accounting.
Commission Mechanism
Operators set commission rates (0-100%) that determine their share of epoch rewards:
- Commission is deducted before rewards are distributed to the pool
- Operators can choose to auto-stake their commission for compounding
- Commission rates can be updated but take effect in the following epoch
USDC Revenue Distribution
In addition to token rewards, operators earn USDC from processing inference jobs:
- USDC payments go directly to the operator’s designated payout wallet
- This revenue stream is separate from token rewards
- Delegators do not receive a share of USDC revenue
Staking and Unstaking Mechanics
Staking Process
- Immediate Effect: Tokens are transferred to the pool instantly
- Share Calculation: Shares are minted based on the current pool ratio
- No Delay: Staking has no waiting period
- Minimum Requirements: Operators must maintain their minimum stake ratio
Unstaking Process
- Initiate Unstake: Convert shares to token amount and start cooldown
- Cooldown Period: Operators and delegators have different cooldown periods
- No Rewards During Cooldown: Tokens don’t earn while unstaking
- Claim Process: After cooldown, tokens can be withdrawn
If you initiate additional unstaking while tokens are in cooldown, the timer resets for all unstaking tokens.
Pool Closure
Operators may close a pool at their discretion. Pool closure is a permanent action and cannot be undone. If a pool has been closed, any remaining stake or commission fees can still be withdrawn.
Security Features
The staking protocol supports halting and slashing of operator pools for any identified network or protocol violations. This establishes economic incentive alignment for operators to ensure network integrity.
Operators may be halted or slashed for any network or protocol violations.
Halt Mechanisms
The protocol includes multiple halt controls for emergency situations:
- Global Staking Halt: Prevents all new stakes
- Global Withdrawal Halt: Prevents all unstaking and claims
- Global Pool Creation Halt: Prevents new pools from being created
- Pool-Specific Halt: Individual pools can be halted by authorities
Slashing Protection
- Only operator self-stake can be slashed for violations
- Delegated tokens are protected from slashing
- Slashing requires authorization from designated authorities
Program Authorities
Different administrative functions are separated among authorities:
- Program Admin: Overall protocol configuration
- Reward Distribution Authorities: Manage epoch rewards
- Halt Authorities: Capable of halting operator pools
- Slashing Authorities: Capable of slashing operator pools
Economic Alignment
The protocol creates several layers of economic alignment:
- Minimum Operator Stake: Ensures operator economic incentives are aligned with the network integrity
- Stake-Weighted Routing: Higher stake increases job allocation probability, incentivizing long-term operator alignment with the network
- Commission Model: Aligns operator and delegator interests
- Cooldown Periods: Encourages long-term commitment
FAQ
Q: Can I lose my delegated tokens?
A: No. Only operators can be slashed for violations. Delegated tokens are protected from slashing, and may be withdrawn from halted or closed pools.
Q: How often are rewards distributed?
A: Rewards accumulate continuously each epoch, automatically compounding your share value. You receive them when unstaking - no manual claiming needed.
Q: Can I delegate to multiple pools?
A: Yes. You can delegate to as many operators as you want, and manage each delegation independently.
Q: What if an operator closes their pool?
A: The pool stops earning rewards but you can still withdraw your stake and claim earned rewards.
Q: How long is the unstaking cooldown?
A: Delegators have shorter cooldowns than operators (exact duration set by protocol authorities). Tokens don’t earn rewards during the unstaking cooldown period.
Q: Do I need to manually claim rewards?
A: No. Rewards automatically compound the value of your staked tokens.
Q: Why are staking actions sometimes when a pool has unclaimed rewards?
A: All rewards must be claimed to ensure fair reward distribution before stake changes occur.
Q: What if I unstake again while already in cooldown?
A: The timer resets for ALL your unstaking tokens, for example if you unstake 5 tokens and then halfway through the unstake delay you unstake another 5 tokens, the unstake delay will restart for all 10 tokens.
Q: Can I cancel unstaking?
A: Yes. Cancelling an unstake operation will immediately re-stake the tokens and they will start earning rewards again.
Q: When do commission rate changes take effect?
A: Commission rate changes take effect in the epoch following when the change occurred, once all reward claims for that pool have been completed.
Q: What’s the difference between token rewards and USDC revenue?
A: Token rewards ($INT) are distributed to all pools by the protocol and shared between operators and delegators. USDC revenue is paid directly to the operators for completed inference tasks.
Q: Can operators change minimum stake requirements?
A: No. The operator minimum stake requirement is set globally and applies to all operator pools.
Q: What if an operator falls below the minimum stake threshold?
A: They can’t reduce stake further and the pool can’t accept new delegations until the ratio is restored.
Q: Are there fees for staking/unstaking?
A: No. The protocol does not charge fees for any transactions. Only standard Solana transaction fees apply.
Q: How do I evaluate operator performance?
A: Check reward history, commission rates, uptime, and stake retention. Better operators get more jobs and rewards.
Q: Can the protocol be upgraded?
A: Yes, Inference.net may upgrade the program as necessary to fix bugs and add new features.
Q: What does it mean if an operator is halted?
A: Operator are halted for suspected network violations. Halting prevents specific actions such as operator unstaking while the situation is investigated.
Q: How does slashing work?
A: Authorities can permanently remove operator tokens for serious violations. Only operator stake is at risk, delegator tokens are protected from slashing.
For support, join our Discord community.