Administration
The protocol has very minimal global governance - ensuring that each project owns and is responsible for its own funds and destiny. The following are the only global functions that can be accessed by a privileged administrating address, initially the JuiceboxDAO multisig, a 9 of 14 multisig voted in by JBX members:
JBProjects.setTokenUriResolver(...)
Allows the owner of theJBProjects
contract to provide and change theIJBTokenUriResolver
used to resolve metadata for project NFTs in itstokenURI(...)
function.
JBPrices.addPriceFeedFor(...)
Allows the owner of theJBPrices
contract to add new price feeds used to convert amounts denoted in one currency to another. Once added, a default price feed cannot be removed. A project owner can set and use custom price feeds, but cannot override default price feeds.
JBDirectory.setIsAllowedToSetFirstController(...)
Allows the owner of theJBDirectory
contract to add/remove addresses that can set a project's first controller on its behalf. Allowed contracts simplify project deployments by removing the need for the project's owner to send a second transaction to set the controller in the directory.
JBFeelessAddresses.setFeelessAddress(...)
Allows the owner of theJBFeelessAddresses
contract to add/remove addresses that can receive funds from projects without incurring fees typically taken any time funds leave the ecosystem.
Ownership for each contract is managed independently and can be transferred to a new owner by the current owner.