← Inferno

Deployment & Addresses

Contract addresses, deployment order, constructor arguments, and post-deploy verification for the Inferno protocol.

1. Mainnet Addresses

All 15 protocol contracts deployed (18 on-chain components total with the 3 Gnosis Safes) and verified on Ethereum Mainnet. The list shows deployed components, not that every one is active. For Sepolia testnet addresses, see the Testnet page.

2. Deployment Order (10-Step CFLM)

The Inferno protocol follows a strict 10-step Community Fair Launch Model (CFLM) deployment sequence. Each step must complete before the next begins.

1
Deploy InfernoToken
poolFeeReceiver = deployer — 1,000,000,000 IFR (1B) minted to deployer wallet.
2
Deploy LiquidityReserve
6-month lock period, 50M IFR per quarter release schedule.
3
Deploy Vesting
12-month cliff, 36-month linear vesting, 150M IFR total allocation.
4
Deploy BurnReserve & BuybackVault
BurnReserve for permanent token burns. BuybackVault with 60-day activation delay.
5
(BurnReserve already deployed in Step 4)
Both contracts deployed together in the previous step for atomic consistency.
6
Deploy Governance
48-hour timelock for all governance proposals. Guardian set to deployer initially.
7
Deploy PartnerVault
Mainnet params: rewardBps=1500 (15%), annualEmissionCap=4M IFR, admin=Governance, guardian=deployer.
8
Set feeExempt for all contracts + deployer
Exempt all protocol contracts including PartnerVault and deployer from transfer fees. CRITICAL: PartnerVault must be feeExempt BEFORE any IFR transfer to it — otherwise ~3.5% of the 40M transfer is lost to fees (1.4M IFR on Sepolia).
9
Distribute tokens
200M → LiquidityReserve • 150M → Vesting • 150M → Treasury • 60M → Community & Grants • 40M → PartnerVault (fee-free after Step 8) • LP creation occurs via BootstrapVaultV3.finalise() after Bootstrap period. ETH raised + IFR from vault → Uniswap V2 LP (trustless, on-chain).
10
Review deployer feeExempt state
The Deployer exemption was re-enabled by executed Governance Proposal #7 and remains an active, disclosed governance-controlled exception. Do not describe it as revoked unless a later executed proposal changes the live feeExempt(address) state.

3. Post-Deploy Steps

After the 10-step deployment, the following operations complete the protocol setup.

LP Pairing

npx hardhat run scripts/create-lp.js --network mainnet

Liquidity created trustlessly by BootstrapVaultV3.finalise(). IFR source: Treasury Safe + Community Safe (Plan B, see bootstrap.html).

Ownership Transfer

token.transferOwnership(governance.address)

Transfers InfernoToken ownership to the Governance contract. After this, the deployer has no direct control over the token.

IFRLock Deploy

npx hardhat run scripts/deploy-lock.js --network mainnet

IFRLock is a core protocol component deployed as part of the standard sequence. Its feeExempt status must be set via Governance proposal after ownership transfer to the Timelock. Without fee exemption, unlock() will fail because transfer fees cause the contract to hold fewer tokens than recorded.

4. Constructor Arguments

These are the exact constructor parameters used for the Mainnet deployment. All token amounts use 9 decimals.

Contract Constructor Parameters
InfernoToken deployer (poolFeeReceiver)
LiquidityReserve token, 15552000 (180 days), 50000000000000000 (50M × 1e9), 7776000 (90 days), deployer (guardian)
Vesting token, deployer (beneficiary), 31536000 (365 days), 126144000 (4 × 365 days), 150000000000000000 (150M × 1e9), deployer (guardian)
BurnReserve token, deployer (guardian)
BuybackVault token, burnReserve, deployer (treasury), deployer (router placeholder), deployer (guardian), 5184000 (60 days)
Governance 172800 (48 hours), deployer (guardian)
IFRLock token, deployer (guardian)

Note: The deployer placeholder addresses (treasury, router, beneficiary) are updated post-deployment via Governance proposals to the actual multisig and protocol addresses.

5. Etherscan Verification

All 15 contracts are verified on Etherscan Mainnet. Use the Hardhat verify plugin with the exact constructor arguments used during deployment.

npx hardhat verify --network mainnet CONTRACT_ADDRESS CONSTRUCTOR_ARGS...

Example for InfernoToken:

npx hardhat verify --network mainnet \
  0x77e99917Eca8539c62F509ED1193ac36580A6e7B \
  0x6b36687b0cd4386fb14cf565B67D7862110Fed67

Example for Governance:

npx hardhat verify --network mainnet \
  0xc43d48E7FDA576C5022d0670B652A622E8caD041 \
  172800 \
  0x6b36687b0cd4386fb14cf565B67D7862110Fed67

Tip: If verification fails with "Already Verified", the contract source is already published. You can check by visiting the contract address on Etherscan.

6. Post-Deploy Checklist

Current status of all deployment and post-deployment tasks for Mainnet.

Task Status
Deploy 13 contracts + create LP Pair Done
Etherscan verification (13/13 contracts) Done
LP pairing (Uniswap V2) Done
BuybackVault router set Done
Ownership transferred to Governance Done
Governance Proposal #0 executed Done
IFRLock deployed + Proposal #1 created Done
Governance Proposal #1: setFeeExempt(Vesting, true) Cancelled 10.03.2026
PartnerVault v2 deployed + verified (0x5F12...490A39) Done
Governance Proposal #2 cancelled (old PartnerVault) Done
Governance Proposal #3: setFeeExempt(BootstrapVaultV3, true) Cancelled 10.03.2026 — replaced by #4
1.4M IFR Top-up to PartnerVault v2 Done — PartnerVault now 40M IFR
Set treasury/community addresses Done
Proposal history correction
Mainnet Proposal #3 targeted setFeeExempt(BootstrapVaultV3, true) and was cancelled on 10.03.2026. Proposal #4 later executed that action. The PartnerVault funding history is separate from this mainnet proposal ledger.

7. Mainnet Ownership Status

All ownable contracts were transferred to the Governance Timelock on 2026-03-05. Parameter changes now require a 48-hour governance proposal process.

Contract Role Controller Status
InfernoToken owner() Governance Done
LiquidityReserve owner() Governance Done
BurnReserve owner() Governance Done
BuybackVault owner() Governance Done
PartnerVault admin() Governance Done
FeeRouterV1 governance() Governance (immutable) Done
IFRLock guardian() Deployer (emergency pause only) —
Vesting guardian() Deployer (emergency pause only) —
Governance owner() TreasurySafe 3-of-5 (transferred 20.03.2026) Done

Transfer Transactions (2026-03-05):
InfernoToken: 0x0fc468...ed5e76
LiquidityReserve: 0x34650e...12c7d4
BurnReserve: 0x757d51...a5b1a
BuybackVault: 0xcd0378...a3971