As of 3 Nov 2026, NIRVANA has 1 audit report on Trustblock, by CertiK, dated 21 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 |
|---|---|---|---|---|---|
| Nirvana-Audit | Security firm: CertiK | Date: | Scope: Files named in the report | No open critical findings | Open · skynet.certik.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 3 | 0 |
| Medium | 0 | 0 | 0 |
| Low | 3 | 0 | 0 |
In the contract `HasMinters` the role `_owner` has authority over the functions shown below. - addMinters(): add minters who can mint tokens. - removeMinters(): remove minters who can mint tokens. In the contract `VanaToken` the role `_owner` has authority over the functions shown below. - start(): unpause token transaction. - stop(): pause token transaction. In the contract `VanaToken` the role `minter` has authority over the functions shown below. - mint(): mint tokens, the token supply won't exceed the max supply. However, the cumulative number of tokens minted may exceed the max supply since token holders can burn a certain number of tokens. Any compromise to the `_owner` or `minter` account may allow the hacker to take advantage of this authority.
Open the reportAll **_amount** tokens are sent to the contract deployer when deploying the contract. This is a potential centralization risk as the deployer can distribute **_amount** tokens without the consensus of the community.
Open the reportThe array’s `delete` function will only delete the data of the last item, but will not update the array length. As a result, the infinite loop would occur when removing minters. ### Infinite Loop Scenario 1. Add the following addresses to the `minters` collection. ```batch ["0xA", "0xB", "0xC"] ``` 2. Delete the first address from the `minters` collection. ```batch ["0xA"] ``` 3. After the execution of the codes from L38 to L45, the values of state variables, `minters` and `minter`, are as below: ```batch minters:["0xA", "0xB", "0xC"] minter:["0xA": false, "0xB": true, "0xC": true] ``` 4. Since the array’s `delete` function will not change the array length, the `minters.length` is still `3`. After the three loops of the `while` codes from L49 and L59, the values of state variables, `minters` and `minter`, are as below, and `i` equals `2`: ```batch minters:["0xC", "0xB", "0x0"] minter:["0xA": false, "0xB": true, "0xC": true] ``` 5. Now, the `while` loop enters an infinite loop because `i` always equals `2` and `minter[0x0]` always returns `false`.
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="nirvana"></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