IVT Staking Mechanism
This page describes the Investcoin (IVT) staking mechanism as implemented in the staking smart contract. The staking design is intentionally simple, rule-based, and auditable, with a fixed lock period and tier-based APY determined by the participant’s total staked balance.
All staking operations are executed on-chain and can be independently verified.
Key Design Features
Single position per wallet: each address maintains one staking position with aggregated balance.
Tier-based APY: the reward rate depends on the participant’s total staked amount.
Fixed lock period: each deposit sets the unlock date to a fixed duration from the deposit timestamp.
No discretionary rewards: rewards are computed deterministically from contract rules.
Solvency controls: withdrawals require sufficient contract balance; the owner can fund rewards when needed.
Eligibility and Minimum Stake
To stake IVT, a participant must:
Approve the staking contract to transfer IVT (
approve), thenCall
deposit(amount)withamount > 0.
Minimum stake requirement:
After a deposit, the wallet’s total staked balance must be at least 1,000 IVT. If the resulting total is below the minimum, the deposit is rejected.
Lock Period (Fixed)
IVT staking uses a fixed lock duration of 540 days (approximately 18 months).
On every successful deposit, the staking position’s
lockEndsAtis set to:lockEndsAt = block.timestamp + 540 days
Important implication: If you add more tokens later, the lock timer is reset to a new 540-day period from that deposit time.
Withdrawals of principal and rewards are only available when:
block.timestamp >= lockEndsAt
Tier Structure (Commitment Levels)
A participant’s tier is determined by the total staked balance (after deposit). The contract automatically assigns the tier using fixed thresholds:
Tier 1
≥ 1,000 and < 10,000
200
2.00%
Tier 2
≥ 10,000 and < 50,000
250
2.50%
Tier 3
≥ 50,000
300
3.00%
Notes:
Tiers are calculated automatically on deposit and stored in the staking position.
If a deposit moves the wallet into a new tier, the contract emits a
TierChangedevent.
Reward Accrual (How Rewards Are Calculated)
Rewards accrue over time based on:
Your staked balance
Your tier APY
The elapsed time since the last accrual timestamp
Rewards are computed proportionally per second, using:
BPS = 10,000(basis points)YEAR = 365 days(annualization constant)
The contract internally tracks:
accruedRewards(settled rewards already accounted for)lastRewardTimestamp(the last time rewards were settled for the wallet)
For transparency, the contract exposes helper views such as:
stakeInfo(account)— returns stake position details pluspendingRewards,unlocksIn, and the effectiveapyBpspreviewRewards(account)— returns pending rewardstimeUntilUnlock(account)— returns seconds remaining until unlock
Depositing (Adding to Your Stake)
When you call deposit(amount) the contract performs these steps:
Withdrawal After Unlock (Principal + Rewards)
When the lock period expires, you may call withdraw() to receive:
100% of principal, plus
net rewards (after fee)
Rewards Fee:
0.5% fee on rewards (
FEE_BPS = 50)
Net rewards are computed as:
fee = rewards * 0.5%netRewards = rewards - fee
Your payout is:
payout = principal + netRewards
The contract requires that its IVT balance is sufficient to cover:
participant payout, and
fee retention (kept inside the contract as excess IVT)
When the withdrawal completes, the staking position is cleared (stake becomes zero and tier resets to none).
Emergency Withdraw (Principal Only)
The contract includes an emergency pathway:
emergencyWithdraw()
This function is available only when emergency mode is enabled by governance/administration.
Characteristics:
Returns principal only
All rewards are forfeited (both accrued and pending)
The staking position is cleared immediately
This mechanism exists to protect participants in exceptional incidents while preserving system integrity.
Solvency and Reward Funding
To ensure the staking contract remains solvent:
The owner can fund rewards via
fundRewards(amount), transferring additional IVT into the contract.The owner can withdraw excess IVT via
withdrawRewards(to, amount)only if the contract remains able to cover principal obligations. The contract enforces:contract balance ≥ totalStaked + amount
This prevents withdrawing tokens that are needed to pay stakers’ principal.
Operational Controls (Pause / Disable)
The contract includes administrative controls typically used for risk management:
Pause: temporarily blocks deposit/withdraw operations.
Staking enable/disable: staking can be disabled; when disabled, reward accrual uses a cutoff timestamp to stop further accrual after the disable moment.
These controls exist to support safe operation and incident response.
Summary for Participants
Minimum stake: 1,000 IVT
Fixed lock: 540 days, reset on every deposit
Tier APY is based on total staked amount (Tier 1–3)
Rewards accrue deterministically over time
withdraw()after unlock pays principal + net rewards (0.5% fee on rewards)emergencyWithdraw()(if enabled) returns principal only and forfeits rewards
Conclusion
The IVT Staking Mechanism is a structured, tier-based system designed to reward commitment, reduce volatility, and strengthen the ecosystem.
By clearly differentiating participants according to their level of commitment, IVT ensures that long-term aligned stakeholders are appropriately recognized and incentivized.
All staking rules are transparent, predictable, and enforced by smart contracts.
Last updated