> For the complete documentation index, see [llms.txt](https://docs.canhav.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.canhav.com/token-launch/create-a-token.md).

# Create a token

**Available now** on Robinhood Chain Testnet.

Use the product UI at `/launch` on the CanHav site while connected to Robinhood Chain Testnet. Launches go through **TokenFactory v4**.

## What gets deployed

In one factory call the system:

1. Deploys a fixed-supply **LaunchToken** clone (Solady LibClone / CREATE2-style prediction)
2. Optionally deploys and funds a **vesting wallet** in the same transaction
3. Emits launch events including `journeyHash` and `descriptionHash`

Predicted addresses must use the factory's own views. LibClone bytecode is not byte-identical to classic ERC-1167, so do not reuse OpenZeppelin Clones math off-chain unless it matches the factory.

## Form rules (UI)

| Field       | Rules                                                                                                                         |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Name        | Letters, numbers, spaces. Max 32 characters.                                                                                  |
| Ticker      | Uppercase letters and numbers. Max 10 characters.                                                                             |
| Description | Max 256 characters. No links (`http`, `www.`, or bare domain paths).                                                          |
| Image       | PNG, JPG, WEBP, or GIF. Max 4 MB. Optional if blob upload is unavailable.                                                     |
| X handle    | Letters, numbers, underscores. Max 15 characters. Optional.                                                                   |
| Website     | Full `http(s)` URL. Optional.                                                                                                 |
| Journey     | Off-chain document whose hash is committed on-chain. See [Journey and credibility](/token-launch/journey-and-credibility.md). |

## Fees and salts

* **Launch fee:** paid in ETH to the factory. Hard ceiling in bytecode (`MAX_LAUNCH_FEE = 0.05 ether`). Live `launchFee` is set on the timelock-owned factory (see explorer / governance UI).
* **userSalt:** chosen by the creator. Internally scoped as `keccak256(abi.encode(msg.sender, userSalt))` so others cannot squat your predicted address.
* **Version note:** launching always uses the current factory version. A salt used at version N can be reused at N+1 because implementation changes change CREATE2 init code.

## After launch

* Tokens from **paused** factories (v1-v3) remain live and indexed; you just cannot create new ones there.
* Open the token on [Explore](/token-launch/explore-tokens.md) or the explorer.

## Next

[Journey and credibility](/token-launch/journey-and-credibility.md) · [Vesting](/token-launch/vesting.md)


---

# 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.canhav.com/token-launch/create-a-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.
