> For the complete documentation index, see [llms.txt](https://stonkmarket.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stonkmarket.gitbook.io/docs/smart-contracts/stonk-token.md).

# StonkToken

The core token contract. Each token is a **StonkTokenV2** — a plain ERC-20 with a 5% max-wallet cap and an NYSE market-hours transfer gate. It is deployed as an EIP-1167 minimal-proxy **clone** of a single implementation, so every launch is cheap and every token shares identical, audited logic.

## Overview

| Property     | Value                                          |
| ------------ | ---------------------------------------------- |
| Contract     | `StonkTokenV2.sol`                             |
| Pattern      | EIP-1167 minimal-proxy clone (not upgradeable) |
| Total Supply | 1,000,000,000 (fixed)                          |
| Owner        | None — `owner()` is always `address(0)`        |

Implementation, cloned per launch:

| Network                | Address                                                                                                                                  |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Base mainnet (8453)    | [`0xe159EBa8cada2c572c933F5013D55DD81feB1131`](https://basescan.org/address/0xe159EBa8cada2c572c933F5013D55DD81feB1131)                  |
| Robinhood Chain (4663) | [`0xcaF212aba219Ba8D72849a261021687DA0cbfF50`](https://robinhoodchain.blockscout.com/address/0xcaF212aba219Ba8D72849a261021687DA0cbfF50) |

There is no bonding-curve logic *inside* the token in v2. The curve lives in the token's Uniswap v4 pool as a single concentrated-liquidity position (see [How Trading Works](/docs/concepts/graduation.md)). The token's job is narrow: be a well-behaved ERC-20 that (a) has a fixed supply, (b) caps how much any one wallet can hold, and (c) refuses to move while the NYSE is closed.

## No Owner, Not Upgradeable

* The token has **no owner** and **no admin functions**. Nothing about it can be changed after launch.
* It is a **clone, not a proxy** — the implementation address is fixed and cannot be swapped. There is no upgrade path.
* The implementation's initializer is disabled in its constructor; only the factory can clone and initialize, atomically, so there is no window to hijack a fresh clone.

## Fixed Supply

The total supply is **1,000,000,000** tokens, minted at launch. Minting is **permanently disabled** once the launch transaction finalizes — after that the supply can only ever go down (via burns), never up. There is no mint function an owner could call, because there is no owner.

At launch the supply is split between the liquidity seeded into the Uniswap v4 pool and the small dev allocation (0.5%) minted to the deployer.

## Max Wallet

Every token caps the balance any single address may hold at **500 bps (5%)** of the original 1,000,000,000 supply. A transfer whose recipient would exceed the cap reverts. Infrastructure addresses required for the market to function (the Uniswap v4 pool / PoolManager and the launch machinery) are exempt so liquidity and routing are not throttled by the cap.

The dev allocation shares this same 5% ceiling with the deployer's launch buy — the two together cannot push the deployer over the wall.

## Trading-Window Gate

The token's `transfer()` / `transferFrom()` are gated by NYSE market hours, reading the shared [MarketHoursOracle](/docs/smart-contracts/market-hours-oracle.md):

1. Before `launchTime` (the next NYSE open computed at deploy), transfers are locked — a freshly launched token cannot trade until the first bell. The one-shot launch actions (seeding liquidity, minting the dev allocation) are exempt so the launch transaction can complete.
2. From `launchTime` onward, a transfer is allowed only while `marketHoursOracle.isMarketOpen()` is true.

This is **defence in depth**: the [StonkHook](/docs/smart-contracts/stonk-hook.md) already blocks off-hours swaps at the pool, and this transfer gate independently blocks off-hours movement at the token. Neither relies on the other. Minting at launch and burns run through the low-level `_update()` path and are not gated.

See [Market Hours](/docs/concepts/market-hours.md) for the full schedule and oracle behavior.

## Dev Allocation Locking

If a dev allocation was minted at launch, those tokens are locked in the deployer's wallet until `launchTime` — the deployer cannot move them before the public can trade.

## Immutability

After launch, **nothing** about the token can change: no owner, no admin function, no upgradeability, no further minting. The fee, max-wallet cap, oracle, pool, and launch time are all fixed at birth. Each token is a standalone, autonomous contract.


---

# 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://stonkmarket.gitbook.io/docs/smart-contracts/stonk-token.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.
