Welcome all curious developers to the Juicebox protocol docs.
The Juicebox protocol is a programmable treasury. Projects can use it to configure how its tokens should be minted when it receives funds, and under what conditions those funds can be distributed to preprogrammed addresses or reclaimed by its community. These rules can evolve over funding cycles, allowing people to bootstrap open-ended projects and add structure, constraints, extensions, and incentives over time as needed. The protocol is light enough for a group of friends, yet powerful enough for a global network of anons sharing thousands of ETH, ERC-20s, or other assets.
The protocol is nuanced, however. The goal of the protocol docs is for you to find any protocol related information that you're looking for. Whether you're auditing, developing your own JB project, creating JB extensions, looking for bug bounties, or just looking to learn some solidity and contract design, these docs should give you just what you're looking for. These docs should allow you to click around and get a real good deep dive, and should just as easily allow you to find overview information.
- Learn - General info on how the protocol works.
- Build - Guides to launch, program, and extend a treasury.
- API - Specifications of each contract and function in base protocol, and a deep dive through each line of code.
- Extensions - Specifications for contracts which extend the base protocol.
- Resources - Miscellaneous useful information. Contract addresses, audits, and more.
- Frontend - Resources for people building new clients for the Juicebox protocol.
- Deprecated - API documentation and resources for older versions of the Juicebox protocol.