Versus-X security record

Polygon (POS)versusx.io

As of 3 Nov 2026, Versus-X has 1 audit report on Trustblock, by CertiK, dated 29 Mar 2024. That report lists no open critical findings.

Critical findings
No open critical findings
In that report, 4 critical findings were reported. Each is marked fixed by the firm that reported it. See the findings
Open the latest report
Your label, live
Get the label for your site

Record last updated . It holds audits, findings and contracts up to Nov 2026, and incidents up to Oct 2026. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
Versus-X auditSecurity firm: CertiKDate: Scope: Repository at commit f5045b94 critical findings, fixedOpen · skynet.certik.com

Findings11

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

SeverityOpenAcknowledgedFixed
Critical004
High012
Medium000
Low004
Critical`approveFrom()` can be used to steal tokensVersus-X audit · CertiK · 29 Mar 2024Fixed

The function `approveFrom()` is a public function without any access control. It can be called by anyone to manipulate allowance information between arbitrary token owners and spenders such that hackers can easily steal tokens from any token owner.

Open the report
Critical`mintVersusxToUser()` does not have access controVersus-X audit · CertiK · 29 Mar 2024Fixed

The public function `mintVersusxToUser()` does not have any access control such that anyone can call it to mint arbitrary amount of tokens to any address. And it does not update total supply after minting, which may cause other critical bugs.

Open the report
CriticalCentralization Related RisksVersus-X audit · CertiK · 29 Mar 2024Fixed

In the contract **VERSUSX**, the role **MetaKeepLambdaOwner** has authority over the following functions: - setEskillzBet() In the contract **VERSUSX**, the role **Owner** has authority over the following functions: - mintMore() In the contract **VERSUSX**, the address **ESkillzBet** has authority over the following functions: - mintMore() Any compromise to the **MetaKeepLambdaOwner/Owner/ESkillzBet** account may allow a hacker to take advantage of this authority and mint an arbitrary amount of tokens to any address.

Open the report
CriticalLow level call payload is not properly encoded anVersus-X audit · CertiK · 29 Mar 2024Fixed

The payload of low level call should be constructed using one of `abi.encodeWithSelector()`, `abi.encodeWithSignature()`, `abi.encodeCall()`. If the first parameter is function signature string, then `abi.encodeWithSignature()` must be used. `abi.encodePacked()` only concatenates parameters tightly; it does not translate function signature to function selector and does not have proper padding for `userAddress` which is required for low level call payload. Even if an user provides correct function signature and user address, the identified low level call will always fail. And even worse, the function signature is not restricted and can point to any function, a hacker can construct a malicious function signature which points to functions like `approveMax()` to possibly steal tokens from the contract.

Open the report
High`mintMore()` does not update total supply of tokeVersus-X audit · CertiK · 29 Mar 2024Fixed

When tokens are minted, `_totalSupply` must be updated to reflect the total amount of existing tokens. Otherwise there will be inconsistency between the sum of token balances from all owners and `_totalSupply`, which may cause critical bugs.

Open the report
HighPotential Lack of Access ControlVersus-X audit · CertiK · 29 Mar 2024Fixed

The following three functions can be invoked to call the "CreateSPGame/CreateMP/JoinMPGame" function in the "ESkillzBet" contract. The implementation of these functions is unknown; however, based on the function names, they might not be functions that should be accessible to everyone: * approveAndCreateSPGame * approveAndCreateMPGame * approveAndJoinMPGame

Open the report
LowNative tokens may be locked and lost in the contrVersus-X audit · CertiK · 29 Mar 2024Fixed

In the contract `VERSUSX`, there are payable `receive()` and `executeMetaKeepLambdaTransaction()` functions which can receive native tokens; but there is no way to transfer native tokens out of the contract. Thus all the received native tokens will be locked and lost in the contract.

Open the report
LowNon-standard EIP712 implementationVersus-X audit · CertiK · 29 Mar 2024Fixed

The identified EIP712 implementation in the code is not standard compliant: it is clearly different from OpenZeppelin EIP712 implementation. It may lead to major compatibility issue.

Open the report
LowOut-of-Scope DependenciesVersus-X audit · CertiK · 29 Mar 2024Fixed

The contract declares and interacts with the out-of-scope contract `ESkillzBet`. The scope of the audit treats out-of-scope contracts as black boxes and assumes their functional correctness. However, in the real world, out-of-scope contracts can be compromised and this may lead to lost or stolen assets.

Open the report
LowWhy Does the Contract Need to Inherit "MetaKeepLaVersus-X audit · CertiK · 29 Mar 2024Fixed

Why does the VERSUSX contract need to inherit the "MetaKeepLambda" contract? It appears that the only feature utilized is the access control (e.g., onlyMetaKeepLambdaOwner), which could be achieved with the `Ownable` or `AccessControl` modules from the OpenZeppelin library. The auditor would like to know why the inheritance of "MetaKeepLambda" is deemed necessary.

Open the report

Contracts

No deployed address is recorded for these audits.

The reports name a repository or files. Open a report to see its scope.

The repositories and files the reports name

Show this on your site

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.

Content

Facts

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.

Fixed as
Language

Style

Layout
Theme
Accent
Corners

Format

Size
Date
Embed as
HTML
<head>
<script src="https://widget.trustblock.run/project-widget.min.js" defer></script>
</head>
<body>
<div
data-tb-project-widget
data-tb-project-slug="versus-x"
></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