Mavia Token

QuantstampFiles named in the report

Quantstamp reviewed Mavia Token on 6 Nov 2023: 9 findings, 0 critical; 4 marked fixed, 5 acknowledged.

No open critical findings
Open the reportOpen Mavia Token’s security record

Report hosted on certificate.quantstamp.com.

Trustblock does not review code.

Findings9

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

SeverityOpenAcknowledgedFixed
Critical000
High001
Medium030
Low023
MediumMaximum Transfer Amount Is BypassableAcknowledged

The state variable `tfMaxAmount` is used as a maximum Mavia token transfer cap for non-whitelisted addresses; this means that a single transfer of Mavia tokens cannot exceed the `tfMaxAmount`. While the `tfMaxAmount` cap limits the transfer amount for a single transfer, a user can simply transfer multiple times where the transfer amount of each transfer is less than `tfMaxAmount`. Therefore, the maximum transfer amount cap is easily bypassable by any user.

MediumPrivileged Roles and AccessAcknowledged

In this contract, the `_EDITOR_ROLE` and `DEFAULT_ADMIN_ROLE` are extremely privileged. Their implicit and explicit capabilities include, but are not limited to: 1. Transfer tokens between any two accounts. This can be achieved by setting a gateway address. 1. Blacklist any address and prevent them from transferring tokens. 1. Block further transfers for all users by increasing `tfStartTime` or setting `tfMaxAmount` to zero. 1. Allow users to circumvent transfer restrictions enforced with `tfStartTime` and `tfMaxAmount`. This can be achieved by whitelisting that user. These listed capabilities give both roles, `_EDITOR_ROLE` and `DEFAULT_ADMIN_ROLE`, the power to control the users and assets in circulation. Upon deployment, both roles are assigned to the deployer, as well as minting four million Mavia tokens as well.

MediumUsers Cannot Rely on Their Ability to Transfer TokensAcknowledged

Any Mavia token holder cannot rely on the ability to transfer their tokens, besides the fact that they can be blacklisted. Whenever the `tfStartTime` is increased above the current `block.timesamp` and `tfMaxAmount` is set to zero, they will not be able to transfer tokens anymore. According to the client, this functionality is used for these use cases: "before listing dex, or need time for investigating some hacking issue." However, the user cannot trust the deployer to use `fSetTradeTime()` in these cases only.

LowNo Additional Transfer Constraints when One Address Is WhitelistedAcknowledged

When the sending or receiving address is whitelisted, the additionally implemented transfer restrictions in `_transfer()` are not enforced. This is because those constraints are only checked in case the following statement holds true, meaning both addresses are NOT whitelisted: ``` !whitelist[_pSender] && !whitelist[_pRecipient] ``` As a result, a user can send assets to a whitelisted address without any constraints on the start time and amount.

LowRenounceable Privileged RolesAcknowledged

If the `DEFAULT_ADMIN_ROLE` renounces its privileged role, the `MaviaToken` contract will have functionality that is no longer accessible. Consequently, critical protocol actions are no longer executable, and users could be prevented from transferring their Mavia tokens.

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 (1)

  • src/active/MaviaToken.sol

Part of Mavia Token’s security record

Mavia Token
Audits1 audit by 1 firmLast audit Nov 2023, by Quantstamp.
Critical findingsNo open critical findingsIn 1 report.
Open Mavia Token’s security record

Security firm

Quantstamp

236 projects reviewed · 332 reports · latest Oct 2026

See Quantstamp’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