> For the complete documentation index, see [llms.txt](https://blockful.gitbook.io/anticapture/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blockful.gitbook.io/anticapture/technical/technical-specs.md).

# Technical Specs

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

## \[TECHNICAL SPECS] // Anticapture Architecture

This section outlines the technical architecture of **Anticapture**, describing the stack, infrastructure, and integration points.

### Architecture Overview

| **Layer**          | **Technology**   | **Purpose**                                                               |
| ------------------ | ---------------- | ------------------------------------------------------------------------- |
| **Frontend**       | Next.js          | Web app providing the user interface to display governance security data. |
| **Backend**        | Nest.js + Prisma | API server for processing requests and handling logic.                    |
| **ETL / Indexer**  | Ponder v0.8      | Extracts, transforms, and loads blockchain data into the database.        |
| **Database**       | PostgreSQL       | Stores governance data, delegations, transactions, and wallets.           |
| **Integrations**   | DefiLlama API    | Provides token price feeds (USD) for accurate valuations.                 |
| **Infrastructure** | Vercel / Railway | Vercel hosts frontend; Railway hosts backend and PostgreSQL DB.           |

***

{% tabs %}
{% tab title="🖥️  Frontend" %}

* Built with **Next.js**.
* Optimized for performance and responsiveness.
* Fetches data directly from backend API and database.
  {% endtab %}

{% tab title="⚙️ Backend" %}

* **Nest.js API**: Manages requests from the frontend and external services.
* **Prisma ORM**: Provides type-safe database interactions.
* **Ponder v0.8 ETL**:
  * Extracts governance data from on-chain sources.
  * Transforms raw blockchain data into structured formats.
  * Loads into PostgreSQL for persistence.
    {% endtab %}

{% tab title="🗄️ Database" %}

* **PostgreSQL** as the primary datastore.
* Maintains all governance-related data:
  * Proposals
  * Delegations
  * Transactions
  * Wallets
    {% endtab %}

{% tab title="🔗 Third-party Integrations" %}

* **DefiLlama API** for token price feeds.
* Ensures all governance token data is converted into USD for reporting and risk signals.
  {% endtab %}

{% tab title="🛠️ Infrastructure" %}

* **Vercel**: Hosts the frontend (Next.js).
* **Railway**: Hosts backend services (Nest.js + Prisma) and the PostgreSQL database.
  {% endtab %}
  {% endtabs %}

***

### Technical Highlights

* **Real-time indexing** of DAO proposals and governance actions.
* **Separation of concerns** across frontend, backend, ETL, and DB.
* **Scalable & modular design**: New DAOs and integrations can be plugged in easily.
* **Open-source by default**: Built for collaboration and contribution.


---

# 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://blockful.gitbook.io/anticapture/technical/technical-specs.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.
