NATIX Network security record

As of 3 Nov 2026, NATIX Network has 1 audit report on Trustblock, by CertiK, dated 19 Sep 2024. 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
NATIX Network - auditSecurity firm: CertiKDate: Scope: Not recorded (see the report)No open critical findingsOpen · skynet.certik.com

Findings15

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

SeverityOpenAcknowledgedFixed
Critical000
High010
Medium003
Low506
MediumCompilation FailureNATIX Network - audit · CertiK · 19 Sep 2024Fixed

The project failed to compile, and some of the dependencies may have problems. The details are as following dependency: ```toml spl-associated-token-account = { version = "2.3.1", features = [ "no-entrypoint" ]} ``` The issue should related to the version update on solana-program which caused the version of `spl-associated-token-account` to be yanked, more details can be found: https://github.com/solana-labs/solana-program-library/issues/6897

Open the report
MediumPotential Missing Link Between `program_account`NATIX Network - audit · CertiK · 19 Sep 2024Fixed

In the current implementation, the `program_account` refers to the pool account that holds staking information, while the `stake_account` refers to the token account that holds the staked tokens and rewards. However, the program allows multiple `program_account` and `stake_account` instances, which can cause confusion between different pools and token accounts. For example, UserA could stake using `program_account1` and `stake_account1`, but then withdraw using `program_account1` and `stake_account2`. To prevent this, each `program_account` should be explicitly linked to a specific `stake_account` to avoid any potential confusion.

Open the report
MediumWeak Validation on Token Account OwnerNATIX Network - audit · CertiK · 19 Sep 2024Fixed

The function `control_user_solana_address` in `src/control_user_solana_address.rs` performs a weak validation on the ownership of the user's associated token account. The current validation only checks if the user_account.key matches the expected address, but it doesn't ensure that the user_account is actually owned by the user. ```rust=25 if user_account.key != &address { return Err(ProgramError::InvalidAccountOwner); } ``` In Solana, associated token accounts can be transferred to other users, which means that the owner of the token account may not be the original user who created it. This weak validation can potentially allow unauthorized access or transfers of the associated token account. Reference: https://github.com/solana-labs/solana-program-library/issues/2640

Open the report
LowCancellation may be blocked due to stake amount lNATIX Network - audit · CertiK · 19 Sep 2024Fixed

The `cancel` function in cancel.rs allows users to cancel all their unstake requests. However, the function includes a call to `control_stake_amount` with None as the amount parameter after giving back the unstakes to the user's stake pool. The `control_stake_amount` function validates if the total stake amount for the user's address is within the configured limit. ```rust=38 if sum_stakes > staking_pool.config.max_stake_amount { return Err(ProgramError::Custom(102)); } ``` If canceling the unstake requests causes the total stake to exceed the limit, the control_stake_amount function would return an error, blocking the cancellation process. This means that users may be unable to cancel their unstake requests if doing so would cause their total stake to exceed the allowed limit. --- At the same time, the limitation on unique stakes (`config.maximum_stakers`) can be broken due to cancellation when a new user joins between the `unstack` and `cancel` periods. ```rust=32 for staker in staking_pool.stakers.iter().filter(|staker| staker.unstake_time == 0 && staker.stake_time > 0) { set.insert(staker.address); } set.len() ```

Open the report
LowMissing Address Check for Token ProgramNATIX Network - audit · CertiK · 19 Sep 2024Fixed

The address check is intended to verify that the input token program account is the legitimate token program (i.e., `spl_token::id()`) on Solana. However, the provided `token_program_account` does not perform this check, raising concerns about the validity of the account input by the user.

Open the report
LowMissing Owner Validation on `user_account` and `NATIX Network - audit · CertiK · 19 Sep 2024Fixed

The `user_account` and `stake_account` are treated as token accounts associated with the `natix_token_mint`. But before decoding them as a `TokenAccount`, there is no validation to confirm that its owner is the **Token Program**, which allows the user to input a malicious token account.

Open the report
LowMissing validation on mint account for `stake_tokNATIX Network - audit · CertiK · 19 Sep 2024Fixed

The mint validation for `stake_token_account` is missing which may allow user input an non-NATIX token account.

Open the report
LowPotential incorrect `forfeit_amount` implementatiNATIX Network - audit · CertiK · 19 Sep 2024Fixed

In the `withdraw.rs` file, line 72 calculates the total amount of tokens to be forfeited during a withdrawal in the staking contract: ```rust=72 forfeit_amount = forfeit_amount.checked_add((penalty.checked_sub(reward)).unwrap_or(0)).expect("Overflow during forfeit summation"); ``` However, there is a concern with this implementation: The penalty amount is subtracted from the reward amount using `penalty.checked_sub(reward)`. This means that an amount of tokens equal to the reward will remain in the stake account, mixing with the user's deposit and project rewards since it is not specifically tracked.

Open the report
LowUnbounded range for the interest rateNATIX Network - audit · CertiK · 19 Sep 2024Fixed

The current implementation of the staking program lacks validation or constraints while setting the staking rate. Consequently, it's possible to set a value greater than 100, allowing for an interest rate exceeding 100%.

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.

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="natix-network"
></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