Nayms 2024 (Retainer)

QuantstampRepository at commit 2f08d24

Audit

Part of Quantstamp’s retainer series

Quantstamp reviewed Nayms 2024 (Retainer) on 3 May 2024: 33 findings, 0 critical; 18 marked fixed, 11 acknowledged, 4 open.

No open critical findings
Open the reportOpen Nayms 2024 (Retainer)’s security record

Report hosted on certificate.quantstamp.com.

Trustblock does not review code.

Findings33

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

SeverityOpenAcknowledgedFixed
Critical000
High004
Medium202
Low21112
Low[PR-100] Consequences of using rebase tokens for dividendsAcknowledged

If a rebase token is used as a dividend token, then the dividend bank would collect the interest of any unclaimed dividends. As a result, users would need to claim dividends if they want to gain interest on these tokens. The severity level is undetermined since it is unclear if rebase tokens will be used as dividend tokens.

LowAny Address Holding P-Tokens Can Transfer It to Any Other AddressAcknowledged

Any address holding p-tokens can transfer them to any other object that represents an address, with a transfer using the contract `ERC20Wrapper`. This could have an unexpected impact if some addresses should only be expected to receive p-tokens after specific functions are executed and not via direct transfers.

LowDefault fee schedule may be reset or changed by system adminsAcknowledged

While function `LibFeeRouter._removeFeeSchedule()` explicitly prevents the removal of default fee schedules (`LibConstants.DEFAULT_FEE_SCHEDULE`), no such check is performed in function `LibFeeRouter._addFeeSchedule()`, allowing system admins to indirectly reset or modify the default fee schedules.

LowFunction `init()` can be front-run by anyoneAcknowledged

In the contract `InitDiamond`, the function `init()` can be front-run by anyone once the contract is deployed.

LowImpact of Enabling the Same Staking Token on Multiple EntitiesAcknowledged

It is possible to enable the staking feature on different entities with the same staking token by using a privileged role. If this happens, since boosts and balances mapping are stored at the level of the staking token and not at the level of the entity, staking users will be incentivized to stake for the entity with the most profitable boost mechanism (depending on the values of `a`, `r` and `divider`), while still being eligible to the rewards of both entities. Further, this could lead to other accounting issues like double accounting or staking reward tokens being blocked due to the restriction of having only one reward token per interval.

LowPayout of staking rewards is not guaranteedAcknowledged

Similar to the existing dividend system, it is not guaranteed that stakers will receive any rewards when staking for a given entity, as those need to be manually payed into the protocol by an address with the role of entity admin in the context of the entity staked for.

LowPotential excessive privileges for onboarded usersAcknowledged

In the function `_onboardUser()`, the fact that we assign the onboarded user to a role in both the entity's context and the system's context should be confirmed to be expected or not.

LowRisks around claim payments after a policy maturesAcknowledged

In `LibSimplePolicy.payClaim()`, an entity may need to pay a claim for a given policy even after the policy is matured and underlying funds are released, which can be problematic as there won't be enough funds in the entity. Per communication with the team, we understand that when a policy matures, funds get unlocked. However, there might be cases of retroactive payment of claims i.e. an incident happened while the policy was active, but it was reported only after it matured. Those still need to be paid out, but the contracts no longer lock the funds. The system currently cannot guarantee the funds to be available indefinitely, so best effort and communication with the insured party are used to settle such cases. **Note:** this issue is close to the issue #23 of the previous audit (link [here](https://certificate.quantstamp.com/full/nayms-2/79da5daf-4326-4f12-a71c-828b72fbea09/index.html)).

LowSelf-onboarding process is exposed to race conditionsAcknowledged

Once the self-onboarding of a user has been approved by an onboarding approver, a race condition exists between the conflicting functions: * `onboard()` to be called by the user to self onboard; * `cancelSelfOnboarding()` to be called by a system manager;

LowThe Minting Rules for the Token Naym Are Not Fully DocumentedAcknowledged

According to the current codebase, an infinite amount of NAYM tokens can be minted, since: * the contract is a diamond pattern and the storage can be updated following governance decisions and the `PhasedDiamondCutFacet` process; * a `Minter` role is defined and can mint any amount of NAYM; * if the `Minter` role is revoked (set to `address(0)`), `sysAdmins` can reassign a `Minter` even if it has been previously revoked. Details regarding the expected total supply of the token were not found in the documentation.

Show 1 more
LowTrading external tokens for external tokens is possibleAcknowledged

In the previous implementation, trades on the market were restricted such that either one of the sell/buy tokens must be an external token, whereas the other one is an internal (participation) token. However, in the updated code, internal trading between external tokens is now allowed to let people trade internally NAYM tokens. If appropriate, the team may want to restrict the trading of external tokens to be between the NAYM Token and supported external tokens, as opposed to allowing unrestricted trading of external tokens.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (245)

  • https://github.com/nayms/contracts-v3/docs/src/src/shared/AppStorage.sol/struct.AppStorage.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.ExternalWithdrawAmountCannotBeZero.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibObject.sol/library.LibObject.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/UpdateFees.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.StakingAlreadyStarted.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/solidity.min.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/fixtures/SimplePolicyFixture.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/TokenizedVaultFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/cli-tools/postproc-broadcasts.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/shared/AppStorage.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/Makefile at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/SimplePolicyFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/utils/DummyToken.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.github/workflows/lint.yml at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.UpdateEntityTypeCell.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.OwnerCannotBeSystemAdmin.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/remappings.txt at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T02Access.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.SimplePolicyInfo.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.EntityOnboardingNotApproved.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.SimplePolicy.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.IntervalRewardPayedOutAlready.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.CalculatedFees.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/UserFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/book.toml at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.solhint.json at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.InvalidRValue.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/defaults/D02TestSetup.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/TokenizedVaultIOFacet.sol/contract.TokenizedVaultIOFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/utils/README.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/SUMMARY.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.FeeBasisPointsExceedHalfMax.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibMarket.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/LICENSE at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T06Staking.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.SimplePolicyPremiumsPaidShouldStartAtZero.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.InvalidGroupPrivilege.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/PhasedDiamondCutFacet.sol/error.PhasedDiamondCutUpgradeFailed.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.github/workflows/solstat.yml at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.FeeSchedule.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/book.css at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibHelpers.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/interfaces/IERC165.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibEntity.sol/library.LibEntity.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.CancelCannotBeTrueWhenCreatingSimplePolicy.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.FeeAllocation.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibConstants.sol/library.LibConstants.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/fixtures/TokenizedVaultFixture.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/utils/DSILib.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/cli-tools/filter-lcov.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/AdminFacet.sol/contract.AdminFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/GovernanceFacet.sol/contract.GovernanceFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibACL.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/cli-tools/get-filenames.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibGovernance.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T02Admin.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/UserFacet.sol/contract.UserFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/generated/LibDiamondHelper.sol/library.LibDiamondHelper.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/README.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T03SystemFacet.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/ReplaceDiamondCut.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.github/workflows/test.yml at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.PolicyDoesNotExist.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.AssignerCannotUnassignRole.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/mythril.config.json at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.EntityApproval.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/interfaces/README.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.gas-snapshot at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T04Market.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/interfaces/IERC165.sol/interface.IERC165.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.github/workflows/npm.yml at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibEIP712.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.EntityDoesNotExist.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/SystemFacet.sol/contract.SystemFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/GovernanceFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T01LibERC20.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/EntityFacet.sol/contract.EntityFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.prettierrc at commit 2f08d24
  • https://github.com/nayms/contracts-v3/gemforge.config.cjs at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/utils/ReentrancyGuard.sol/abstract.ReentrancyGuard.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/script/gemforge/utils/index.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibInitDiamond.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/AdminFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/shared/CustomErrors.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/PhasedDiamondCutFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibConstants.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/init/README.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/mocks/data/facet-cut-struct-1.json at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/init/InitDiamond.sol/contract.InitDiamond.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/defaults/D00GlobalDefaults.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.MinimumSellCannotBeZero.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/init/InitDiamond.sol/error.DiamondAlreadyInitialized.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.ObjectTokenNameInvalid.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/.gitignore at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.prettierignore at commit 2f08d24
  • https://github.com/nayms/contracts-v3/index.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/StakingFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibTokenizedVaultStaking.sol/library.LibTokenizedVaultStaking.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.RewardsBalances.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibEIP712.sol/library.LibEIP712.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/shared/Modifiers.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.gitmodules at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibTokenizedVaultIO.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.vscode/extensions.json at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.InvalidIntervalSecondsValue.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.RoleIsMissing.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibSimplePolicy.sol/library.LibSimplePolicy.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/README.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.StakingCheckpoint.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/interfaces/IERC173.sol/interface.IERC173.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibTokenizedVault.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibAdmin.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibEntity.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.ObjectTokenSymbolAlreadyInUse.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/README.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.MarketInfo.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.Stakeholders.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.InvalidObjectType.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.PolicyCannotCancelAfterMaturation.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibACL.sol/library.LibACL.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/NewFees.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/NaymsOwnershipFacet.sol/contract.NaymsOwnershipFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.eslintrc.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.vscode/settings.json at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/generated/README.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibSimplePolicy.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/script/deployment/DeployERC20.s.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibTokenizedVaultIO.sol/library.LibTokenizedVaultIO.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.InsufficientBalance.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.InvalidDividerValue.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs-static/test_plan.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/TokenizedVaultFacet.sol/contract.TokenizedVaultFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/foundry.toml at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/SystemFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/README.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/script/gemforge/verify.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.DuplicateSignerCreatingSimplePolicy.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/shared/FreeStructs.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/ACLFacet.sol/contract.ACLFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.gitignore at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T01LibHelpers.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/generated/IDiamondProxy.sol/interface.IDiamondProxy.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/README.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.gemforge/.gitignore at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/generated/.gitignore at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.TokenAmount.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/cli-tools/docgen.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.InvalidStakingInitDate.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/NaymsOwnershipFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/MarketFacet.sol/contract.MarketFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/defaults/D03ProtocolDefaults.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.InvalidObjectIdForAddress.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.SimplePolicyClaimsPaidShouldStartAtZero.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.UtilizedCapacityGreaterThanMaxCapacity.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.ExternalWithdrawInvalidReceiver.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T03TokenizedVault.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/init/InitDiamond.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/cli-tools/code-recon.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibAdmin.sol/library.LibAdmin.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/MarketFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.npmignore at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T01Deployment.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/script/.solhint.json at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibTokenizedVaultStaking.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/facets/TokenizedVaultIOFacet.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T02ACL.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibHelpers.sol/library.LibHelpers.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/cli-tools/contract.hbs at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.FeeBasisPointsExceedMax.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.StakingConfig.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/cli-tools/anvil_bootstrap.sh at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T04Entity.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibInitDiamond.sol/library.LibInitDiamond.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/libs/LibGovernance.sol/library.LibGovernance.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/utils/ReentrancyGuard.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/utils/ERC20Wrapper.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.APlusRCannotBeGreaterThanDivider.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs-static/code_standards.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/AppStorage.sol/struct.FunctionLockedStorage.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.CannotAddNullDiscountToken.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/fixtures/InitDiamondFixture.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/interfaces/IERC20.sol/interface.IERC20.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/mocks/data/facet-cut-struct-3.json at commit 2f08d24
  • https://github.com/nayms/contracts-v3/src/libs/LibFeeRouter.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/FreeStructs.sol/struct.Entity.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/utils/Create3Deployer.sol/contract.Create3Deployer.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T02User.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/script/gemforge/deploy.js at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.EntityExistsAlready.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/script/AddSupportedExternalToken.s.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.ObjectTokenSymbolInvalid.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.env.example at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/Modifiers.sol/contract.Modifiers.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/.solhintignore at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/facets/SimplePolicyFacet.sol/contract.SimplePolicyFacet.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.EntityOnboardingAlreadyApproved.md at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/utils/users/MockAccounts.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/utils/BadToken.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/test/T03NaymsOwnership.t.sol at commit 2f08d24
  • https://github.com/nayms/contracts-v3/docs/src/src/shared/CustomErrors.sol/error.CannotAddNullSupportedExternalToken.md at commit 2f08d24

Part of Nayms 2024 (Retainer)’s security record

Nayms 2024 (Retainer)
Audits3 audits by 1 firmLast audit May 2024, by Quantstamp.
Critical findingsNo open critical findingsAcross 3 reports.
Open Nayms 2024 (Retainer)’s security record

Security firm

Quantstamp

236 projects reviewed · 332 reports · latest Oct 2026

See Quantstamp’s audits

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