> For the complete documentation index, see [llms.txt](https://docs.novamp.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.novamp.io/protocol/contract-architecture.md).

# Contract Architecture

Every Novamp contract, what it does, and how they interact at launch — one factory, two seeders, and the registries and vaults around them.

Novamp deploys the same modular contract stack on each EVM chain: one **launch factory** as the single entry point, two **seeders** (one per DEX version), and a small set of **registries, vaults, and a fee router** around them. This page describes each contract's role and how they interact during a launch.

{% hint style="info" %}
💡 The stack is **per-chain but consistent**. Because `⚪ Ethereum` and `🟡 BNB Chain` are deployed via deterministic `CREATE`, their core contracts land at **byte-identical addresses**. Every live address is on the [Contract Addresses](/protocol/contracts-and-addresses.md) page.
{% endhint %}

## Overview

`🟢 Robinhood Chain` `🔵 Base` `🟡 BNB Chain` `⚪ Ethereum`

| Contract                         | Role                                                                                                                                                                                                 |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **NovampLaunchFactory**          | The single launch entry point. Validates the request, gates it on the blocklist + reservation, then routes: **tax → V2Seeder**, **zero-fee → V3Seeder**. Holds no user funds beyond the launch call. |
| **TokenRegistry**                | On-chain index of every launch (token, market, creator, name, symbol).                                                                                                                               |
| **V3Seeder**                     | Creates and seeds the Uniswap / PancakeSwap **v3** single-sided pool for zero-fee tokens; runs the optional atomic initial buy.                                                                      |
| **V2Seeder**                     | Creates and seeds the **v2** pair for fee-on-transfer (tax) tokens.                                                                                                                                  |
| **PositionVault**                | Custodies / locks the Uniswap / PancakeSwap **v3** position (LP NFT).                                                                                                                                |
| **CreatorVesting**               | Locks the optional creator allocation (0–10%) for a chosen duration.                                                                                                                                 |
| **LiquidityLocker**              | Burns or time-locks launch liquidity per the creator's permanent choice.                                                                                                                             |
| **FeeRouter**                    | Collects the **1%** swap fee and splits it **50% creator / 50% protocol**.                                                                                                                           |
| **TickerReservationRegistry**    | AntiVamp name+ticker reservations, USD-priced tiers, and copycat locks (EVM).                                                                                                                        |
| **GraduatedTokenRegistry**       | Cross-chain copycat blocklist (symbol + logo hash); **guardian-managed and time-limited via fan-out** — not a permanent list.                                                                        |
| **NovampToken / NovampTaxToken** | The fixed-supply ERC-20 deployed per launch — v3 (zero-fee) or v2 (tax). No mint, no owner.                                                                                                          |

{% hint style="warning" %}
⚠️ `🟢 Robinhood Chain` is **v3-only** — it has no `V2Seeder`, so tax-token launches revert there. Every RHC launch is a zero-fee token. See [Supported Chains](/welcome-to-novamp/supported-chains.md).
{% endhint %}

## How they interact at launch

```mermaid
flowchart TD
  C[Creator] -->|launch p, one tx| F[NovampLaunchFactory]
  F -->|gate: blocklist + non-ASCII| GR[GraduatedTokenRegistry]
  F -->|gate: reservation| TRR[TickerReservationRegistry]
  F -->|zero-fee| V3[V3Seeder]
  F -->|any tax| V2[V2Seeder]
  V3 --> TK[Fixed-supply NovampToken]
  V2 --> TKX[Fixed-supply NovampTaxToken]
  V3 --> POOL3[Real v3 pool]
  V2 --> POOL2[Real v2 pair]
  POOL3 --> PV[PositionVault: lock v3 position]
  POOL2 --> LL[LiquidityLocker: burn or lock LP]
  POOL3 --> LL
  F --> CV[CreatorVesting: optional alloc lock]
  F --> REG[TokenRegistry: index launch]
  F --> FR[FeeRouter: collect creation fee]
  POOL3 --> FR2[FeeRouter: 1% swap fee on trades]
  POOL2 --> FR2
```

In one atomic transaction, `NovampLaunchFactory.launch(p)` validates the parameters, gates the identity (rejecting non-ASCII names/tickers and blocked symbols/images), routes to the correct seeder based on the tax config, deploys the fixed-supply token, creates and seeds the real pool, applies the liquidity choice and optional allocation lock, indexes the launch, and forwards the creation fee. If anything is invalid, the whole transaction reverts and no token is created.

## Routing logic

The factory derives the venue from the tax configuration — the creator never picks a DEX version directly.

| Tax config                                         | Token            | Seeder     | Venue                   |
| -------------------------------------------------- | ---------------- | ---------- | ----------------------- |
| `0%` buy **and** `0%` sell **and** `0%` early-sell | `NovampToken`    | `V3Seeder` | v3 single-sided pool    |
| Any buy / sell / early-sell fee `> 0`              | `NovampTaxToken` | `V2Seeder` | v2 fee-on-transfer pair |

## Fee routing after launch

```mermaid
flowchart LR
  TR[Each trade on the pool] --> FR[FeeRouter · 1%]
  FR --> CR[50% → creator]
  FR --> PT[50% → protocol treasury]
```

The `FeeRouter` is the single collector for the 1% Novamp swap fee, splitting it evenly between the creator and the protocol treasury on every trade. See the [Fee Model](/protocol/fee-model.md).

## Important details

| Property                | Detail                                                                  |
| ----------------------- | ----------------------------------------------------------------------- |
| Entry point             | `NovampLaunchFactory.launch(p)` — one atomic transaction                |
| Routing                 | Derived on-chain from tax config (0/0 → v3, any tax → v2)               |
| Deterministic addresses | BNB + Ethereum core contracts share the same addresses                  |
| Upgradeability          | None — every contract is non-upgradeable                                |
| Owner                   | Safe multisig per chain (configuration only)                            |
| Addresses               | Published on [Contract Addresses](/protocol/contracts-and-addresses.md) |

## What happens next?

* Look up the live address for any contract on your chain in [Contract Addresses](/protocol/contracts-and-addresses.md).
* Confirm a launch is genuine using [Contract Verification](/protocol/contract-verification.md).

## Continue exploring

* [📜 Contract Addresses](/protocol/contracts-and-addresses.md) — every live, verified address
* [🔎 Contract Verification](/protocol/contract-verification.md) — how auto-verify works
* [🛡️ Security Model](/protocol/security-model.md) — what's immutable
* [🧠 How Novamp Works](/protocol/how-novamp-works.md) — the protocol in one page


---

# 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://docs.novamp.io/protocol/contract-architecture.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.
