> For the complete documentation index, see [llms.txt](https://wiki.orbofi.com/learn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.orbofi.com/learn/tokenization-liquidity-and-onchain-systems/tokenization.md).

# Tokenization

### What the contracts are

Orbofi's **factory** is a custom contract. It is not a fork of another launchpad. It sits on top of **Doppler** (by Whetstone Research) and **Uniswap V4**, both of which are used unmodified:

| Layer                           | Whose code | Role                                           |
| ------------------------------- | ---------- | ---------------------------------------------- |
| Orbofi Factory                  | Orbofi     | Entry point; validates and configures a launch |
| Doppler Airlock + Token Factory | Doppler    | Deploys the ERC-20, creates and seeds the pool |
| Uniswap V4 PoolManager          | Uniswap    | Holds liquidity, executes swaps                |

The factory's job is to be opinionated about what a valid Orbofi launch looks like: which numeraires are permitted, the fee shape, the minimum treasury share, the opening-price floor. It enforces those on chain rather than trusting the caller, and its allowlists are timelocked.

### The token

A standard **ERC-20**, deployed by Doppler's token factory.

* Fixed supply, minted at launch. No further minting.
* **No transfer tax**, no reflection, no rebasing, no blacklist, no pausing.
* 18 decimals.
* Every fee is charged by the **pool**, on the swap — never by the token contract.

This means a plain `balanceOf` / `transfer` / `approve` integration is correct and complete. Nothing about holding or moving the token is special.

{% hint style="info" %}
Agent token addresses are mined to end in **`AAC`** — for example `0xa197402dEA39E3D03c208319888bBD58976e6AAC`. It is a display convenience, not an authenticity check: anyone can grind the same suffix. Always authenticate on the factory event.
{% endhint %}

### What happens at launch

One transaction:

1. The creator calls the Orbofi factory.
2. The factory validates the configuration and calls the Doppler Airlock.
3. The Airlock deploys the ERC-20 and initializes a Uniswap V4 pool against the chosen numeraire.
4. The full supply is placed as **locked liquidity** in that pool.
5. The factory emits `AgentCoinLaunched`.

Trading is open the moment the transaction confirms. There is no presale, no allocation round and no bonding-curve phase.

### Numeraire

An agent is paired against **WETH** or a **tokenized stock** (NVDA, AAPL, and others). The pairing is chosen at launch and fixed. Read it from the `numeraire` field of `AgentCoinLaunched` rather than assuming WETH — stock-paired agents are common.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://wiki.orbofi.com/learn/tokenization-liquidity-and-onchain-systems/tokenization.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
