# Technical Documentation

This monorepo contains two main components that work together to power the Agora platform.

## Core

The `core/` directory houses the smart contract infrastructure, built using Hardhat and TypeScript. It includes:

* **Contracts**: Solidity smart contracts for private proposals, proposal factories, space registries, and mock tokens for testing.
* **Deployment**: Scripts and configurations for deploying contracts to various networks.
* **Tests**: Comprehensive test suites for verifying contract functionality.
* **Tasks**: Hardhat tasks for interacting with deployed contracts.

Key features:

* Private proposal creation and management
* Automated proposal deployment
* Space registry for organizing governance spaces
* Integration with ERC721 and governance tokens

## Frontend

The `frontend/` directory contains a Next.js web application that provides the user interface for the Agora platform. It includes:

* **Next.js App**: A modern React-based web application with routing and API endpoints.
* **Subgraph Integration**: TheGraph subgraph for indexing and querying blockchain data efficiently.
* **Components**: Reusable UI components built with Tailwind CSS and shadcn/ui.
* **Wallet Integration**: Support for various wallets using Wagmi and other libraries.

Key features:

* Dashboard for managing proposals and spaces
* Encrypted proposal handling using FHEVM
* Real-time data fetching via Apollo GraphQL
* Responsive design for desktop and mobile

## Getting Started

To get started with development, refer to the individual README files in the `core/` and `frontend/` directories for setup instructions.


---

# 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://agora-staged.vercel.app/app/docs/project-structure.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.
