Technical Documentation
Overview
This document provides a comprehensive technical description of the Investcoin (IVT) ecosystem. It covers both on-chain smart contracts and off-chain infrastructure, including architecture, security mechanisms, deployment procedures, and operational considerations.
This documentation is intended for developers, auditors, partners, and technically oriented stakeholders. It complements the Investor Guide, which focuses on investment-related information.
Documentation Scope
This document covers:
Smart contract architecture and logic (IVT Token and Staking)
Vesting, deflation, loyalty, and governance mechanisms
Security model, testing, and audits
Website and dApp technical architecture
Deployment and operational procedures
It does not constitute investment advice.
System Architecture
On-chain Architecture
The on-chain layer consists of two primary contracts:
Investcoin (IVT): ERC-20-like token with fixed supply, vesting, deflation, loyalty bonus, blacklist, pausability, and upgradeability.
InvestcoinStaking: Staking contract offering tiered APY with a fixed 18-month lock.
Both contracts support upgradeability via transparent proxies and are implemented in Solidity ^0.8.20.
Off-chain Architecture (Website & dApp)
The off-chain layer includes:
Web frontend (Next.js)
Web3 integration (WalletConnect, MetaMask, Coinbase Wallet)
Backend services for telemetry and caching
Hosting and deployment via Vercel
Optional Redis cache via Upstash
Monitoring and analytics (Google Analytics, Sentry)
Token Contract — Investcoin (IVT)
Core Parameters
Name: Investcoin
Symbol: IVT
Decimals: 18
Maximum Supply: 100,000,000 IVT
Minting: Fully minted at initialization, permanently disabled afterward
Supply and Minting Control
The full supply is minted once during initialization.
Minting is permanently disabled (
mintingFinished = true).Burn operations never reopen minting capacity.
Vesting Logic
Supply distribution is split into two vesting pools:
Initial Release: 25% (25,000,000 IVT) transferred to the owner at deployment.
Core Vesting: 35,000,000 IVT released bimonthly over 4 years (24 cycles).
Foundation Vesting: 40,000,000 IVT released quarterly over 8 years (32 cycles).
The function releaseVested() releases all eligible tranches based on elapsed time.
Deflation and Burn Engine
Deflation is implemented through automated and manual mechanisms:
Quarterly Burn:
0.5% of circulating supply accrued every 90 days.
Consumed gradually during transfers.
Half-Supply Burn:
Triggered when circulating supply reaches 50% of max supply.
Initiates a 2% burn target, also consumed gradually.
Burn Stop Condition:
Automated burns stop when circulating supply reaches 21,000,000 IVT.
Manual Burn:
Owner can burn tokens from free treasury balance.
Transfers are protected against dust attacks by enforcing a minimum transfer amount.
Loyalty Bonus
Eligibility: Accounts holding IVT without transfers for 12 months.
Bonus: 1% of eligible balance.
Fee: 0.5% of the bonus routed to the owner.
Toggle: Loyalty bonus can be enabled or disabled by the owner.
Treasury constraint: Bonus payments require free treasury balance.
Blacklist and Pausability
Blacklisted addresses cannot send, receive, approve, stake, or claim loyalty.
Emergency pause disables:
transfertransferFromclaimLoyaltyBonus
Administrative functions remain available during pause.
Ownership and Governance
Two-step ownership transfer (
transferOwnership+acceptOwnership).Optional ownership renouncement.
Owner-only access to:
Vesting release
Pausing
Burn controls
Loyalty toggling
Blacklist management
Proxy upgrades
Proxy and Upgradeability
Supports deployment via transparent proxy.
initialize(address owner)replaces constructor logic for proxy usage.Only proxy admin can upgrade implementations.
Migration logic can be executed during upgrades.
Staking Contract — InvestcoinStaking
Staking Model
Fixed lock-up: 18 months (540 days).
Global staking cap: 10,000,000 IVT.
Tiers and APY
Tier 1: ≥ 1,000 IVT — 2% APY
Tier 2: ≥ 10,000 IVT — 2.5% APY
Tier 3: ≥ 50,000 IVT — 3% APY
Lock-up and Withdrawals
Withdrawals allowed only after lock expiration.
Rewards subject to a 0.5% fee.
Emergency withdrawals return principal only.
Emergency Mode
When enabled, users can withdraw principal without rewards.
Used only in incident scenarios.
Smart Contract APIs
IVT Token — User Functions
balanceOf(address)transfer(address, amount)transferFrom(address, address, amount)approve(address, amount)claimLoyaltyBonus()circulatingSupply()
IVT Token — Admin Functions
releaseVested()pause()/unpause()manualBurn(amount)setLoyaltyEnabled(bool)blockAddress(address)/unblockAddress(address)
Staking — User Functions
deposit(amount)withdraw()emergencyWithdraw()previewRewards(address)timeUntilUnlock(address)
Staking — Admin Functions
fundRewards(amount)withdrawRewards(address, amount)disableStaking()setEmergencyMode(bool)pause()/unpause()
Security Model
Invariants and Safety Properties
Key invariants include:
Total supply never exceeds MAX_SUPPLY.
Locked + circulating supply equals total supply.
Vesting counters never exceed allocated pools.
Burns never exceed defined limits.
Automated Testing Strategy
Hardhat unit tests
Checklist tests
Randomized invariant tests
Foundry invariant and fuzz tests
Coverage exceeds 90% across core logic.
Static and Symbolic Analysis
Tools used:
Slither
Mythril
Manticore
Echidna (optional)
Known findings are documented and accepted where design-driven (e.g., timestamp usage).
Website & dApp Architecture
Frontend Stack
Next.js
TypeScript
Tailwind CSS
Web3 Integration
WalletConnect
MetaMask
Coinbase Wallet
Safe-compatible wallets
Environment Variables
Required:
Optional:
Deployment
Smart Contract Deployment
Network: BNB Chain Testnet
Deployment via Hardhat scripts
Proxy-based initialization
Full verification on BscScan
Website Deployment
Platform: Vercel
Automatic CI/CD from GitHub
Optional Redis cache via Upstash
SSL and CDN handled by platform
Operational Considerations
Treasury balance must exceed vesting reserves before paying loyalty bonuses.
Burn targets are consumed only when transfers occur.
Pausing should be documented and reversed once incidents are resolved.
Admin key security is critical.
References
Main Token Contract:
contracts/Investcoin.solStaking Contract:
contracts/InvestcoinStaking.solProxy Contracts
Hardhat & Foundry test suites
Deployment scripts