JBProjects | Stores project ownership and identifying information. |
JBTokenStore | Manage token minting, burning, and account balances. |
JBFundingCycleStore | Manages funding cycle scheduling. |
JBSplitsStore | Stores splits information for all groups of each project. Projects can create split groups for directing percents of a total token allocation to any address, any other Juicebox project, or any contract that inherits from the IJBSplitAllocator interface. |
JBPrices | Manages and normalizes price feeds. |
JBOperatorStore | Stores operator permissions for all addresses. Addresses can give permissions to any other address to take specific indexed actions on their behalf. |
JBDirectory | Keeps a reference of which terminal contracts each project is currently accepting funds through, and which controller contract is managing each project's tokens and funding cycles. |
JBController | Stitches together funding cycles and project tokens, making sure all activity is accounted for and correct. |
JBETHPaymentTerminal | Manages all inflows and outflows of ETH funds into the protocol ecosystem. |
JBSingleTokenPaymentTerminalStore | Manages all bookkeeping for inflows and outflows of funds from any IJBSingleTokenPaymentTerminal. |
JBETHERC20ProjectPayer | Sends ETH or ERC20's to a project treasury as it receives direct payments or has it's functions called. |
JBETHERC20ProjectPayerDeployer | Deploys project payer contracts. |
JBETHERC20SplitsPayer | Sends ETH or ERC20's to a group of splits as it receives direct payments or has its functions called. |
JBETHERC20SplitsPayerDeployer | Deploys splits payer contracts. |