> Security — Inferno ($IFR) Documentation
← Inferno

Security & Audit

Static analysis results, test coverage, reentrancy protections, access control matrix, trust model, and known limitations.

🔍 Grok (xAI) Audit — 10/10 Coherence
Full on-chain + GitHub + Wiki review. All claims verified. Zero discrepancies.
View All Audits →
0 High / Critical
544 Tests Passing
18 Test Suites
15 Findings Fixed

1. Slither Security Audit

All Inferno contracts were analyzed with Slither v0.11.5, the leading static analysis framework for Solidity. The audit completed with zero high or critical findings.

Result: 0 High / Critical findings — 51 initial detections, 15 fixed, 36 accepted (informational or false positives).

Fixes Applied

Detector Count Fix Applied
missing-zero-check 4 Added require != address(0) in BuybackVault constructor + setParams
reentrancy-benign 2 Applied CEI (Checks-Effects-Interactions) pattern in BurnReserve
immutable-states 5 Made owner, burnReserve, guardian immutable in BurnReserve, BuybackVault, LiquidityReserve
unindexed-event 4 Added indexed to Pause/Unpause events in BuybackVault, LiquidityReserve

2. Claude Security Audit (Internal)

All 14 contracts were reviewed line-by-line by Claude Opus 4.6 across 10 check categories: reentrancy, access control, integer overflow, front-running, DoS, centralization, fee edge cases, timelock bypass, feeExempt manipulation, and owner privileges.

Result: 0 FAIL — 12 WARN — 78 PASS — Full Report

Top Findings (Medium)

#ContractFindingStatus
W1 Governance setOwner() bypasses timelock — immediate ownership transfer Multisig planned
W2 Governance Single owner key = single point of failure ✅ Resolved — TreasurySafe 3-of-5 (20.03.2026)
W3 BuybackVault setParams has no bounds on burnShareBps, slippageBps, cooldown Fix in v3
W4 BuybackVault Uniswap swap MEV-vulnerable (sandwich within slippage tolerance) Flashbots on mainnet

Community Audit Open

All contracts are open source. Security findings welcome via GitHub Issues.

Submit a Finding  |  Read Internal Audit  |  Security Policy

View Audit Files on GitHub Submit Security Report

3. Test Coverage

The project maintains 544 tests (367 contract + 77 app + 100 vault) across 18 test suites, all passing. Tests cover deployment, core logic, edge cases, access control, pause mechanisms, cross-contract integration, wallet verification, governance announcements, and browser testing.

544 / 544 tests passing — 20 test suites, 0 failures.

Test Suite Tests Coverage Areas
InfernoToken 22 Deployment, fee math, exemptions, owner functions, edge cases
LiquidityReserve 42 Lock period, staged withdrawal, pause, period limits, transferOwnership, edge cases
Vesting 21 Cliff, linear release, access control, pause, constructor, edge cases
BuybackVault 26 Deposit, buyback split, cooldown, slippage, activation delay, transferOwnership, edge cases
BurnReserve 27 Deposit, burn, burnAll, tracking, guardian auth, transferOwnership
Governance 36 Propose, execute, cancel, self-governance, integration
IFRLock 37 Lock, unlock, re-lock, isLocked, lockType, fee-exempt, pause, multi-user
PartnerVault 95 Builders, milestones, rewards, vesting, claims, authorizedCaller, anti-double-count, algo throttle, annual cap, bounds
FeeRouterV1 33 Deployment, fee charging, voucher discount, voucher validation (isVoucherValid), replay protection, signer rotation, fee collector, access control, pause, receive ETH
BuilderRegistry 27 Register, remove, update, category validation, access control, views, edge cases
VoteAnnouncement 12 Deduplication, state detection (new/executable/executed/cancelled), calldata decode, multi-proposal polling
AnnouncementBot 10 Community link, channel sync, auto-pin, admin guards, topic IDs, no German strings, test commands

Run the full test suite:

npx hardhat test

Solidity Coverage (solidity-coverage)

Code coverage measured with solidity-coverage. Overall: 99% statements, 91% branches, 98% functions, 99% lines.

Contract Stmts Branch Funcs Lines
InfernoToken 100% 92.86% 100% 100%
LiquidityReserve 100% 86.67% 100% 100%
Vesting 96.55% 69.44% 88.89% 97.5%
BuybackVault 100% 61.76% 100% 100%
BurnReserve 100% 100% 100% 100%
Governance 100% 97.92% 100% 100%
IFRLock 100% 85.71% 100% 100%
PartnerVault 98.31% 84.51% 100% 99.33%
FeeRouterV1 100% 96% 100% 100%

Full coverage report: COVERAGE_REPORT.md

Internal Security Review — Bootstrap Flow

Date: 13 March 2026  |  Scope: BootstrapVaultV3, InfernoToken, FeeRouterV1, Governance/Timelock

Method: Manual code review + 544 automated tests (91% branch coverage)

11
Secure
3
Low Risk
0
Critical

The 3 low-risk findings are structural design choices, not vulnerabilities:

  • Front-running — neutralized by pro-rata distribution and 2 ETH cap
  • 100% refund scenario — remaining IFR tokens locked permanently (effectively burned by design)
  • Frontend is read-only — no Web3 write calls, users interact directly via Etherscan

This is an internal review, not a professional third-party audit. Full technical report: audit/BOOTSTRAP_SECURITY_REVIEW_13032026.md. A formal audit by an independent firm is planned before Phase 3.

4. Reentrancy Protection

Every contract that performs external calls is protected against reentrancy attacks through one of two mechanisms: OpenZeppelin's ReentrancyGuard modifier or the Checks-Effects-Interactions (CEI) pattern.

Contract Protection Details
IFRLock ReentrancyGuard OpenZeppelin nonReentrant modifier on both lock() and unlock()
BurnReserve CEI Pattern State updated before external token calls; Checks-Effects-Interactions enforced
BuybackVault CEI Pattern State updated before external calls; all token operations are the last statement
All external token calls are the last operation in their respective functions.

5. Access Control Matrix

The following matrix shows which roles can call which functions on each contract. Owner refers to the contract owner (Governance after ownership transfer), Guardian is the emergency role, Anyone means any external address, and Self means the contract calling itself via a governance proposal.

Contract Owner Guardian Anyone Self
InfernoToken setFeeRates, setFeeExempt, setPoolFeeReceiver transfer, burn
LiquidityReserve withdraw, setMaxWithdraw pause, unpause
Vesting pause, unpause release (beneficiary only)
BuybackVault executeBuyback, setParams pause, unpause depositETH
BurnReserve burn, burnAll, setGuardian burn, burnAll deposit
Governance propose, execute, cancel, setGuardian, setOwner cancel setDelay
IFRLock pause, unpause, setGuardian lock, unlock (own tokens)

6. Trust Model

Inferno is designed so that no admin can make instant changes — all actions require a 48-hour public timelock delay and can be cancelled by the Guardian. Multiple safeguards are layered to protect token holders and ensure transparent governance.

Key principle: No admin can make instant changes. All sensitive operations are gated by a 48-hour timelock via Governance, publicly visible on-chain, and cancellable by the Guardian.

7. Known Limitations

While the Inferno contracts have been thoroughly tested and analyzed, the following limitations should be understood by users, integrators, and auditors.

Limitation Impact Mitigation
Slither audit is static analysis only Does not cover runtime exploits or economic attacks Professional penetration test recommended as next security milestone
Governance owner transferred to TreasurySafe 3-of-5 ✅ (20.03.2026) Single point of failure resolved — 3-of-5 multisig now controls Governance Ownership transferred via direct setOwner() on 20.03.2026 (TX). All Safes 3-of-5. LP Reserve under multisig (55%+ of supply under multisig control). DAO governance planned for Phase 5.
No formal verification of mathematical properties Fee calculations and vesting math are test-covered but not formally proven Extensive unit tests with edge cases provide practical coverage
Fee-on-transfer can cause issues with some DeFi protocols Protocols that don't account for transfer fees may receive fewer tokens than expected Integrators must use balanceOf checks before and after transfer
IFRLock requires feeExempt status Without fee exemption, unlock() fails due to balance mismatch from transfer fees IFRLock is set as fee-exempt during deployment; this must not be revoked

Recommendation: A professional security audit by a reputable firm (e.g., Trail of Bits, OpenZeppelin, Consensys Diligence) is strongly recommended as the next security milestone.

FeeRouter & Points Backend — Threat Model

FeeRouter Threats

AttackMitigation
Voucher ReplayusedNonces[wallet][nonce] = true (on-chain)
Expired Voucherblock.timestamp > expiry check
Falscher SignerECDSA.recover == voucherSigner
Discount > FeeClamp: max(fee - discount, 0)
Arbitrary AdapterwhitelistedAdapters mapping
Signer kompromittiertpause() + setVoucherSigner() via Governance
Fee ueber CapFEE_CAP_BPS = 25 hard-coded

Points Backend Threats

AttackMitigation
Bot farmt PunkteDaily limits + rate limiting + SIWE
Voucher farming1 Voucher/Wallet/Tag + Expiry 7 Tage
SIWE ReplayNonce pro Session, einmalig
JWT FaelschungJWT_SECRET server-only, nie exposed
Sybil WalletsOptional: min IFR Lock als Skin-in-game

Important: IFR Points are not a token — no transfer value, no tradability, no monetary promise. They only reduce the protocol fee on a single swap.

On-Chain Audit

All values are verifiable on-chain via Etherscan. Contracts are deployed and verified on Ethereum Mainnet.

Contract Ownership

ContractOwnerStatus
InfernoTokenGovernance (Timelock)OK
IFRLockadmin-PatternOK
PartnerVaultGovernance (Timelock)OK
FeeRouterV1Governance (Timelock)OK
LiquidityReserveGovernance (Timelock)OK
BuybackVaultGovernance (Timelock)OK
BurnReserveGovernance (Timelock)OK

Token Supply Distribution

WalletIFR%
LP Reserve Safe (3-of-5)400,600,00040.06%
BootstrapVaultV3200,000,00020.00%
LiquidityReserve200,000,00020.00%
Vesting (Team, 4 Years)150,000,00015.00%
PartnerVault40,000,0004.00%
Treasury Safe00.00%
Community Safe~7,900,0000.79%
Burned (Deflation)~1,500,000+~0.15%

Vesting (Team)

Deflation (Live)

Since deployment, IFR have been permanently burned ( of total supply). Deflation is provable on-chain.

Connecting…

Pre-Mainnet Checklist — Completed (05.03.2026): All 17 protocol contracts deployed and verified on Ethereum Mainnet. Ownership transferred to Governance (LiquidityReserve, BuybackVault, BurnReserve). Details: Deployments | Mainnet Checklist

External Security Audit — InfernoToken.sol

Date: March 19, 2026  |  Type: Independent AI Security Analysis  |  Scope: InfernoToken.sol (ERC-20 with fee-on-transfer)

Overall Assessment

Code quality: Good. Logic: Clean. No exploitable bugs found. Critical risks identified are mitigated by IFR’s Governance architecture (48h Timelock + TreasurySafe 3-of-5).

Findings & Mitigations

Finding Severity IFR Mitigation Status
Owner Control Critical Governance + 48h Timelock + TreasurySafe 3-of-5. No single person can make changes. Mitigated
FeeExempt Logic High On-chain transparent, Governance-controlled. Only protocol contracts exempt — no DEX routers or insider wallets. Mitigated
Rounding / Dust Low Minimal impact at 9 decimals. Not exploitable in practice. Accepted
Decimals = 9 Low / Design Deliberate design choice. Fully compatible with Uniswap V2. By Design

Confirmed Strengths

  • No Reentrancy Risk — no external calls in _update()
  • Real Burn — tokens sent to address(0), not fake burn
  • Fee Cap — hardcoded max 5%, cannot be exceeded
  • No Mint — supply can only decrease, never increase
  • OpenZeppelin v5 — current standard library

Why Critical Findings Are Mitigated

The audit correctly identified that Owner control is a risk in fee-on-transfer tokens. In IFR, this risk is eliminated by architecture:

  • The token owner is the Governance Contract — not a person
  • All changes require a 48-hour Timelock
  • Governance is controlled by TreasurySafe 3-of-5 (5 signers, 3 required)
  • Every feeExempt address is on-chain verifiable