Architecture
The Bunnybox protocol is built upon a foundation of 7 core contracts and 3 surface contracts, each playing a vital role in the protocol's functionality and cohesion.
Core Contracts:
BunnyTokenStore: This contract manages token minting and burning operations for all projects within the Bunnybox ecosystem.
BunnyFundingCycleStore: Responsible for handling funding cycle configurations and scheduling, ensuring smooth project operations.
The subsequent core contracts are designed with a broader scope, accommodating various functionalities for future extensions and interoperability:
BunnyProjects: Facilitates ownership tracking for projects represented as ERC-721 tokens, enforcing necessary permissions for project-specific transactions.
BunnySplitsStore: Stores data regarding arbitrary distribution splits, utilized in managing payout distributions and token reservations.
BunnyPrices: Manages and standardizes price feeds for diverse currencies, allowing projects to conduct accounting in their preferred currency while managing funds in ETH or other assets.
BunnyOperatorStore: Stores permissions for designated addresses to execute specific actions on behalf of others, fostering a composable ecosystem where proxy contracts can operate seamlessly.
BunnyDirectory: Maintains a record of terminal contracts utilized by each project for fund acceptance and the controller contract overseeing token and funding cycle management.
Surface Contracts:
BunnyController3_1: Synchronizes funding cycles and project tokens, offering controlled governance, accounting, and token administration.
BunnyPayoutRedemptionPaymentTerminal3_1_1: Manages all fund inflows and outflows, providing an abstract implementation adaptable for various payment terminals.
BunnySingleTokenPaymentTerminalStore3_1_1: Manages accounting data for payment terminals handling balances of a single token type.
Additionally, the Bunnybox protocol offers bonus utility contracts:
BunnyETHERC20ProjectPayer and BunnyETHERC20SplitsPayer: Provide utilities for routing funds to project treasuries and split destinations, respectively, along with contextual information.
BunnyProjectHandles: Enables project owners to associate ENS names as project handles, enhancing accessibility and searchability within the Bunnybox ecosystem.
By encapsulating essential functionalities and fostering modularity, the Bunnybox protocol aims to provide a robust and adaptable framework for project funding and management, promoting efficiency and innovation in decentralized finance.
Last updated