Private Funding

Project zkApp

This contract facilitates the creation of projects on the platform, empowering builders to initiate their ventures. It securely stores crucial information such as:

  • IPFS details of the project

  • Project member public key

  • The public key for fund reception

The contract's primary functionalities include:

  • Create Project: Initiates a new project.

  • Create Project with Vesting: Establishes a new project with an integrated vesting feature.

  • Update Project: Updates existing project details, including IPFS information and member list.

Campaign zkApp

This contract allows organizers to host campaigns on the platform. It stores information about:

  • IPFS details of the campaign

  • Owner of the campaign

  • State of the campaign

  • The setting of the campaign

The contract's primary functionalities include:

  • Create Campaign: Create a new campaign with the caller as the owner

  • Update Campaign Info: Update campaign IPFS hash

  • Update Campaign Setting: Update campaign setting of committeeId and keyId used for the Threshold Homomorphic Encryption protocol

  • Get Campaign Timeline: Get the timeline of the campaign: time allow to builder to participate, time to receive funding, and deadline time of request to the Threshold Homomorphic Encryption protocol

Participation zkApp

Builders use this contract to participate in the campaign they want. It stores information about:

  • IPFS data about participation: project milestone, their proposal to the investor…

  • Current number of each project participate in a campaign

The contract's primary functionalities include:

  • Participate Campaign: Project participate in a campaign

  • Update Participation Info: Update participation IPFS hash

Funding zkApp

Investors use this contract to fund projects they like in a campaign It stores information about:

  • The total amount of fund investors invested in a campaign

This contract will have a helper contract which is a requester, which stores the following information:

  • The funding commitment of an investment, allows the investor to use this for voting or claim the income comes from the project

  • Encrypted data about the investment, used to calculated the funded amount for each project without reveal the information about the investor

The contract's primary functionalities include:

  • Fund: Fund projects in a campaign

  • Refund: Claim back the funded amount when the campaign is aborted

Treasury Manager zkApp

This contract secures investor funds, permitting builders to claim the investments received. It stores information about:

  • The funded amount a project receives in a campaign

  • The state of the campaign: Not ended, completed, aborted

When the campaign is aborted, investor is allowed to reclaim their fund by using refund() function at Funding contract.

The contract's primary functionalities include

  • Complete Campaign: Complete the campaign, allowing the builder to claim their fund

  • Abort Campaign: Abort Campaign, which allows investors to reclaim their investment. This happened when there is a problem occur with the Threshold Homomorphic Encryption protocol

  • Claim fund: Builder using this function to claim fund

Last updated