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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://auxo-1.gitbook.io/on-chain-funding-platform/platform/private-funding.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
