Learn more about the terminology and mathematical notation used to describe the MoneySwitch protocol.
- FeederPools: Depositors engage with FeederPools when making deposits and withdrawals. Each FeederPool maintains a record of the depositors' ownership stakes within it and implements any required additional functionalities and features.
- MasterPool: In the same transaction, FeederPools will make deposit and withdrawal transactions from the MasterPool they are connected to. This ensures no funds are left idle in the FeederPool. Similarly, the MasterPool maintains a record of the FeederPools’ ownership stakes within it.
In a pool, ownership stake is represented by units. These units entitle the holder to claim a portion of the pool's assets. When a depositor makes a deposit into a pool units are issued, and when they withdraw from a pool, units are redeemed. Unit balances are stored and adjusted by the pool conducting the transaction. There are two types of units:
- FeederPool Units: These are issued to and redeemed from depositor balances when a depositor makes a depositor or withdrawal.
- MasterPool Units: These are issued to and redeemed from FeederPools in the same transaction.
= FeederPool Units, which depositor a, has in FeederPool i, at transaction t.
= MasterPool Units, which FeederPool i, has in a MasterPool, at transaction t.
= total FeederPool Units, in FeederPool i, at transaction t.
= total MasterPool Units, at transaction t.
Value is a monetary metric, measured in dollars ($), that represents the worth of different components within the FeederPool/MasterPool system.
- MasterPool Value: This signifies the total value of the entire system.
- FeederPool Value: This is the value of a specific FeederPool. It is calculated by considering the number of MasterPool Units that FeederPool holds in relation to the total number of MasterPool Units.
- Depositor Value: This is the individual value of a depositors stake in a FeederPool, and is calculated by considering the number of FeederPool Units that depositor holds in relation to the total number of FeederPool Units for that FeederPool.
= Depositor Value, which depositor a, has in FeederPool i, at transaction t.
= FeederPool Value of FeederPool i, at transaction t.
= MasterPool Value at transaction t.
When onboarded customers request liquidity, the MasterPool will transfer the funds to them, assuming there is enough available liquidity and they have a sufficient credit limit. The MasterPool records the following related variables:
- Total Liquidity on Loan: This is the total amount of liquidity on loan at any point in time (excluding accumulated interest).
- Weighted-Average Interest Rate: This is the weighted-average interest rate for all outstanding liquidity loans (loans can have variable interest rates).
In addition, the MoneySwitch protocol will store important variables for each liquidity loan, this includes the liquidity principal, liquidity interest, as well as the interest rate.
= amount of total Liquidity on Loan for all customers, at transaction t.
= weighted-average interest rate of all liquidity on loan, at transaction t.
= amount of liquidity principal, on a single loan i, at transaction t.
= amount of liquidity interest, on a single loan i, at transaction t.
= individual interest-rate for a single loan i.
The MoneySwitch protocol operates on a transactional basis. Every time a transaction occurs, the system is updated to account for the time that has passed since the last transaction. Whilst transactions increment in the system, the time that has elapsed since the last transaction is variable.
= the change in time between transaction t and t-1, measured in seconds.