Getting started
If you're interested in building a Juicebox smart contract, see the juice-contract-template
GitHub Repository. If you need any help, join our Discord server.
Importβ
Add the protocol files to the project.
# command line
npm install @jbx-protocol/juice-contracts-v3/
If referencing from typescript:
const contract = require(`@jbx-protocol/juice-contracts-v3/deployments/${network}/${contractName}.json`)
If referencing from a contract:
import '@jbx-protocol/juice-contracts-v3/contracts/[file-path].sol'
Now whatβ
From here, you can build the following:
Basics: Interact with the protocol's basic functionality. Useful for building front-ends.
Pay a project: Deploy or inherit from a contract that makes it easy to forward funds to Juicebox projects.
Split payments: Deploy or inherit from a contract that makes it easy to forward funds to groups of splits whose members are either addresses, Juicebox projects, or arbitrary contracts that inherit from IJBSplitAllocator
.
Program a treasury: Get familiar with the configurable properties available when launching a project.
Program project permissions: Build custom Juicebox Project NFT logic to create your own project access controls.
Program treasury extensions: Create custom contractual rules defining what happens when a project receives funds, and under what conditions funds can leave the treasury during a funding cycle.