> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lunya.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Architecture

> How the Lunya surfaces fit together

## The system

```mermaid theme={null}
graph LR
    BR["Bridge<br/>(CCTP v2)"] -->|"canonical USDC in"| EX["Exchange<br/>(CL · CP · STABLE pools)"]
    LA["Launchpad<br/>(bonding curve)"] -->|"graduation:<br/>pool + locked liquidity"| EX
    RA["Raise<br/>(token sales, coming soon)"] -.->|"own terms"| EX
    EX -->|"trading fees"| LP["Liquidity providers"]
    EX -->|"protocol share"| EARN["Earn layer<br/>(coming soon)"]
```

## Exchange

The exchange is an AMM built as a **port of Uniswap V3 Core**, extended with a typed plugin system. Three pool types — concentrated liquidity, constant product, and amplified stable — answer one shared interface, and every pool ships with the default plugin: dynamic fees, on-chain limit orders, a TWAP oracle, a security module, and a farming proxy.

Trading fees are split between liquidity providers and the protocol. The protocol share is what will feed the Earn layer.

<Info>
  Start from the [Exchange overview](/exchange/overview).
</Info>

## Earn (coming soon)

The staking layer: stake the platform token, earn protocol revenue in the assets it was earned in, vote on where liquidity incentives go. Documented in [Earn](/earn/overview) as it ships.

## Bridge

USDC moves in and out of Arc through Circle's CCTP v2: burned on the source chain, minted on the destination against an attestation signed by Circle. Nothing is wrapped and no third-party validator set is trusted — what arrives is canonical USDC, ready to pay for gas and to trade.

<Info>
  Details in [Bridge](/bridge/overview).
</Info>

## Launchpad

Anyone can create a token that trades on a bonding curve — on-chain quotes, two-way trading, no transfers outside the curve until graduation. When the curve completes, graduation is permissionless (and rewarded): a constant-product pool opens on the exchange and the liquidity position is deposited into a locker that **has no function to withdraw it**. The position's trading fees keep paying the creator for as long as the pool trades.

<Info>
  Start from [How the Launchpad Works](/launch/how-it-works).
</Info>

## Raise

Where projects run token sales: a project raises in dollars, on terms it defines for its own sale — price, allocation, schedule. It is a separate product from the launchpad: no bonding curve, no locker — the launchpad's lock is the launchpad's mechanism only. Lunya provides the infrastructure and does not review, select, or endorse any sale hosted on it. In development, not yet on testnet.

<Info>
  Details in [Raise](/raise/overview).
</Info>

## Application stack

* **Web app** — swap, pools, launchpad, and token pages, one interface
* **Indexer** — a [Ponder](https://ponder.sh)-based indexer exposing the GraphQL API that feeds the app: tokens, trades, 1m/1h candles
* **Protocol console** — internal control plane where every configurable parameter is read and changed in one place

<Info>
  Developer-facing details in [Developers](/developers/integrations).
</Info>
