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.
Record last updated . It holds audits, findings and contracts up to Nov 2026, and incidents up to Oct 2026. Trustblock does not review code.
Newest first
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| NiftyApes - Seller Financing | Security firm: Quantstamp | Date: | Scope: Files named in the report | No open critical findings | Open · certificate.quantstamp.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 0 | 4 |
| Medium | 0 | 0 | 1 |
| Low | 1 | 8 | 6 |
`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 reportPayouts 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 reportIn 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 reportIn `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 reportThis 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 reportTicket 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 reportDivision 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 reportIf 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 reportThe reports name a repository or files. Open a report to see its scope.
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.
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.
<head><script src="https://widget.trustblock.run/project-widget.min.js" defer></script></head><body><divdata-tb-project-widgetdata-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