Apeiron security record

Ethereum, Polygon (POS)apeironnft.comGitHub

As of 14 Oct 2026, Apeiron has 3 audit reports by 1 security firm on Trustblock; the latest is by CertiK, dated 4 Nov 2022. Those reports list no open critical findings.

Critical findings
No open critical findings
Across 3 reports.
Open the latest report
Your label, live
Get the label for your site

Record last updated . It holds audits and findings, contracts and incidents up to Oct 2026. Statuses are the security firms’ own. Trustblock does not review code.

Audits3

Newest first

AuditSecurity firmDateScopeCritical findingsReport
Apeiron - Sanctuary ContractSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com
ApeIron - Token ContractSecurity firm: CertiKDate: Scope: Files named in the report2 open critical findingsOpen · skynet.certik.com
ApeIron - Audit 3Security firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com

Findings19

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

SeverityOpenAcknowledgedFixed
Critical000
High060
Medium002
Low1010
MediumPotential Bypass of Blacklisted UsersApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

The blacklist feature is designed to prevent the blacklisted users from listing NFT/ERC1155 tokens by validating the following **require** statement. ```solidity require( !blacklist.blacklistedNFT(msg.sender, address(_nftAddress), _nftId), "Nft is blacklisted" ); ``` However, this feature can be bypassed by using the `transferFrom()` function defined in `ERC721.sol` and `ERC1155.sol`. The blacklisted user could transfer NFT/ERC1155 tokens to another account and use that account to list NFTs instead.

Open the report
MediumUninformed Users Can Buy Blacklisted NFTsApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

If a NFT/ERC1155 token is blacklisted *after* being listed, then an uninformed user can still successfully purchase the blacklisted token.

Open the report
LowUnchecked ERC-20 `transfer()`/`transferFrom()` CaApeiron - Sanctuary Contract · CertiK · 4 Nov 2022Fixed

The return value of the transfer()/transferFrom() call is not checked. ```solidity=163 token.transferFrom(buyer, address(this), price); ``` --- ```solidity=231 IERC20(tokenAddress).transfer(wallet, amount); ``` --- ```solidity=256 aprsToken.transferFrom(userAddress, address(this), _aprsPrice); ``` --- ```solidity=259 animaToken.transferFrom( userAddress, address(this), _animaPrice ); ``` --- ```solidity=632 IERC20(tokenAddress).transfer(wallet, amount); ```

Open the report
LowComparison to Boolean ConstantApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

Boolean constants can be used directly and do not need to be compared to `true` or `false`.

Open the report
LowCorner Case Logic Issue in `Blacklist.sol`ApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

The constant `ANY_TOKEN_ID` is equal to the max `uint256` value. Throughout the contract, `ANY_TOKEN_ID` is used to represent blacklisting *ALL* IDs for an NFT/ERC1155 address for a specific user. However, if a user genuinely owns the ID equal to the max `uint256` value of an NFT/ERC1155 address and that ID is blacklisted by `Blacklist.sol`, then the function `blacklistedNFT()` would mistakenly blacklist all the users other token IDs from also being listed on `MarketPlace.sol` and `MarketPlace1155.sol`. Therefore, blacklisting the ID equal to the max `uint256` value would also incorrectly blacklist all the other IDs for a user.

Open the report
LowMissing Emit EventsApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

There should always be events emitted in the sensitive functions that are controlled by centralization roles.

Open the report
LowMissing Upper BoundApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

In the current implementation, `platformFeePercent` can be set as much as 2^256-1. This can lead to a revert in functions `buyAuctionItem()` and `buyItem()` if `platformFeePercent` is set to be greater than `10000` because the logic during the `sellerRecieve` calculation attempts to subtract `platformFeePercent` from `percentMaxValue` (A constant set to value `10000`). ```solidity function buyItem(...){ ... uint256 sellerReceive = (targetPrice * (percentMaxValue - platformFeePercent)) / percentMaxValue; ... } ``` This situation will automatically revert due to arithmetic underflow in Solidity Versions `^0.8.0`. As a consequence, a revert in the functions `buyAuctionItem()` and `buyItem()` will prevent users from purchasing any listed NFT/ERC1155 tokens.

Open the report
LowMissing Zero Address ValidationApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

Addresses should be checked before assignment or external call to make sure they are not zero addresses. --- `_payoutWalletAddress` in contract `MarketPlace.sol` is not zero-checked before being used. ```solidity=200 payoutWalletAddress = _payoutWalletAddress; ``` --- `_payoutWalletAddress` in contract `MarketPlace1155.sol` is not zero-checked before being used. ```solidity=230 payoutWalletAddress = _payoutWalletAddress; ```

Open the report
LowReturn Value Not HandledApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

The return value of an external call is not stored in a local or state variable. In both linked locations the function `allowance()` is called, but its return value is never utilized. --- In contract `MarketPlace.sol`: ```solidity=214 token.allowance(msg.sender, address(this)); ``` --- In contract `MarketPlace1155.sol`: ```solidity=244 token.allowance(msg.sender, address(this)); ```

Open the report
LowTautologyApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

The linked statement compares a `uint256` variable to be less than or equal to 0. Since a unsigned integer cannot be less than 0, it is unnecessary to check if the variable is less than 0.

Open the report
Show 2 more
LowUnchecked ERC20 `transfer()`/`transferFrom()` CalApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

The return value of the `transfer()`/`transferFrom()` calls is not checked. --- In contract `MarketPlace.sol`: ```solidity=368 token.transferFrom(msg.sender, listedItem.seller, sellerReceive); ``` ```solidity=369 token.transferFrom( msg.sender, payoutWalletAddress, payoutWalletReceive ); ``` --- In contract `MarketPlace1155.sol`: ```solidity=373 token.transferFrom(msg.sender, listedItem.seller, sellerReceive); ``` ```solidity=374 token.transferFrom( msg.sender, payoutWalletAddress, payoutWalletReceive ); ```

Open the report
LowUsers can List/Purchase Zero Tokens in Contract `ApeIron - Audit 3 · CertiK · 11 Oct 2022Fixed

In contract `MarketPlace1155.sol`, the functions `listItem()` and `buyItem()` does not check if the amount of ERC1155 tokens being listed/purchased is greater than 0. A user may accidentally attempt to purchase 0 ERC1155 token in exchange for a non-zero amount of ERC20 tokens.

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="apeiron"
></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