Sandbox V1

CertiKFiles named in the report

CertiK reviewed The Sandbox (Sandbox V1) on 7 Jan 2022: 20 findings, 0 critical; 9 marked fixed, 11 open.

No open critical findings
Open the reportOpen The Sandbox’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings20

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

SeverityOpenAcknowledgedFixed
Critical000
High001
Medium001
Low1107
HighRestrict access for `burnFrom()`Fixed

The function `burnFrom(from, id)` will enable anyone to burn the item, when the item id's operator is set to its owner.

MediumAccess modifier should be 'internal' instead of 'Fixed

The _burn() function has a 'public' access modifier, which might be invoked by any address.

LowFunction Visibility Optimization `_transferFrom`Fixed

The check for the validity of the transfer is missing in the function before making modifications to states. In the current code, _checkTransfer() is called before each call of _transferFrom() so the code is safe. However, this pattern is not guaranteed in future implementations

LowMissing Input ValidationFixed

The given input `to` is missing the check for the non-zero address.

LowMissing Return Value HandlingFixed

In the function balanceOf the return value is missing in the function declaration.

LowProper usage of approveForFixed

In the function `approveFor`, it can extracted as a common internal function_approveFor() for better code reusability.

LowUpgradable contracts versionFixed

According to the package.json, it seems the codebase referenced the library `@openzeppelin/contracts-upgradeable" with a version higher than "^4.0.0". It called us the attention here because openzeppelin released a hotfix for UUPS contract vulnerability for contract version v4.1.0 to v4.3.1. back in September this year. Reference: https://forum.openzeppelin.com/t/security-advisory-initialize-uups-implementation-contracts/15301

LowVariable could be declared as `constant`Fixed

the statemnt `408 (size of the land) is hard coded` could be declared as `constant` since these state variables are never to be changed.

LowVariable could be declared as `uint256`Fixed

The variable x,y,size are using `uint16`, which might cause additional type casting cost.

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

  • solc_0.5/Land/erc721/ERC721BaseToken.sol
  • solc_0.5/Land/erc721/LandBaseToken.sol
  • solc_0.5/contracts_common/UpgradableProxy/ProxyAdmin.sol
  • solc_0.5/contracts_common/BaseWithStorage/Admin.sol
  • solc_0.5/contracts_common/UpgradableProxy/AdminUpgradeabilityProxy.sol
  • solc_0.5/LandSale/LandSaleWithETHAndDAI.sol
  • solc_0.5/Land.sol
  • solc_0.5/LandSale/LandSale.sol
  • solc_0.5/contracts_common/BaseWithStorage/MetaTransactionReceiver.sol

Part of The Sandbox’s security record

The Sandbox
Audits8 audits by 2 firmsLast audit Aug 2023, by OpenZeppelin.
Critical findingsNo open critical findingsAcross the 8 reports, 1 critical finding was reported. It is marked fixed by the firm that reported it.
Open The Sandbox’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