CertiK reviewed Aeterna on 27 Sep 2023: 16 findings, 0 critical; 9 marked fixed, 3 acknowledged, 4 open.
Report hosted on skynet.certik.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 3 | 0 |
| Medium | 0 | 0 | 1 |
| Low | 4 | 0 | 8 |
In the contract `Aeterna` the role `_owner` has authority over the functions shown in the diagram below. - `startLaunchSequence()`, to initiate and start Aeterna. - `setRewardYield()`, to set the reward yield and the rebase frequency. - `setTaxes()`, to set fees, including `liquidityFee`, `aeternaTreasuryFee`, `aeternaDefenceFee` and `sellFee`. - `setFeeReceivers()`, to set the reception addresses for `aeternaTreasuryFee` and `aeternaDefenceFee`. - `setAutoRebase()`, to enable/disable auto rebase, if enabled, reset the `_lastRebasedTime` to `block.timestamp`. - `setRebasePairTokens()`, to enable/disable burning increased tokens in DEX pair after the rebase. - `setTransferFeeStatus()`, to enable/disable charging fees for the token transfers. - `setSellLimits()`, to enable/disable the token selling limit and the selling threshold. - `setMaxTxPercent()`, to set the maximum transaction limit. - `setSwapBackSettings()`, to set the `swapThreshold`, `swapAndLiquifyEnabled` and `swapAndLiquifyByLimitOnly`. - `setWhitelist()`, to add/remove an account to the fee exempt list. - `setAuthorized()`, to add/remove an account to the authorized list. The accounts on the authorization list will have no transaction limits or sales threshold restrictions. - `setBotBlacklist()`, to add/remove a contract address to the blacklist. - `setPairAddress()`, to change DEX pair contract address. - `manualSync()`, to sync the balance and reserve in the DEX pair. - `manualRebase()`, to rebase and adjust the token supply. - `withdrawAllToTreasury()`, to swap all fees to BNB and transfer to the EOA `aeternaTreasuryAddress`. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority.  In the contract `Ownable` the role `_owner` has authority over the functions shown in the diagram below. - `waiveOwnership()`, to renounce the ownership. - `transferOwnership()`, to transfer ownership to a new address. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority. 
The `addLiquidity` function calls the `router.addLiquidityETH` function with the `to` address specified as `owner` for acquiring the generated LP tokens from the pair. As a result, over time, the `owner` address will accumulate a significant portion of LP tokens. If the `owner` is an EOA (Externally Owned Account), mishandling its private key can have devastating consequences for the project as a whole.
All of the tokens are sent to the contract deployer when deploying the contract. This could be a centralization risk as the deployer can distribute all tokens without obtaining the consensus of the community.
| Address | Chain | Source code |
|---|---|---|
| 0xe75b…855a0xe75bf67df2388183d9b7714231996c937d4a855a | Chain: BNB Chain | Source code: Verified source |
| 0xd043…22a00xd04301b19e74efc656548be601a4f1fd37a822a0 | Chain: BNB Chain | Source code: Verified source |
1,044 projects reviewed · 1,375 reports · latest May 2025
See CertiK’s auditsSomething wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.
Tell us