As of 3 Nov 2026, NeoSwap has 1 audit report on Trustblock, by Quantstamp, dated 13 Dec 2022. 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 |
|---|---|---|---|---|---|
| NeoSwap | 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 | 0 |
| Medium | 0 | 0 | 1 |
| Low | 3 | 0 | 11 |
In the function `claim_sol()`, an error can be raised with a message that does not describe the situation accurately: * the error `SumNotNull` is raised instead of an error mentioning that there is an insufficient amount of lamports in the escrow. * the error `NotReady` is raised instead of the error `NoSend`. Additionally, the message of the error `UnexpectedState` (`"The status given is not correct"`) is not always aligned with the situation when that error is raised. It is accurate in the function `init_initialize()` when it describes an object sent by the user. However, it can also describe objects currently stored in the swap data account. In that case, the status is not "given" by the user but is already stored on-chain. This is also the case in the functions `initialize_add()`, `initialize_add()`, `cancel_sol()`, `deposit_nft()`, `deposit_sol()` and `validate_deposit()`. These discrepancies could negatively affect troubleshooting.
Open the reportIt is important to validate inputs, even if they only come from trusted addresses, to avoid human error. In particular: 1. the addresses `owner` and `destinary` of a new item can be the same in the functions `init_initialize()` and `initialize_add()`. 1. items can be accepted with an amount of `0` in the functions `init_initialize()` and `initialize_add()`, because the functions `is_positive()` and `is_negative()` return `false` for a value of `0`. 1. negative `amount` values are accepted in `init_initialize()` in case `is_nft` is `true`. 1. since the `sent_data.items[0]` entry in the `init_initialize()` function is supposed to be the swap fee, Sol deposits with a positive `amount` should probably not be allowed.
Open the reportProperly verifying the input accounts is one of the most important steps when trying to secure a Solana program. Anchor enforces this by requiring a `/// CHECK:` annotation with the reason for why an account does not use a checked type. The code base uses many unchecked accounts without providing a reason for why no checks are required or what checks are performed manually, requiring to build with the `--skip-lint` flag.
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="neoswap"></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