Galactix Zone v2

CertiKFiles named in the report

CertiK reviewed Galactix Zone (Galactix Zone v2) on 25 Sep 2023: 13 findings, 0 critical; 3 marked fixed, 4 acknowledged, 6 open.

No open critical findings
Open the reportOpen Galactix Zone’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings13

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High040
Medium001
Low602
HighCentralization RisksAcknowledged

In the contract `GalactixZoneToken` the role `_owner` has authority over the functions shown in the diagram below. - `function setPause()`: Modifies the pause status of the contract. When the contract is paused, only addresses that are not the `owner()` and are added to the `isPauseExempt` mapping can transfer tokens to addresses that are not the `owner()`. - `function updatePauseExempt()`: Adds or removes an address from the `isPauseExempt` mapping. Addresses in the `isPauseExempt` mapping are allowed to execute token transfers when the contract is paused. - `function updateTaxExempt()`: Adds or removes an address from the `isTaxExempt` mapping. Only addresses in the `isTaxExempt` mapping can execute token transfers without paying taxes (common tax and owner tax) when transacting with **POOL** addresses. - `function updateLiquidityPoolAddresses()`: Adds or removes an address from the `liquidityPoolAddresses` mapping. Addresses not in the `isTaxExempt` mapping need to pay taxes if they have token transfers with addresses in the `liquidityPoolAddresses` mapping. - `function batchAirdrop()`: Allows the `owner()` role to send any amount of `GXZ` tokens in bulk to multiple addresses. - `function setAntisnipeDisable()`: Disables the calling of third-party dependencies via the `IAntisnipe` interface. - `function setAntisnipeAddress()`: Modifies the implementation of the third-party contract called via the `IAntisnipe` interface. - `function setCommonTaxRate()`: Sets the tax rate for **COMMON TAX**. - `function setOwnerTaxRate()`: Sets the tax rate for **OWNER TAX**. - `function setCommonTaxRecipient()`: Sets the recipient address for **COMMON TAX**. - `function setOwnerTaxRecipient()`: Sets the recipient address for **OWNER TAX**. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/a62d54f4485d40c1b5b926b92d9b0af2/diagrams/centralization_GalaxticToken-GalactixZoneToken-_owner.svg)

HighCentralized Control of Contract UpgradeAcknowledged

`GalactixZoneToken` is an upgradeable contract, the owner can upgrade the contract without the community's commitment. If an attacker compromises the account, he can change the implementation of the contract and drain tokens from the contract.

HighInitial Distribution Centralization RiskAcknowledged

All of the `GalactixCoin` tokens are sent to the one externally-owned account (EOA) address. ```solidity=132 _mint(_admin, _totalSupply); ``` And, there is a privileged function `batchAirdrop()` which allows the role `owner` to transfer any amount of `GXZ` tokens to any address in the batch. ```solidity=328 function batchAirdrop( address[] memory _airdropAddresses, uint256[] memory _airdropAmounts ) external onlyOwner { if (_airdropAddresses.length != _airdropAmounts.length) { revert('Addresses and amounts must be equal length'); } if (!locked) { _batchAirdrop(_airdropAddresses, _airdropAmounts); } } function _batchAirdrop(address[] memory _addresses, uint256[] memory _amounts) private lockFunction { uint256 senderBal = _balances[_msgSender()]; uint256 totalSent = 0; uint256 arraySize = _addresses.length; for (uint256 i = 0; i < arraySize; ++i) { totalSent += _amounts[i]; _balances[_addresses[i]] += _amounts[i]; emit Transfer(_msgSender(), _addresses[i], _amounts[i]); } if (senderBal < totalSent) revert('Insufficient balance from airdrop instigator'); uint256 newBalance = senderBal - totalSent; _balances[_msgSender()] = newBalance; emit AirDrop(_msgSender(), totalSent, arraySize); } ``` This is a centralization risk because the owner(s) of the EOAs can distribute tokens without obtaining the consensus of the community. Any compromise to the owner's account allows a hacker to steal and sell tokens on the market, resulting in severe damage to the project.

HighPausing Centralization RiskAcknowledged

In the contract `GalactixZoneToken`, the role `owner()` has the authority to update the status of the `_requireNotPaused` function and further pause/resume the functionality of the `_transfer` function. Any compromise to the private key of the `owner` may allow hackers to take advantage of this authority and allow/prevent external user access to the sensitive functionalities controlled by the `_requireNotPaused` function.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (3)

  • contracts/GalaxticToken.sol
  • contracts/Whitelist.sol
  • contracts/utils/LockableFunction.sol

Part of Galactix Zone’s security record

Galactix Zone
Audits2 audits by 1 firmLast audit Sep 2023, by CertiK.
Critical findingsNo open critical findingsAcross the 2 reports, 1 critical finding was reported. It is marked fixed by the firm that reported it.
Open Galactix Zone’s security record

Security firm

CertiK

1,044 projects reviewed · 1,375 reports · latest May 2025

See CertiK’s audits

Something 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