Tengoku Senso security record

As of 3 Nov 2026, Tengoku Senso has 1 audit report on Trustblock, by Quantstamp, dated 28 Jul 2023. That report lists no open critical findings.

Critical findings
No open critical findings
In 1 report.
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
Tengoku SensoSecurity firm: QuantstampDate: Scope: Repository at commit 68f99d3No open critical findingsOpen · certificate.quantstamp.com

Findings8

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

SeverityOpenAcknowledgedFixed
Critical000
High004
Medium000
Low004
HighAnyone Can Mint an Arbitrary Number of NFTsTengoku Senso · Quantstamp · 28 Jul 2023Fixed

The function `TGKNFTContract.mintNFT()` does not restrict which addresses can mint NFTs since this function is public and has no access control. Per the client's explanation, only the owner of `TGKNFTContract` should be able to call `mintNFT()`.

Open the report
HighMissing Test Suite and Limited Documentation Makes It Hard to Assess that the System Works as ExpectedTengoku Senso · Quantstamp · 28 Jul 2023Fixed

The system documentation found in the file `README.md` is insufficient and does not clearly describe how the system is expected to work. Still, the team provided a more complete explanation during the audit.</br> Also, the codebase does not contain a test suite. This has two main consequences: * it is not possible to check that the current version of the codebase behaves as expected. * any breaking change added in the context of a system update could remain undetected by the team.

Open the report
HighThe Contract `TGKMainContract` Is Not Able to Receive NFTs via Safe TransfersTengoku Senso · Quantstamp · 28 Jul 2023Fixed

The contract `TGKMainContract` is expected to receive ERC721 NFT tokens. These tokens can usually be received via different functions. Some of them, like `safeMint()` or `safeTransferFrom()` first check that the receiver address, if it is a contract, implements the function `IERC721Receiver.onERC721Received()` [described here](https://docs.openzeppelin.com/contracts/3.x/api/token/erc721#IERC721Receiver). If not, the NFT can remain stuck in the receiver contract. As the contract `TGKMainContract` does not implement the function `IERC721Receiver.onERC721Received()`, it will not be able to receive NFT tokens via any kind of safe transfer.

Open the report
HighThe Contract `TGKNFTContract` Does Not CompileTengoku Senso · Quantstamp · 28 Jul 2023Fixed

The contract `TGKNFTContract` does not compile due to incorrect inheritance declarations and gives two errors: ``` 1. Error (4327): Function needs to specify overridden contract "ERC721URIStorage". => needs to override ERC721URIStorage (since it is explicitly inherited) 2. Error (2353): Invalid contract specified in override list: "ERC721". => should not override ERC721 (since it is not explicitly inherited) ```</br> In detail, the contract `TGKNFTContract` does not inherit `ERC721`, and the function `supportsInterface()` is missing `ERC721URIStorage` from its override list.

Open the report
LowMissing Input ValidationTengoku Senso · Quantstamp · 28 Jul 2023Fixed

In the `TGKMainContract.withdraw()` function, the `to` address is not validated against the zero address. As a result, an accidental loss of funds is possible.

Open the report
LowPotential Use of Compiler Version with Known BugsTengoku Senso · Quantstamp · 28 Jul 2023Fixed

While the Solidity compiler version is not given, the pragma for the contracts is written as `^0.8.9`, allowing the contracts to be compiled using versions below `v0.8.16`, which all have known compiler bugs. A list of known bugs in each specific version can be found [here](https://github.com/ethereum/solidity/blob/develop/docs/bugs_by_version.json).

Open the report
LowPrivileged Roles and OwnershipTengoku Senso · Quantstamp · 28 Jul 2023Fixed

The protocol owner has a privileged role and can execute specific functions. Therefore, users are exposed to the risk of being attacked if the privileged roles are malicious or compromised. The contract `TGKMainContract` has the following owner privileges: 1. The owner can withdraw any amount owned by the contract to any arbitrary address via the function `withdraw()`. 2. The owner can transfer any amount of any ERC20 token owned by the contract to any arbitrary address via the function `transferERC20()`. 3. The owner can transfer any ERC721 token owned by the contract to any arbitrary address via the function `transferNFT()`. Note that the owner of the contract is the address who deployed the contract and it cannot be updated.

Open the report
LowUsing `transfer()` for ETH May Fail in The FutureTengoku Senso · Quantstamp · 28 Jul 2023Fixed

The function `address.transfer()` assumes a fixed amount of gas to execute the call. The use of that function protects against reentrancy attacks. The default amount of gas, however, may change in the future. In the worst case, it could lead to failed transfers.

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="tengoku-senso"
></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