> For the complete documentation index, see [llms.txt](https://auxo-1.gitbook.io/on-chain-funding-platform/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://auxo-1.gitbook.io/on-chain-funding-platform/platform/private-funding.md).

# 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

<figure><img src="/files/BrPTkRBv5N1aDZ93nzdD" alt=""><figcaption><p>Project zkApp</p></figcaption></figure>

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:&#x20;

* IPFS details of the campaign
* Owner of the campaign
* State of the campaign
* The setting of the campaign

<figure><img src="/files/ZonPnB1iSPYS6bcXr5Ow" alt=""><figcaption><p>Campaign zkApp</p></figcaption></figure>

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:&#x20;

* IPFS data about participation: project milestone, their proposal to the investor…
* Current number of each project participate in a campaign

<figure><img src="/files/2IMoSyqeIRMt7fOgdja2" alt=""><figcaption><p>Participation zkApp</p></figcaption></figure>

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:&#x20;

* 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

<figure><img src="/files/y4i2AIZvNfcp31EKWooc" alt=""><figcaption><p>Funding zkApp</p></figcaption></figure>

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:&#x20;

* 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.

<figure><img src="/files/eJVnh4R42S30wYbpgQpq" alt=""><figcaption><p>Treasury Manager zkApp</p></figcaption></figure>

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<br>
