As of 3 Nov 2026, M20 has 1 audit report on Trustblock, by CertiK, dated 17 Oct 2023. That report lists no open critical findings.
Record last updated . It holds audits, findings and contracts up to Nov 2026, and incidents up to Oct 2026. Trustblock does not review code.
Newest first
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 0 | 5 |
| Medium | 0 | 0 | 2 |
| Low | 7 | 0 | 5 |
Repository: - mcoin-evm Commit hash: - [`557f8d07f7b84fb77002e4d39e7c701ebc1f9416`](https://github.com/metherdev/mcoin-evm/tree/557f8d07f7b84fb77002e4d39e7c701ebc1f9416) Files: - app/app.go - tests/e2e/upgrade/manager.go When iterating over a map, the order in which the elements are returned may not be deterministic. It means that it could not rely on the value returned which could introduce non-determinism which is a very critical issue if it is involved in the consensus process, resulting in consensus breaking. The codebase has been examined, and it appears that the files mentioned above utilize map iteration in a correct manner. However, it has been observed that the underlying function calls or methods do not directly affect the key process. As a result, the severity of any potential issues is considered informational, serving as a warning for awareness. Although the severity is low, it is still advisable to make some adjustments to these code sections if possible. This can help ensure code clarity, maintainability, and to avoid potential issues that may arise in the future.
Open the reportRepository: - mcoin-evm Commit hash: - [`557f8d07f7b84fb77002e4d39e7c701ebc1f9416`](https://github.com/metherdev/mcoin-evm/tree/557f8d07f7b84fb77002e4d39e7c701ebc1f9416) Files: - app/ante/vesting.go The `VestingDelegationDecorator` is used to check the vested coins being delegated especially for the vesting account. However, lack the check of the account balance towards the unvested coins during period scan could lead to some outcome unexpectedly. Only the coins in the account balance could be taken as spendable rather than the amount vested already. In the commit, some references has been removed, and the code volatile currently, recommend to refactor this code at first before further actions.
Open the reportRepository: - mcoin-evm Commit hash: - [`557f8d07f7b84fb77002e4d39e7c701ebc1f9416`](https://github.com/metherdev/mcoin-evm/tree/557f8d07f7b84fb77002e4d39e7c701ebc1f9416) Files: - x/revenue/keeper/evm_hooks.go The function `PostTxProcessing()` does not check if `params.DeveloperShares` is zero, if `params.DeveloperShares` is zero `PostTxProcessing()` can return directly without calculating the developer fee.
Open the reportRepository: - mcoin-evm Commit hash: - [`557f8d07f7b84fb77002e4d39e7c701ebc1f9416`](https://github.com/metherdev/mcoin-evm/tree/557f8d07f7b84fb77002e4d39e7c701ebc1f9416) Files: - x/claims/genesis.go `totalEscrowed` will be assigned 10000 at L35 directly, so the linked statements do not affect the functionality of the codebase and appear to be either remnants of test code or older functionality. ```go=15 func InitGenesis(ctx sdk.Context, k keeper.Keeper, data types.GenesisState) { totalEscrowed := sdk.ZeroInt() sumUnclaimed := sdk.ZeroInt() numActions := sdk.NewInt(4) // ensure claim module account is set on genesis if acc := k.GetModuleAccount(ctx); acc == nil { panic("the claim module account has not been set") } // set the start time to the current block time by default if data.Params.AirdropStartTime.IsZero() { data.Params.AirdropStartTime = ctx.BlockTime() } k.SetParams(ctx, data.Params) escrowedCoins := k.GetModuleAccountBalances(ctx) if escrowedCoins != nil { totalEscrowed = escrowedCoins.AmountOfNoDenomValidation(data.Params.ClaimsDenom) } totalEscrowed = sdk.NewInt(10000) //... }
Open the reportRepository: - mcoin-evm Commit hash: - [`557f8d07f7b84fb77002e4d39e7c701ebc1f9416`](https://github.com/metherdev/mcoin-evm/tree/557f8d07f7b84fb77002e4d39e7c701ebc1f9416) Files: - ./.../*test.go The test coverage for this project is relatively low and a large number of test cases run failed, which may bring unexpected errors in mainnet network.
Open the reportRepository: - mcoin-evm Commit hash: - [`557f8d07f7b84fb77002e4d39e7c701ebc1f9416`](https://github.com/metherdev/mcoin-evm/tree/557f8d07f7b84fb77002e4d39e7c701ebc1f9416) Files: - x/erc20/keeper/msg_server.go - x/erc20/proposal_handler.go - x/revenue/keeper/evm_hooks.go - x/revenue/keeper/msg_server.go - x/vesting/keeper/msg_server.go The `TypedEvents` implementation for event emitting is not so safe due to the bug in Ethermint RPCs, it is recommended to use the `EmitEvents` before further investigation.
Open the reportRepository: - mcoin-evm Commit hash: - [`557f8d07f7b84fb77002e4d39e7c701ebc1f9416`](https://github.com/metherdev/mcoin-evm/tree/557f8d07f7b84fb77002e4d39e7c701ebc1f9416) Files: - crypto/keyring/options.go The `sdkhd.Secp256k1` is a built-in algorithm from Cosmos SDK. Since Ethermint's client module is used, Update SupportedAlgosLedger values to `hd.EthSecp256k1` can be more friendly and portable to Ethereum. References: - https://github.com/evmos/evmos/pull/1165/files
Open the reportThe reports name a repository or files. Open a report to see its scope.
Is this your project? Show this record on your own website. The label states what the record holds, links to this page and updates by itself. It is free and needs no sign-in.
Automatic: the three strongest facts of this project’s own record (its last audit and two more), highlighted. They update with the record. Picking a fact turns Automatic off.
<head><script src="https://widget.trustblock.run/project-widget.min.js" defer></script></head><body><divdata-tb-project-widgetdata-tb-project-slug="m20"></div></body>
Paste the code where the label should appear. It uses no API credit and updates by itself.
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