As of 3 Nov 2026, ParaSpace Lending V1 has 2 audit reports by 1 security firm on Trustblock; the latest is by CertiK, dated 23 Dec 2022. Those reports list no open critical findings.
Record last updated . It holds audits and findings, contracts and incidents up to Nov 2026. Trustblock does not review code.
Newest first
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| ParaSpace (Audit #3) | Security firm: CertiK | Date: | Scope: Files named in the report | No open critical findings | Open · skynet.certik.com |
| ParaSpace - NFT Money Market | Security firm: CertiK | Date: | Scope: Files named in the report | 2 critical findings, fixed | Open · skynet.certik.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 2 |
| High | 0 | 2 | 2 |
| Medium | 1 | 0 | 4 |
| Low | 17 | 0 | 10 |
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 a 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 `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 setReserveFreeze(), to freeze or unfreeze a reserve. A frozen reserve doesn't allow any new supply, borrow, or rate swap but allows repayments, liquidations, rate rebalances, and withdrawals. - function setReserveFactor(), to update the reserve factor of a reserve. - function setSiloedBorrowing(), to set siloed borrowing for an asset. - function setBorrowCap(), to update the borrowing cap of a reserve. - function setSupplyCap(), to update the supply cap of a reserve. - function setLiquidationProtocolFee(), to update the liquidation protocol fee of the reserve. - function setReserveInterestRateStrategyAddress(), to set the interest rate strategy of a reserve. Any compromise to the `onlyRiskOrPoolAdmins` account may allow a hacker to take advantage of this authority. In the contract `PoolConfigurator`, the role `onlyEmergencyOrPoolAdmin` has authority over the following functions: - function setReservePause(), to pause a reserve. A paused reserve does not allow any interaction (supply, borrow, repay, * swap interest rate, liquidate, NToken/PToken transfers). Any compromise to the `onlyEmergencyOrPoolAdmin` account may allow a hacker to take advantage of this authority. In the contract `PoolConfigurator`, the role `onlyEmergencyAdmin` has authority over the following functions: - function setPoolPause(), to pause or unpause all the protocol reserves. In the paused state all the protocol interactions are suspended. Any compromise to the `onlyEmergencyAdmin` account may allow a hacker to take advantage of this authority. In the contract `PoolConfigurator`, the role `onlyAssetListingOrPoolAdmins` has authority over the following functions: - function initReserves(), to initialize multiple reserves. Any compromise to the `onlyAssetListingOrPoolAdmins` account may allow a hacker to take advantage of this authority. In the contract `PoolParameters`, th
Open the reportIn 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
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="paraspace"></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