ParaSpace Lending V1 security record

BNB Chain, Ethereumpara.spaceXGitHub

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.

Critical findings
No open critical findings
Across the 2 reports, 2 critical findings were reported. Each is marked fixed by the firm that reported it. See the findings
Open the latest report
Your label, live
Get the label for your site

Record last updated . It holds audits and findings, contracts and incidents up to Nov 2026. Trustblock does not review code.

Audits2

Newest first

AuditSecurity firmDateScopeCritical findingsReport
ParaSpace (Audit #3)Security firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com
ParaSpace - NFT Money MarketSecurity firm: CertiKDate: Scope: Files named in the report2 critical findings, fixedOpen · skynet.certik.com

Findings38

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

SeverityOpenAcknowledgedFixed
Critical002
High022
Medium104
Low17010
HighCentralization Related RisksParaSpace (Audit #3) · CertiK · 23 Dec 2022Acknowledged

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 report
HighCentralization Related RisksParaSpace - NFT Money Market · CertiK · 25 Oct 2022Acknowledged

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

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.

The repositories and files the reports name

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="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