NiftyApes security record

As of 3 Nov 2026, NiftyApes has 1 audit report on Trustblock, by Quantstamp, dated 20 Apr 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
NiftyApes - Seller FinancingSecurity firm: QuantstampDate: Scope: Files named in the reportNo open critical findingsOpen · certificate.quantstamp.com

Findings20

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

SeverityOpenAcknowledgedFixed
Critical000
High004
Medium001
Low186
Low`withdrawOfferSignature()` Vulnerable to Front-RunningNiftyApes - Seller Financing · Quantstamp · 20 Apr 2023Acknowledged

`withdrawOfferSignature()` is vulnerable to front-running. If a seller submits a transaction calling `withdrawOfferSignature()` to the mempool on an undesirable existing offer, a savvy witnesser could see this and buy the offer prior to the cancellation. This can result in sellers being forced to finance NFTs on Offers that they intend to keep or are no longer desirable due to market conditions.

Open the report
LowA Buyer May Be Able to Make Free PaymentsNiftyApes - Seller Financing · Quantstamp · 20 Apr 2023Acknowledged

Payouts to the seller in `_makePayment()` are done through a call to `_conditionalSendValue()`, which refunds the buyer if the seller cannot receive ETH payments. In this scenario, `_makePayments()` considers the principal and interest payments fulfilled regardless of whether the seller received any compensation. A buyer could exploit this situation and continuously send payments (which will be sent back to them) until they have completed the payment plan and essentially receive the NFT cost-free.

Open the report
LowApplication Monitoring Can Be Improved by Emitting More EventsNiftyApes - Seller Financing · Quantstamp · 20 Apr 2023Acknowledged

In order to validate the proper deployment and initialization of the contracts, it is a good practice to emit events. Also, any important state transitions can be logged, which is beneficial for monitoring the contract, and also tracking eventual bugs or hacks. Below we present a non-exhaustive list of events that could be emitted to improve application management: 1. Contract address changes: * `SellerFinancing`: * `updateRoyaltiesEngineContractAddress()` * `updateDelegateRegistryContractAddress()` * `updateSeaportContractAddress()` * `updateWethContractAddress()` * `MarketplaceIntegration`: * `updateSellerFinancingContractAddress()` * `updateMarketplaceFeeRecipient()` 1. Pausing or unpausing of features: * `SellerFinancing` and `MarketplaceIntegration`: * `pause()` * `unpause()` * `pauseSanctions()` * `unpauseSanctions()` 1. Changes to the fee structure: * `MarketPlaceIntegration`: * `updateMarketplaceFeeBps()`

Open the report
LowExcessive Ether Funds are Refunded to the `buyer` Rather than `msg.sender`NiftyApes - Seller Financing · Quantstamp · 20 Apr 2023Acknowledged

In `buyWithFinancing()`, if `msg.value` exceeds `offer.downPaymentAmount()`, the refund is issued to the `buyer` rather than the `msg.sender`. According to the NiftyApes team, this is done so that buyers receive their refund for purchases made through the `MarketplaceIntegration` contract, which collects a fee before making a call to `SellerFinancing.buyWithFinancing()`. This use case works because the `MarketplaceIntegration` contract acts as an intermediary contract between the user and `SellerFinancing`, and passes along the full `msg.value`. Users interacting directly with the `SellerFinancing` contract under a different paradigm should be aware that excessive payments are sent directly to the `buyer`. For example, if a different user makes an excess payment on behalf of the `buyer`, the excess funds are sent to the `buyer` rather than user.

Open the report
LowExpiration Date for Protocol SupportNiftyApes - Seller Financing · Quantstamp · 20 Apr 2023Acknowledged

This implementation casts all timestamps to `uint32`, which will support UNIX timestamps up until January 19, 2038 at 3:14:07 UTC. After that, this protocol will no longer support these timestamps.

Open the report
LowIt Is Possible to Transfer Buyer Tickets for Defaulted LoansNiftyApes - Seller Financing · Quantstamp · 20 Apr 2023Acknowledged

Ticket transfers are still possible after a loan has defaulted. Buyer tickets for defaulted loans hold no value as their NFT's seized at any time.

Open the report
LowLoss of Precision Due to Division before MultiplicationNiftyApes - Seller Financing · Quantstamp · 20 Apr 2023Acknowledged

Division before multiplication may result in a loss of precision when the operations are carried over integer numbers. `SellerFinancing.calculateMinimumPayment()`has a multiplication done after division when calculating `periodInterest`.

Open the report
LowSeller Cannot Make Same Offer TwiceNiftyApes - Seller Financing · Quantstamp · 20 Apr 2023Acknowledged

If an offer's signature gets used once or has been previously canceled, the seller will be unable to make the same offer again, even if it is intentional. The impact is low since they can make a minor change (e.g. increase `expiration` by a single second) and have it be different.

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