Liquidity Pools enable seamless deployment of Centrifuge RWA pools on any EVM-compatible blockchain.
Investors can invest in multiple tranches for each RWA pool. Each of these tranches is a separate deployment of an ERC-7540 Vault and a Tranche Token.
- ERC7540Vault: An ERC-7540 (extension of ERC-4626) compatible contract that enables investors to deposit and withdraw stablecoins to invest in tranches of pools.
- Tranche Token: An ERC-20 token for the tranche, linked to a
RestrictionManager
that manages transfer restrictions. Prices for tranche tokens are computed on Centrifuge.
The deployment of these tranches and the management of investments is controlled by the underlying InvestmentManager, PoolManager, Gateway and Adapters.
- Investment Manager: The core business logic contract that handles pool creation, tranche deployment, managing investments and sending tokens to the
Escrow
, and more. - Pool Manager: The second business logic contract that handles asset bookkeeping, and transferring tranche tokens as well as assets.
- Gateway: Multi-Message Aggregation (MMA) implementation, receiving messages from managers, sending these messages as full payload to 1 adapter and a proof to n-1 adapters, and verifying incoming payloads and proofs and sending back to managers.
- Adapters: Adapter implementations for messaging layers.
git clone git@github.com:centrifuge/liquidity-pools.git
cd liquidity-pools
forge update
To run all tests locally:
forge test
Auditor | Report link |
---|---|
Code4rena | September 2023 - Code4rena Report |
SRLabs | September 2023 - SRLabs Report |
Spearbit | October 2023 - Cantina Managed Report |
This codebase is licensed under GNU Lesser General Public License v3.0.