Summary
100% of all REPORTED Findings have been addressed
- 0Risk Accepted
- 1Acknowledged
- 3Solved
- 4All Findings
- Critical0
- High0
- Medium0
- Low0
- Informational4
- 3Solved
- 1Ack.
INTRODUCTION#
N3XT engaged Halborn to perform a security assessment of their smart contracts on June 23rd, 2026. The assessment scope was limited to the smart contracts provided to Halborn. Commit hashes and additional details are available in the Scope section of this report.
The N3XT codebase in scope consists of NDDIDv2.sol, the v2 upgrade of the N3XT Digital Dollar Identity (NDDID); a UUPS-upgradeable, non-transferable (soulbound) ERC-721 identity NFT that gates the N3XT Digital Dollar (NDD) stablecoin, where transfers are only valid between holders of a valid identity. The v2 upgrade introduces the NAH allowlist, allowing role-gated addresses to count as valid transfer counterparties without holding an NDDID NFT, alongside a one-time initializeV2 step, monotonic-version and interface checks on upgrade authorization, and disabled token approvals.
ASSESSMENT SUMMARY#
Halborn was allocated 1 day for this engagement and assigned 1 full-time security engineer to conduct a comprehensive review of the smart contracts within scope. The engineer is an expert in blockchain and smart contract security, with advanced skills in penetration testing and smart contract exploitation, as well as extensive knowledge of multiple blockchain protocols.
The objectives of this assessment are to:
Identify potential security vulnerabilities within the smart contracts.
Verify that the smart contract functionality operates as intended.
In summary, Halborn identified several low-impact improvements that were completely addressed by the N3XT team. The recommendations where as follows:
Refine the renounceRole override so it does not block non admin role holders from renouncing their own roles.Return false rather than reverting when identity validation views receive the zero address.Document or guard the allowlist and mint mutual exclusivity workflow so a burned holder cannot be locked out of NFT re-issuance.Account for the EIP-7702 threat model when relying on the "one address = one identified entity" assumption that underpins NDD identity gating.
Post assessment, N3XT committed an additional change (d49827c) emitting a completion event for the no-op case when an address is already on the NAH allowlist. This change was reviewed against the last remediation commit (diff d51e391..d49827c), and introduces no logic or access-control modifications.
Scope#
Findings Overview#
# | Title | Severity | Score | Status |
|---|---|---|---|---|
HAL-01 | renounceRole Incorrectly Blocks DEFAULT_ADMIN_ROLE Holders from Renouncing Any Role | Informational | 0.5 | Solved06/25/2026 |
HAL-02 | validateTransferIdentities and validateIdentity Revert on address(0) Input Instead of Returning false | Informational | 0.4 | Solved06/25/2026 |
HAL-03 | Allowlist and Mint Mutual Exclusivity Creates Role-Coordination Deadlock Blocking NFT Re-Issuance After Burn | Informational | 0.2 | Solved06/25/2026 |
HAL-04 | EIP-7702 Weakens the "One Address = One Identified Entity" Assumption Underpinning NDD Identity Gating | Informational | 0.0 | Acknowledged06/25/2026 |
Disclaimer#
Halborn strongly recommends conducting a follow-up assessment of the project either within six months or immediately following any material changes to the codebase, whichever comes first. This approach is crucial for maintaining the project’s integrity and addressing potential vulnerabilities introduced by code modifications.
