# How it works

### How does it work?

Nata Social is built on top of [Lens Protocol](https://docs.lens.xyz/docs) which is a Web3 social graph on the Polygon blockchain. It is designed to allow creators to own their content and enable new monetization models without intermediaries by forming a composable, user-owned social graph. One of its features is modularity, allowing new features and fixes to be added, while ensuring immutability of user-owned content and social relationships.

The integration possibilities are very broad:

{% content-ref url="/pages/QjRZpVdvaqN5pFKXkQsM" %}
[Integrations](/nata-social-docs/nata-social-overview/integrations.md)
{% endcontent-ref %}

### Stack

<details>

<summary>Front</summary>

* NextJS
* TailwindCSS
* Typescript
* RainbowKit
* Wagmi

</details>

<details>

<summary>Back</summary>

* IPFS
* GraphQL
* Lens Protocol
* Lit Protocol
* Push Protocol (in progress)
* Kleros (in progress)

</details>

<details>

<summary>Blockchain</summary>

* Polygon
* Solidity Smart contracts (as a custom module on Lens Protocol) (in progress)

</details>

### What happens when a publication is made in Nata Social?

* We interact with the Lens Protocol API, which in turn interacts with its Smart Contracts on the Polygon Blockchain.
* The content of the publication is stored in IPFS, be it text, images or videos.
* A transaction is performed in Polygon that creates the NFT from the publication.

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

### What information does the NFT contain?

* NFT metadata
* Link to IPFS

### Privacy

We take user privacy seriously so we have decided not to use any cookies, we are using Umami, an analytics service that does not use cookies.

Regarding content, users will have the option to make their lists, posts and profile private by:

* On-chain meta-data encryption (**NFT description**).
* Upon fetching, the NFTs show their metadata (image & name) to all the users. But, show the decrypted metadata (NFT description) to **only** users who meet certain conditions.


---

# 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://natasocial.gitbook.io/nata-social-docs/nata-social-overview/how-it-works.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.
