ParaSpace - NFT Money Market

CertiKFiles named in the report

CertiK reviewed ParaSpace Lending V1 (ParaSpace - NFT Money Market) on 25 Oct 2022: 23 findings, 2 critical; 14 marked fixed, 1 acknowledged, 8 open.

2 critical findings, fixed
Open the reportOpen ParaSpace Lending V1’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings23

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

SeverityOpenAcknowledgedFixed
Critical002
High011
Medium103
Low708
HighCentralization Related RisksAcknowledged

In the contract `Pool`, the role `onlyPoolAdmin` has authority over the following functions: - function rescueTokens(), to transfer any ERC20 tokens in the contract to any `to` address. Any compromise to the `onlyPoolAdmin` account may allow a hacker to take advantage of this authority. In the contract `Pool`, the role `onlyPoolConfigurator` has authority over the following functions: - function initReserve(), to initialize a reserve, activate it, assign an `NToken`/`PToken` and debt tokens and an interest rate strategy. - function dropReserve(), to drop a reserve. - function setReserveInterestRateStrategyAddress(), to update the address of the interest rate strategy contract. - function setReserveAuctionStrategyAddress(), to update the address of the auction strategy contract. - function setReserveDynamicConfigsStrategyAddress(), to update the address of the dynamic configs strategy contract. - function setConfiguration(), to set the configuration bitmap of the reserve as a whole. - function setAuctionConfiguration(), to set the auction configuration bitmap of the reserve as a whole. - function setMaxAtomicTokensAllowed(), to set the maximum allowed atomic tokens per user. Any compromise to the `onlyPoolConfigurator` account may allow a hacker to take advantage of this authority. In the contract `ACLManager`, the role `DEFAULT_ADMIN_ROLE` has authority over the following functions: - function setRoleAdmin(), to set the role as admin of a specific role. Any compromise to the `DEFAULT_ADMIN_ROLE` account may allow a hacker to take advantage of this authority. In the contract `PoolAddressesProvider`, the role `Owner` has authority over the following functions: - function setMarketId(), to associate an id with a specific PoolAddressesProvider. - function setAddress(), to set an address for an id replacing the address saved in the addresses map. - function setAddressAsProxy(), to update the implementation of a proxy registered with certain `id`. If there is no proxy registered, it will instantiate one and set as implementation the `newImplementationAddress`. - function setPoolImpl(), to update the implementation of the Pool or creates a proxy setting for the new `pool` implementation when the function is called for the first time. - function setPriceOracle(), to update the address of the price oracle. - function setACLManager(), to update the address of the ACL manager. - function setACLAdmin(), to update the address of the ACL admin. - function setPriceOracleSentinel(), to update the address of the price oracle sentinel. - function setPoolDataProvider(), to update the address of the data provider. - function setWETH(), to update the address of the WETH. - function setMarketplace(),to update the info of the marketplace. Any compromise to the `Owner` account may allow a hacker to take advantage of this authority. In the contract `PoolAddressesProviderRegistry`, the role `Owner` has authority over the following functions: - function registerAddressesProvider(), to register an addresses provider. - function unregisterAddressesProvider(), to remove an addresses provider from the list of registered addresses providers. Any compromise to the `Owner` account may allow a hacker to take advantage of this authority. In the contract `PriceOracleSentinel`, the role `onlyPoolAdmin` has authority over the following functions: - function setSequencerOracle(), to update the address of the sequencer oracle. Any compromise to the `onlyPoolAdmin` account may allow a hacker to take advantage of this authority. In the contract `PriceOracleSentinel`, the role `onlyRiskOrPoolAdmins` has authority over the following functions: - function setGracePeriod(), to update the duration of the grace period. Any compromise to the `onlyRiskOrPoolAdmins` account may allow a hacker to take advantage of this authority. In the contract `PoolConfigurator`, the role `onlyPoolAdmin` has authority over the following functions: - function dropReserve(), to drop a reserve entirely. - function updatePToken(), to update the PToken implementation for the reserve. - function updateStableDebtToken(), to update the stable debt token implementation for the reserve. - function updateVariableDebtToken(), to update the variable debt token implementation for the asset. - function setReserveActive(), to activate or deactivate a reserve. Any compromise to the `onlyPoolAdmin` account may allow a hacker to take advantage of this authority. In the contract `PoolConfigurator`, the role `onlyRiskOrPoolAdmins` has authority over the following functions: - function setReserveBorrowing(), to configure borrowing on a reserve. - function configureReserveAsCollateral(), to configure the reserve collateralization parameters. - function configureReserveAsAuctionCollateral(), to configure the reserve collateralization parameters. - function setReserveStableRateBorrowing(), to enable or disable stable rate borrowing on a reserve. - function setR

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 (30)

  • contracts/protocol/tokenization/base/ScaledBalanceTokenBaseERC721.sol
  • contracts/protocol/libraries/logic/SupplyLogic.sol
  • contracts/protocol/libraries/math/WadRayMath.sol
  • contracts/protocol/tokenization/NToken.sol
  • contracts/protocol/libraries/logic/PoolLogic.sol
  • contracts/protocol/libraries/configuration/UserConfiguration.sol
  • contracts/protocol/tokenization/NTokenUniswapV3.sol
  • contracts/protocol/libraries/types/DataTypes.sol
  • contracts/protocol/libraries/logic/ValidationLogic.sol
  • contracts/protocol/tokenization/NTokenMoonBirds.sol
  • contracts/protocol/configuration/PriceOracleSentinel.sol
  • contracts/protocol/pool/PoolConfigurator.sol
  • contracts/protocol/configuration/PoolAddressesProvider.sol
  • contracts/protocol/pool/DefaultReserveInterestRateStrategy.sol
  • contracts/protocol/pool/Pool.sol
  • contracts/protocol/configuration/ACLManager.sol
  • contracts/protocol/libraries/helpers/Errors.sol
  • contracts/protocol/libraries/logic/ConfiguratorLogic.sol
  • contracts/protocol/pool/PoolStorage.sol
  • contracts/protocol/libraries/logic/LiquidationLogic.sol
  • contracts/protocol/libraries/configuration/ReserveConfiguration.sol
  • contracts/protocol/libraries/math/MathUtils.sol
  • contracts/protocol/libraries/logic/ReserveLogic.sol
  • contracts/protocol/libraries/logic/BorrowLogic.sol
  • contracts/protocol/libraries/types/ConfiguratorInputTypes.sol
  • contracts/protocol/configuration/PoolAddressesProviderRegistry.sol
  • contracts/protocol/tokenization/base/MintableIncentivizedERC721.sol
  • contracts/protocol/libraries/logic/GenericLogic.sol
  • contracts/protocol/libraries/logic/MarketplaceLogic.sol
  • contracts/protocol/libraries/math/PercentageMath.sol

Part of ParaSpace Lending V1’s security record

ParaSpace Lending V1
Audits2 audits by 1 firmLast audit Dec 2022, by CertiK.
Critical findingsNo open critical findingsAcross the 2 reports, 2 critical findings were reported. Each is marked fixed by the firm that reported it.
Open ParaSpace Lending V1’s security record

Security firm

CertiK

1,044 projects reviewed · 1,375 reports · latest May 2025

See CertiK’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