# Overview

### Core Components

There are 4 core components that will be designed:

#### 1. Wallet

At the beginning, we will rely on existing non-custodial wallets available on the market. This allows users to continue using wallets they’re familiar with.\
However, for this project, the wallet must also manage the **Private state** of smart contracts — a feature not supported by current wallets nor exposed via extension interfaces.\
To address this in the early stages, we’ll use **user local storage encrypted with the wallet key**.\
In future releases, we plan to develop a new wallet capable of securely storing both **Private state data** and **user keys**.

#### 2. dApp

The dApp serves as an extended interface for users, displaying available data and relying on the Wallet for encryption/decryption and transaction signing.\
It will be built using **existing Web3 frameworks**, adapted to support **new generation smart contracts**.

#### 3. Internal Ledger

As with most Web3-based products, an internal **decentralized ledger** will be used to process transactions and form blocks sequentially.\
The key distinction of our ledger is its **support for new generation smart contracts**.

#### 4. R-Bridge

A suite of smart contracts operating across both the **Internal and External ledgers**, designed to bridge crypto assets between them.\
The external part of the bridge tracks internal transactions via **state-proofs** (similar to L2 rollup validators posting data to L1).\
This allows users to present a state-proof and **claim corresponding crypto assets on the External chain**, avoiding the need to directly interact with the Internal chain — a critical **safety feature**.

***

The interaction between these components is illustrated in the diagram below

<figure><img src="/files/VBcB1GvdZ28XC1lun9NU" alt=""><figcaption></figcaption></figure>


---

# 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://privax-1.gitbook.io/privax-protocol/high-level-architecture/overview.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.
