# Proof of Reserves

### **Introduction**

Ensuring transparency and security is a fundamental principle of the Universal Protocol. To achieve **trustless verification** of our reserves, Universal integrates **Zero-Knowledge Proofs (zkProofs)** with **Coinbase Custody APIs**, allowing anyone to independently verify reserve holdings.

This approach guarantees that every **uAsset** is fully backed by its underlying collateral, providing users with confidence in the protocol's solvency while maintaining privacy and security.\
\
Universal leverages [Reclaim Protocol's ](https://docs.reclaimprotocol.org/zkfetch)[zkfetch](https://docs.reclaimprotocol.org/zkfetch) to power Proof of Reserves.\
\
Access Universal's Proof of Reserves [here](https://www.universal.xyz/reserves).

***

### **How Proof of Reserves Works**

The Universal Protocol utilizes a **zkProof-powered verification system** that enables users to confirm our reserves without requiring trust in a third party. Below is a step-by-step breakdown of how it works:

#### **1. Fetching Reserve Data from Coinbase API**

* Universal calls the **Coinbase Custody API** to retrieve:
  * **Total balance** of each underlying asset (e.g., BTC, ETH..)
  * **Organization information** (such as name and details)
* This data is essential to ensure that **all uAssets are 1:1 backed** by their respective reserves.

#### **2. Generating a Zero-Knowledge Proof**

* Instead of directly revealing API responses, Universal leverages the Reclaim **zkProof system** to **cryptographically verify** the authenticity of the retrieved data.
* A zkProof is generated for:
  * **Balances** – Ensuring that the reserve balances match the circulating supply of uAssets.
  * **Organization Data** – Validating that the data originates from **Coinbase’s API** without exposing sensitive information.

#### **3. User Verification & Trustless Transparency**

* Users can independently verify the proof by querying Universal's zkProof verification system.
* The verification process allows users to:
  * **Confirm that our reported reserves match on-chain balances.**
  * **Ensure that Coinbase Custody holds the underlying collateral for uAssets.**
  * **Authenticate that no sensitive data (e.g., API keys) has been exposed.**

***

### **Why Use zkProofs for Proof of Reserves?**

Traditional Proof of Reserves (PoR) methods require users to trust third-party audits or manual attestations. By integrating **zkProofs**, Universal eliminates this trust assumption and enhances security.

**Privacy-Preserving:** Verifies the data **without revealing** private API keys or sensitive account details.&#x20;

**Tamper-Proof:** Uses cryptographic proofs to ensure that **data cannot be altered**.&#x20;

**Trustless Verification:** Users do not need to trust Universal; they can **independently verify reserves**.&#x20;

**Automated & Continuous:** zkProofs allow **real-time reserve verification**, reducing reliance on periodic audits.

***

### **How to Verify Universal's Proof of Reserves**

Users can independently verify Universal's reserves using our **Proof of Reserves Dashboard**. The process is simple and requires no special access permissions:

1. Visit the [**Universal Proof of Reserves Dashboard**](https://www.universal.xyz/reserves)
2. Input the **desired asset (e.g., BTC, USDC, ETH)** to retrieve its proof.
3. The system will return:
   * The **latest balance proof** generated from Coinbase API data.
   * A **cryptographic zkProof** confirming the data’s authenticity.
4. Users can run the proof through a **verifier smart contract** or a local verification script to confirm its validity.


---

# Agent Instructions: 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:

```
GET https://docs.universal.xyz/docs/introduction-to-universal/proof-of-reserves.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
