Mainnet Deployment Checklist
Complete deployment verification for Ethereum Mainnet — 14 on-chain components deployed and verified (2026-03-05).
CRITICAL — Before Any Public Launch
These items MUST be completed before public launch.
LP Token Lock (HIGHEST PRIORITY)
-
Pending
Lock LP Tokens via Team.Finance (min 12 months) — or permanently burn LP tokens (
0x000...dEaD) - Pending Verify LP lock transaction on Etherscan
- Pending Record LP lock proof in TRANSPARENCY.md
- Pending Add LP lock link to landing page + wiki
Ownership Transfer → Governance (Done 2026-03-05)
-
Done
InfernoToken.transferOwnership(Governance) -
Done
LiquidityReserve.transferOwnership(Governance) -
Done
BuybackVault.transferOwnership(Governance) -
Done
BurnReserve.transferOwnership(Governance)
Deployer Wallet
-
Done
Done (06.03.2026) — Treasury migrated to Safe:
0x5ad6193eD6E1e31ed10977E73e3B609AcBfEcE3b -
Done
Done (06.03.2026) — Community migrated to Safe:
0xaC5687547B2B21d80F8fd345B51e608d476667C7(57.9M received, 2.1M burned) - Done Deployer LP allocation transferred to LP Reserve Safe (400.6M IFR, 18.03.2026). Deployer now holds 0 IFR.
Current Status (2026-03-10): Mainnet Deploy: 14 on-chain components deployed + verified. Token Distribution: ~997.9M IFR distributed (2.1M burned on Community transfer). Fee Exemptions: 10 addresses set (incl. Proposals #4+#5), deployer removed. Ownership Transfer: Done (4 contracts → Governance). BootstrapVault V1: Deployed (0xA820...261a) — DEPRECATED. ✅ BootstrapVaultV3 deployed: 0xf72565C4cDB9575c9D3aEE6B9AE3fDBd7F56e141 — feeExempt ✅ (Proposal #4 executed 11.03.2026) — funded with 200M IFR. OPEN: LP Pairing, LP Lock, Multisig expansion.
Sepolia Testnet — Completed
| Milestone | Status |
|---|---|
| 14 Contracts deployed + verified | Done |
| Uniswap V2 LP Pair live | Done |
| Ownership transferred to Governance | Done |
| Governance Proposals #0, #1 executed | Done |
| Governance Proposal #2 cancelled (v1 deprecated) | Done |
| Governance Proposal #3 executed (PartnerVault v2 feeExempt) + 1.4M Top-up | Done |
| Full Lock/Unlock cycle verified (8/8) | Done |
| Slither Audit: 0 high/critical | Done |
| solidity-coverage: 99% Stmts, 91% Branch | Done |
| LiquidityReserve/BuybackVault/BurnReserve v2 redeployed (transferOwnership) | Done |
| Ownership v2 → Governance (direct transfer) | Done |
| feeExempt Proposals #7-9 executed (2026-03-02) | Done |
Phase 0: Pre-Deployment (Preparation)
Security
- Done Slither Audit completed (0 high/critical, 15 fixes applied)
- Done solidity-coverage report generated (99% Stmts, 91% Branch)
- Pending Third-party security audit completed (recommended: Code4rena, Sherlock, or Cyfrin)
- Pending All audit findings resolved and re-verified
- Pending Slither re-run on final code
-
Pending
npx hardhat test— all tests passing - Pending Code freeze: no commit after audit completion without re-audit
Multisig Setup
- Done Gnosis Safe created: safe.global
- Done 3-of-5 threshold active (5 signers: A.K., M.G., A.M., Y.K., A.P.) — all Safes ✅
- Pending All signers have hardware wallets (Ledger/Trezor)
-
Done
Multisig address recorded:
0x5ad6193eD6E1e31ed10977E73e3B609AcBfEcE3b - Pending Guardian multisig created (separate Safe, recommended)
- Pending Guardian address recorded
- Pending Test transaction on Sepolia with multisig successful
Wallets & Keys
- Pending Deployer wallet with sufficient ETH for gas (min. 0.5 ETH recommended)
- Pending All private keys on hardware wallets, not on computer
- Pending Backup phrases securely stored (offline, multiple copies)
- Pending Team beneficiary address for vesting confirmed
- Pending Treasury address confirmed
Contract Parameters Finalized
Parameters used for mainnet deployment:
| Parameter | Value |
|---|---|
rewardBps |
1500 (15%) |
annualEmissionCap |
4,000,000 IFR |
Timelock delay |
172800 (48h) |
| Team Vesting | 150M IFR, 48 months, 12-month cliff |
| Liquidity Reserve | 200M IFR, 6-month lock |
FeeRouterV1 |
protocolFeeBps = 5, FEE_CAP_BPS = 25 |
Phase 1: Deployment (Follow order!)
Step 1 — Deploy Core Contracts
-
Done
InfernoToken.sol deployed —
0x77e99917Eca8539c62F509ED1193ac36580A6e7B— Etherscan verified -
Done
Governance (Timelock) deployed — admin = Deployer (temporary), delay = 172800 (48h) —
0xc43d48E7FDA576C5022d0670B652A622E8caD041— Etherscan verified
Step 2 — Deploy Utility Contracts
-
Done
IFRLock.sol —
0x769928aBDfc949D0718d8766a1C2d7dBb63954Eb— Etherscan verified -
Done
BurnReserve.sol —
0xaA1496133B6c274190A2113410B501C5802b6fCF— Etherscan verified -
Done
BuybackVault.sol —
0x670D293e3D65f96171c10DdC8d88B96b0570F812— Etherscan verified -
Done
PartnerVault.sol — admin = Governance, rewardBps = 1500, annualEmissionCap = 4M IFR —
0xc6eb7714bCb035ebc2D4d9ba7B3762ef7B9d4F7D— Etherscan verified -
Done
FeeRouterV1.sol — governance = Governance, feeCollector = Treasury —
0x4807B77B2E25cD055DA42B09BA4d0aF9e580C60a— Etherscan verified
Step 3 — Vesting & Reserve
-
Done
Vesting.sol —
0x2694Bc84e8D5251E9E4Ecd4B2Ae3f866d6106271— Etherscan verified -
Done
LiquidityReserve.sol —
0xdc0309804803b3A105154f6073061E3185018f64— Etherscan verified
Step 4 — Set Fee Exemptions (BEFORE token distribution!)
-
Done
setFeeExempt(Vesting, true) -
Done
setFeeExempt(LiquidityReserve, true) -
Done
setFeeExempt(BuybackVault, true) -
Done
setFeeExempt(BurnReserve, true) -
Done
setFeeExempt(IFRLock, true) -
Done
setFeeExempt(PartnerVault, true) -
Done
setFeeExempt(Treasury, true) - Done CRITICAL: All exemptions set BEFORE token transfers (Sepolia lesson applied)
-
Done
setFeeExempt(BootstrapVaultV3, true)— Proposal #4 executed 11.03.2026 (TX) -
Done
setFeeExempt(FeeRouterV1, true)— Proposal #5 executed 11.03.2026 (TX)
Step 5 — Token Distribution (CRITICAL)
| Allocation | Amount | Destination | Status |
|---|---|---|---|
| DEX Liquidity | 400M IFR | LP Reserve Safe (3-of-5) — transferred from Deployer 18.03.2026 | Done |
| Liquidity Reserve | 200M IFR | LiquidityReserve contract | Done |
| Team (Vested) | 150M IFR | Vesting contract | Done |
| Treasury Safe (Gnosis) | 150M IFR | 0x5ad6193eD6E1e31ed10977E73e3B609AcBfEcE3b |
Done |
| Community Safe (Gnosis) | 57.9M IFR | 0xaC5687547B2B21d80F8fd345B51e608d476667C7 (2.1M burned on transfer — EOA was not feeExempt) |
Done |
| Partner Ecosystem | 40M IFR | PartnerVault contract | Done |
Total check: 400 + 200 + 150 + 150 + 57.9 + 40 = 997,900,000 IFR distributed (2.1M burned on Community EOA → Safe transfer). Deployer feeExempt removed after distribution.
Step 6 — Uniswap V2 LP
- Pending LP Reserve Safe approves Router for 400M IFR
- Pending LP created: IFR/ETH pair
- Pending LP tokens locked (liquidity lock service, min. 12 months)
- Pending LP Pair address recorded
Step 7 — FeeRouter Setup
-
Pending
Deploy swap adapter and whitelist (
setAdapter) - Pending Set voucher signer address (Points Backend key)
- Pending Verify test swap with voucher discount
Step 8 — Ownership Transfer to Multisig
- Done InfernoToken Ownership → Governance (Done 2026-03-05)
- Done LiquidityReserve Ownership → Governance (Done 2026-03-05)
- Done BuybackVault Ownership → Governance (Done 2026-03-05)
- Done BurnReserve Ownership → Governance (Done 2026-03-05)
-
Pending
Governance Owner → Multisig (
0x5ad6193eD6E1e31ed10977E73e3B609AcBfEcE3b) - Pending Guardian → Guardian Multisig
- Done Remove deployer feeExempt (Done 2026-03-05)
- Pending Deployer has no more admin rights (Proposal #10 queued: Governance owner → Treasury Safe 3-of-5, ETA 20.03.2026)
- Pending Test proposal with multisig successful
Phase 2: Post-Deployment Verification
- Pending All 10 contract addresses updated in docs/wiki/deployment.html
- Pending Landing page Etherscan links updated
- Pending README contract addresses updated
- Pending docs/DEPLOYMENTS.md mainnet section added
End-to-End Smoke Test
- Pending Transfer: Fees correctly deducted
- Pending Lock: IFR locking works
-
Pending
isLocked()returns true - Pending Unlock: IFR unlocking works
- Pending Governance: Proposal → 48h → Execute
-
Pending
PartnerVault:
claim()works -
Pending
FeeRouter:
swapWithFeewith/without voucher works
App Configuration
-
Pending
Benefits Network Backend:
IFRLOCK_ADDRESSset to mainnet - Pending Governance Dashboard: all addresses set to mainnet
-
Pending
Points Backend:
voucherSigner+FeeRouteraddress set to mainnet