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), then

  • Call deposit(amount) with amount > 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 lockEndsAt is 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
Total Staked Balance (IVT)
APY (BPS)
APY (%)

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 TierChanged event.


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 plus pendingRewards, unlocksIn, and the effective apyBps

  • previewRewards(account) — returns pending rewards

  • timeUntilUnlock(account) — returns seconds remaining until unlock


Depositing (Adding to Your Stake)

When you call deposit(amount) the contract performs these steps:

1

Update global reward accounting

Global accruals are updated so rewards remain consistent across users.

2

Settle pending rewards into accruedRewards

Your pending rewards are settled into accruedRewards.

3

Increase staked balance

Your staked balance increases by amount.

4

Recalculate tier

Your tier is recalculated based on the new total staked balance.

5

Reset lock

Your lock is reset: lockEndsAt = now + 540 days

6

Transfer tokens

Tokens are transferred from your wallet into the contract.


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