# Overview

**ZK Social** is a zero-knowledge social network built on top of four different layers:\
\- Identity layer (Ethereum - decentralized)\
\- Data layer (GunDB - decentralized)\
\- API layer (Postgres - centralized)\
\- UI layer (Typescript/React - centralized)

![Network Diagram](/files/GHvajCcFkVMl4i5W0NN3)

Each client runs a *GunDB* peer node that joins a peer-to-peer network with the seed nodes `gun-seed-1.auti.sm/gun`. Each client by default only download and keep just the amount of data they need from GunDB, but they can also download and retain records of all users to ensure data completeness in the network. We will initially operate three seed nodes that keep records of all data.

In order to join as a user, a user will first have to generate a *ECDSA* key pair, and write the public key to a [smart contract](https://arbiscan.io/address/0x6b0a11f9aa5aa275f16e44e1d479a59dd00abe58) in Arbitrum (support for other networks will come in the future). The private key is used to authenticate the user's write access to GunDB, where the public key is used by other clients to retrieve a user's data slice.

To help with discovery of contents, we also run SQL indexer that index all data into queryable formats and [serve](https://arbiscan.io//tx/0x9a75d0c20b846810194c129407eaf6541440ad75ca1d92d557be081cd01ddd37#eventlog) them over a RESTful API.


---

# 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.zkitter.com/developers/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.
