Skip to main content


JBProjectsStores project ownership and identifying information.
JBTokenStoreManage token minting, burning, and account balances.
JBFundingCycleStoreManages funding cycle scheduling.
JBSplitsStoreStores 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.
JBPricesManages and normalizes price feeds.
JBOperatorStoreStores operator permissions for all addresses. Addresses can give permissions to any other address to take specific indexed actions on their behalf.
JBDirectoryKeeps 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.
JBControllerStitches together funding cycles and project tokens, making sure all activity is accounted for and correct.
JBETHPaymentTerminalManages all inflows and outflows of ETH funds into the protocol ecosystem.
JBSingleTokenPaymentTerminalStoreManages all bookkeeping for inflows and outflows of funds from any IJBSingleTokenPaymentTerminal.
JBETHERC20ProjectPayerSends ETH or ERC20's to a project treasury as it receives direct payments or has it's functions called.
JBETHERC20ProjectPayerDeployerDeploys project payer contracts.
JBETHERC20SplitsPayerSends ETH or ERC20's to a group of splits as it receives direct payments or has its functions called.
JBETHERC20SplitsPayerDeployerDeploys splits payer contracts.