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 a Liquidity Pool and a Tranche Token.
- Liquidity Pool: 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, TokenManager, Gateway, and Routers.
- Investment Manager: The core business logic contract that handles pool creation, tranche deployment, managing investments and sending tokens to the
Escrow
andUserEscrow
, and more. - Pool Manager: The second business logic contract that handles currency bookkeeping, and transferring tranche tokens as well as currencies.
- Gateway: Intermediary contract that encodes and decodes messages using
Messages
and handles routing to/from Centrifuge. - Routers: Contracts that handle communication of messages to and from Centrifuge Chain.
git clone [email protected]: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.