# README

Maintainer notes for the Git Sync source of [docs.canhav.com](https://docs.canhav.com). This file is for contributors. Visitors should land on [Welcome to CanHav](/getting-started/welcome-to-canhav).

If GitBook still publishes this README as a top-level page, set the site homepage to Welcome in Git Sync / `.gitbook.yaml` and republish.

## Structure

| Group                  | Path                         | Focus                                                        |
| ---------------------- | ---------------------------- | ------------------------------------------------------------ |
| Getting started        | `general/` + ideation intros | Welcome, two tracks, three answer types                      |
| Product track          | `ideation/product-track.md`  | Project / product design                                     |
| Token track (ideation) | `ideation/`                  | Token design, computed outputs, warnings, enforced vs stated |
| Public pages           | `ideation/public-pages.md`   | `/p` and `/t`                                                |
| Token Launch           | `token-launch/`              | Launchpad, deploy paths, fees, guarantees                    |
| Accounts               | `accounts/`                  | Clerk (in development)                                       |
| AI and IDE             | `ai/`                        | Export and MCP (in development)                              |
| Reference              | `reference/`                 | Networks and factory versions                                |
| Agent Launch           | `agent-launch/`              | ERC-8004 (not started; pages retained, demoted)              |

Sidebar order is defined in [`SUMMARY.md`](https://github.com/wazarat/canhav.dev/tree/main/docs/SUMMARY.md).

## Product surfaces

1. **Token Launch** on Robinhood Chain Testnet (available now)
2. **Projects** ideation tracks (available now)
3. **Accounts / AI export** (in development)
4. **Foundry scaffold generator** (deferred)
5. **Agent / ERC-8004** (not started)

## Copy rules

* No emojis
* No em dashes (use commas, periods, colons, or hyphens)
* Short pages, one job each
* Status marker on every page: Available now / In development / Deferred / Not started
* Tables for addresses and parameters
* Do not describe in-progress features in the present tense

## Theme

Light theme / white background is a GitBook **Customization** setting. Steps: [`SETUP.md`](https://github.com/wazarat/canhav.dev/tree/main/docs/SETUP.md).

## GitBook setup

Repo root [`.gitbook.yaml`](https://github.com/wazarat/canhav.dev/tree/main/.gitbook.yaml) sets `root: ./docs/`, homepage to Welcome, and sidebar to `SUMMARY.md`.

Full checklist (space, theme, Git Sync, `docs.canhav.com` DNS): see [`SETUP.md`](https://github.com/wazarat/canhav.dev/tree/main/docs/SETUP.md).


# Welcome to CanHav

**Available now** for Token Launch and Projects on testnet. **In development** for Clerk accounts and AI/IDE export. **Deferred** for a Foundry scaffold generator. **Not started** for Agent / ERC-8004.

CanHav is a research-led platform for EVM builders and capital-markets practitioners. The product site at [canhav.com](https://canhav.com) focuses on DeFi ecosystem solutions. These docs cover the testnet products that ship alongside that research.

## Important: Robinhood

CanHav has **no affiliation** with Robinhood Markets, Inc. or its affiliates.

Robinhood Chain does **not** provide distribution to Robinhood brokerage customers. Deploying a token or app on Robinhood Chain Testnet puts your work in front of nobody by default. Listing on CanHav is not a channel to Robinhood users either.

## What you will find here

| Section                                                       | What it covers                                         | Status         |
| ------------------------------------------------------------- | ------------------------------------------------------ | -------------- |
| [What CanHav is](/getting-started/what-canhav-is)             | What CanHav is (and is not)                            | Available now  |
| [The two ideation tracks](/getting-started/two-tracks)        | Product and Token tracks, linking                      | Available now  |
| [The three answer types](/getting-started/three-answer-types) | Decisions, computed outputs, status declarations       | Available now  |
| [Product track](/product-track/product-track)                 | Sector, users and payers, architecture, security decls | Available now  |
| [Token track](/token-track-ideation/token-track)              | Eight design sections, computed outputs, warnings      | Available now  |
| [Public pages](/public-pages/public-pages)                    | Separate `/p` and `/t` pages, scoped signals           | Available now  |
| [Token Launch](/token-launch/overview)                        | Create and operate tokens on Robinhood Chain Testnet   | Available now  |
| [Deploy paths](/token-launch/deploy-paths)                    | Quick deploy vs design deploy                          | Available now  |
| [Fees and guarantees](/token-launch/fees-and-economics)       | Fee switches, caps, timelock, contract guarantees      | Available now  |
| [Accounts](/accounts/clerk-accounts)                          | Clerk-based accounts                                   | In development |
| [AI and IDE](/ai-and-ide/export-and-mcp)                      | Markdown export, AGENTS.md, MCP                        | In development |
| [Agent Launch](/agent-launch-not-started/overview)            | ERC-8004 on Base Sepolia                               | Not started    |

## Product surfaces (today)

1. **Token Launch** on Robinhood Chain Testnet (chain ID `46630`). Factory launches, journeys, vesting, escrow, sales, AMM, hosted indexer, explore.
2. **Projects** (Product and Token ideation tracks, studio, public pages, design deploy). Available now on testnet.

**Deferred:** Foundry scaffold generator (not a product feature yet).

**Not started:** Agent / ERC-8004 track. Existing pages in that section are retained for history only and are marked Not started.

All product surfaces described here are **testnet only**. Nothing here is financial advice, and nothing here is a mainnet product yet.

## Site appearance

The docs site should use a **light** theme with a white background. That is a GitBook Customization setting, not a content-file change. You (or anyone with GitBook access) must apply it: dashboard → Customization → theme **Clean** → default mode **Light** → Publish. Full steps: [SETUP.md](https://github.com/wazarat/canhav.dev/tree/main/docs/SETUP.md).

## Who this is for

* Protocol engineers and founders launching on testnets
* Teams that want on-chain commitments (journey hashes, milestone lockups) instead of opaque off-chain claims
* Teams designing a product, a token, or both before they deploy

## Where to go next

* New here: [What CanHav is](/getting-started/what-canhav-is), then the [litepaper](/getting-started/litepaper).
* Product design: [Product track](/product-track/product-track).
* Token design: [Token track](/token-track-ideation/token-track).
* Ready to launch: [Token Launch overview](/token-launch/overview).


# What CanHav is

**Available now** for Token Launch and Projects on testnet. Accounts and AI/IDE are **in development**. Agent / ERC-8004 is **not started**.

## What CanHav is

CanHav is a research-led platform for EVM builders and capital-markets practitioners.

* **Research** on [canhav.com](https://canhav.com): DeFi ecosystem solutions and sector context.
* **Token Launch**: a testnet launchpad on Robinhood Chain Testnet for fixed-supply tokens, journeys, vesting, escrow, sales, and a minimal AMM.
* **Projects**: two independent ideation tracks (Product and Token) so teams can design, publish, and optionally link before or instead of deploying.

Everything in these docs that describes product surfaces is **testnet only** unless a page says otherwise.

## What CanHav is not

* Not affiliated with Robinhood Markets, Inc. Robinhood Chain does not distribute to Robinhood brokerage customers. See [Welcome](/getting-started/welcome-to-canhav).
* Not a mainnet product yet.
* Not financial, legal, or investment advice.
* Not a paid tier product today: surfaces described here are free.
* Not a guarantee of token performance, liquidity, or user acquisition.
* Not custodial: CanHav does not hold your keys.
* Not an Agent / ERC-8004 product yet (that track is not started).

## Who it is for

* Founders and protocol engineers shipping on testnets
* Teams that want verifiable on-chain commitments instead of PDF-only claims
* Teams that need to design a product, a token, or both honestly before they deploy
* Practitioners reading research who also want to inspect how launches are structured

## Related

* [Litepaper](/getting-started/litepaper)
* [The two ideation tracks](/getting-started/two-tracks)
* [Token Launch overview](/token-launch/overview)


# Glossary

**Available now** as reference. Terms for Token Launch, Projects, and Agent Launch match how CanHav uses them in product and contracts.

## Product

| Term               | Meaning                                                                                                                                                                   |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CanHav             | Research platform and testnet product suite. Product site: [canhav.com](https://canhav.com).                                                                              |
| Token Launch       | Testnet launchpad on Robinhood Chain Testnet for creating fixed-supply tokens with optional vesting, journeys, sales, and AMM liquidity. Available now.                   |
| Projects           | Ideation studio with independent Product and Token design tracks, computed outputs, and public pages. Available now.                                                      |
| Agent Launch       | Intended ERC-8004 agent identity track. **Not started.**                                                                                                                  |
| Journey            | Off-chain document describing a token's plan and milestones. Its hash is committed on-chain at launch.                                                                    |
| Research preview   | Content and software that is experimental, testnet-only, and not financial advice.                                                                                        |
| Status declaration | Team-stated status for legal, governance, or security work (already in place, handled by legal/ops, planned before mainnet, not yet). Not enforced by the token contract. |

## Projects

| Term             | Meaning                                                                                 |
| ---------------- | --------------------------------------------------------------------------------------- |
| Product track    | Ideation document for what you are building (sector, users, architecture, security).    |
| Token track      | Ideation document for token design (eight sections from rationale through post-launch). |
| Computed outputs | Float, FDV:float, unlock calendar, and warnings derived from token design answers.      |
| Clerk            | Intended account provider for studio (in development).                                  |

## Token Launch

| Term                    | Meaning                                                                                                                                       |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Robinhood Chain Testnet | Arbitrum Orbit testnet used by CanHav Token Launch. Chain ID `46630`. Not affiliated with Robinhood brokerage distribution.                   |
| TokenFactory            | Contract that deploys token clones (CREATE2 / LibClone). Current live factory is v4. Older factories are paused; their tokens remain indexed. |
| LaunchToken             | Fixed-supply ERC20 implementation cloned per launch. No mint after initialize; no owner; not upgradeable.                                     |
| Launch fee              | ETH paid to the factory on launch. Hard-capped in bytecode (`MAX_LAUNCH_FEE`); current documented testnet value 0.0002 ETH.                   |
| userSalt                | Creator-chosen salt. Combined with `msg.sender` so predicted addresses cannot be front-run by others.                                         |
| journeyHash             | On-chain commitment to the full journey document.                                                                                             |
| descriptionHash         | On-chain commitment to the short form description field.                                                                                      |
| Vesting wallet          | Clone that locks a percent of supply for a beneficiary with duration and optional cliff.                                                      |
| MilestoneEscrow         | Admin-less singleton for milestone-dated token lockups.                                                                                       |
| JourneyUpdates          | Admin-less singleton that anchors content-addressed progress updates.                                                                         |
| AllocationSale          | Admin-less fixed-price sale contract. Fee-free; proceeds unlock on milestone dates.                                                           |
| LaunchAMM               | Minimal token/ETH AMM. LP fee plus optional protocol fee routed through FeeSplitter. Per-pool protocol fee frozen at creation.                |
| FeeSplitter             | Timelock-owned destination for platform fee share; permissionless distributions to configured payees.                                         |
| TimelockController      | Owns factory and AMM admin knobs. Admin changes wait out a public delay (300s on testnet).                                                    |
| Indexer                 | Ponder app that indexes launch events for explore and token detail pages.                                                                     |

## Agent Launch

| Term                    | Meaning                                                                                                                                      |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Base Sepolia            | Base L2 testnet. Chain ID `84532`. Home of CanHav Agent Launch.                                                                              |
| ERC-8004                | Standard for on-chain agent identity and related registries.                                                                                 |
| Identity Registry       | Public ERC-721 registry where each agent is a token. CanHav does not own this contract.                                                      |
| Reputation Registry     | Related ERC-8004 registry. Used for wiring checks; full reputation flows are out of scope for v1.                                            |
| Vanity prefix           | Testnet Identity Registry addresses start with `0x8004A818`. Mainnet starts with `0x8004A169`. Mixing them up fails silently unless checked. |
| MCP (Agent Launch)      | Model Context Protocol as intended agent capability endpoint for registration gating.                                                        |
| MCP (Projects / AI)     | CanHav MCP server for reading design documents in an IDE (in development). Separate from Agent Launch MCP notes.                             |
| Registration file / URI | Metadata URI attached to an agent identity (URL or inline `data:` URI).                                                                      |
| Agents indexer          | Separate Ponder app for ERC-8004 events (not shared with the launchpad indexer).                                                             |


# Litepaper

**Research preview.** Token Launch and Projects are available now on testnet. Accounts and AI/IDE export are in development. Agent / ERC-8004 is not started. This document states product thesis and sequencing. It is not a legal whitepaper, not an offering, and not financial advice. All product surfaces described here are **testnet only**.

## Problem

Builders and capital-markets teams need two things that are usually split apart:

1. **Research context** that goes beyond raw on-chain metrics
2. **Credible testnet launches** where commitments (plans, lockups, sales rules) are verifiable on-chain instead of living only in a thread or PDF

Separately, teams need a place to design a product and a token as honest documents before they deploy.

## Affiliation

CanHav has no affiliation with Robinhood. Robinhood Chain does not distribute apps or tokens to Robinhood brokerage customers. See [Welcome](/getting-started/welcome-to-canhav).

## Approach

CanHav combines research on [canhav.com](https://canhav.com) with testnet product surfaces:

| Track                      | Network                           | Role                                                                                                                | Status         |
| -------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------- | -------------- |
| Token Launch               | Robinhood Chain Testnet (`46630`) | Factory tokens, journey hashes, vesting, milestone escrow, allocation sales, AMM, timelocked admin, hosted indexer. | Available now  |
| Projects                   | Same product site                 | Independent Product and Token design tracks, computed tokenomics, optional link, public pages, design deploy.       | Available now  |
| Accounts / AI export       | Same product site                 | Clerk accounts; markdown export and MCP for designs.                                                                | In development |
| Foundry scaffold generator | N/A                               | Generate a Foundry project from a design.                                                                           | Deferred       |
| Agent / ERC-8004           | Base Sepolia (`84532`)            | Agent identity track.                                                                                               | Not started    |

Token Launch and Projects do not gate each other. A product with no token is legitimate. A token design that is never deployed is legitimate.

## Token Launch thesis

A launch should leave a trail that others can check:

* **Fixed supply** minted at initialize; pause stops new launches, not existing tokens
* **Journey and description hashes** commit off-chain narrative to on-chain events (including design snapshot hashes on the design-deploy path)
* **Optional vesting** in the same launch transaction
* **Admin-less** escrow, updates, and sales where possible so there is no EOA “attester” to rug progress mechanics
* **Timelocked** factory and AMM knobs so fee and implementation changes are public and delayed
* **Indexed explore** so launches are discoverable without scraping explorers by hand

The design deliberately avoids unaudited “pump clone” patterns. Concentration and bundler risk belong on a future metrics list, not as a product feature.

## Projects thesis

A team should be able to design either end first:

* A **product** with no token is a legitimate outcome
* A **token design** that is never deployed is also legitimate
* Neither track gates the other; they can optionally link
* The platform asks decisions, computes float and unlock calendars, and records status declarations for legal, governance, and security without pretending those are finished
* Readers can tell **enforced on-chain** facts from **stated by team** commitments

Details: [The two ideation tracks](/getting-started/two-tracks).

## Trust model (testnets)

| Guarantee                   | Reality                                                                        |
| --------------------------- | ------------------------------------------------------------------------------ |
| Testnet only                | Contracts and UIs target Robinhood Chain Testnet                               |
| Public delay on admin       | Factory and AMM ownership sit behind a TimelockController on Token Launch      |
| Admin-less progress rails   | MilestoneEscrow, JourneyUpdates, AllocationSale have no owner                  |
| Indexed, not oracle-trusted | Explore pages read indexed chain events; content hashes verify off-chain blobs |
| Research preview            | Site and docs may change; nothing here is audited mainnet software             |

## Out of scope (for now)

* Mainnet Token Launch or Projects
* Agent / ERC-8004 product track
* Custodial wallets or fiat onramps
* KYC / exchange listing processes
* Guaranteed token performance
* Pricing or paid tiers (everything described here is free)
* Foundry scaffold generator (deferred)

## Sequencing

1. Token Launch on Robinhood Chain Testnet (available now).
2. Projects ideation, public pages, and design deploy (available now).
3. Clerk accounts and AI/IDE export (in development).
4. Only after those loops are proven, consider mainnet. Agent / ERC-8004 remains not started.

## Related reading

* [Welcome to CanHav](/getting-started/welcome-to-canhav)
* [What CanHav is](/getting-started/what-canhav-is)
* [Token Launch overview](/token-launch/overview)
* [The two ideation tracks](/getting-started/two-tracks)
* [Glossary](/getting-started/glossary)


# The two ideation tracks

**Available now.** Studio, draft editors, public project/token pages, explore tabs, and optional linking are live on the product site (testnet / URL-only studio).

CanHav Projects has two tracks: **Product** and **Token**. They are independent by design.

## Independence

* You can start from either end.
* Neither track gates the other.
* You can optionally **link** a product to a token design (or leave them unlinked).
* A **product with no token** is a legitimate outcome.
* A **token designed but never deployed** is also a legitimate outcome.

The point is to make the design document honest before anyone confuses a plan with a live market.

## How linking works

Linking is optional and owned by you in studio.

1. Open a project or token design editor. The link panel lists entities you own.
2. Create a link only when you own both sides. v1 linking is **one-to-one** (one project to one token design).
3. After you link, each public page shows a cross-card to the other entity (`/p/...` ↔ `/t/...`).
4. Credibility signals stay scoped to the entity they belong to. Linking does **not** copy project verify signals onto the token page, or float/unlock metrics onto the project page.

Unlinking (when available in studio) removes the cross-reference. It does not delete either document.

See [Public pages](/public-pages/public-pages).

## Product track

Captures what you are building: sector, what it does, users and payers, why this chain, stage, contract architecture, worst-case bug impact, and security status declarations.

See [Product track](/product-track/product-track).

## Token track

Eight sections: token rationale, supply and allocation, vesting and lockups, distribution, market, governance, legal, and post-launch. The platform computes float, unlock calendars, and warnings from those answers.

See [Token track](/token-track-ideation/token-track), [Computed outputs](/token-track-ideation/computed-outputs), and [Warnings](/token-track-ideation/warnings).

## Three answer types

Both tracks use the same answer model: decisions you make, outputs the platform computes, and status declarations for work that may live elsewhere. See [The three answer types](/getting-started/three-answer-types).

## Studio and publish

You draft in studio (`/studio`), publish snapshots to public pages (`/p/...` for projects, `/t/...` for token designs), and optionally attach a deployed token address to a published design. Explore includes tabs for tokens, projects, and designs. Details: [Public pages](/public-pages/public-pages) and [Deploy paths](/token-launch/deploy-paths).

Studio editing requires an account ([Clerk](/accounts/clerk-accounts), in development for production keys). Reading published pages does not.


# The three answer types

**Available now** as part of Projects.

Projects does not treat every field the same. There are three answer types.

## 1. Decisions

Choices the team makes: sector, allocation splits, cliff months, sale price, LP treatment, and similar.

These are asked as forms. You own the answers. Readers can disagree with them, but they are not derived by the platform.

## 2. Computed outputs

Numbers and charts the platform derives from your decisions and shows back. Examples:

* Circulating float at launch
* Fully diluted to float ratio
* Unlock calendar
* Team versus investor cliff comparison
* Warning cards when the structure looks risky

You are not asked for these values. Asking would invite inconsistent math. Derived values are never stored; they are recomputed when the public page renders. See [Computed outputs](/token-track-ideation/computed-outputs) and [Warnings](/token-track-ideation/warnings).

## 3. Status declarations

Declarations for legal, governance, and security work that often sits outside the product UI.

Typical statuses:

| Status                        | Meaning                     |
| ----------------------------- | --------------------------- |
| Already in place              | Done, with an optional note |
| Handled by our legal/ops team | Owned outside this document |
| Planned before mainnet        | Explicitly deferred         |
| Not yet                       | Honest gap                  |

### Why status declarations exist

Teams may already have handled audit, counsel, key custody, or treasury process elsewhere. Or they may legitimately not have addressed them before product-market fit. Status declarations record where things stand without forcing a fake “complete” checkbox.

They are **stated by the team**, not enforced by the token contract. See [Enforced versus stated](/token-track-ideation/enforced-vs-stated) and [Contract guarantees](/token-launch/contract-guarantees).


# Product track

**Available now.** The sections below match the studio Project editor.

The Product track is a design document for what you are building. A product with no token is a legitimate published outcome.

Editor steps: Basics, Architecture, Security, Reality, Review.

***

## Sector, what it does, users and payers, why this chain, current stage

### Asked

| Field                       | Notes                                                                                                                                                                                                                                              |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Project name                | Required                                                                                                                                                                                                                                           |
| Sector                      | Credit and lending; liquidity infrastructure; underwriting and risk; RWA infrastructure; oracles and data; perps and derivatives; agentic trading; stablecoin and payments; portfolio and vaults; DEX and market structure; other (with free text) |
| What it does                | One paragraph                                                                                                                                                                                                                                      |
| Users and payers            | Who the user is, and who pays (often not the same answer)                                                                                                                                                                                          |
| Why this chain specifically | Free text                                                                                                                                                                                                                                          |
| Current stage               | Idea; design doc; prototype; testnet contracts deployed; live elsewhere                                                                                                                                                                            |

### Computed / warnings

None in this step.

***

## Contract architecture and external dependencies

### Asked

| Field                 | Notes                                                                  |
| --------------------- | ---------------------------------------------------------------------- |
| What contracts exist  | “None yet” is an honest answer                                         |
| External dependencies | Protocols your contracts call (for example Uniswap, Morpho, Chainlink) |
| Oracles               | Free text                                                              |
| Upgradeability        | Immutable; upgradeable proxy; partially upgradeable; undecided         |

### Computed / warnings

None.

***

## Admin functions

### Asked

| Field                              | Notes                                                          |
| ---------------------------------- | -------------------------------------------------------------- |
| Admin functions and why they exist | Free text. Explain every privileged path and why it is needed. |

### Computed / warnings

None.

***

## Worst-case bug impact and security status declarations

### Asked

| Field                 | Notes                                                  |
| --------------------- | ------------------------------------------------------ |
| Worst-case bug impact | Lose user funds; lock funds; misprice; nothing serious |

Security status declarations (same four statuses as elsewhere: already in place; handled by legal/ops; planned before mainnet; not yet):

| Declaration       | Covers                 |
| ----------------- | ---------------------- |
| Audit             | External review status |
| Bug bounty        | Program status         |
| Monitoring        | Ops monitoring         |
| Incident response | IR readiness           |
| Key custody       | How keys are held      |

Copy pressure scales with the worst-case answer. That is framing only, not validation.

On the public page, “not yet” on high blast-radius answers reads as a live risk the team chose to publish.

***

## Reality

Before publish, the editor requires an explicit acknowledgement:

> Robinhood Chain does not provide distribution to Robinhood brokerage customers. Deploying here puts your app in front of nobody by default. CanHav is an independent project with no affiliation with Robinhood Markets, Inc. Listing here is not a channel to its users either.

### Asked

| Field                                          | Notes             |
| ---------------------------------------------- | ----------------- |
| Myth acknowledgement                           | Required checkbox |
| Where will your first hundred users come from? | Free text         |

Optional verify signals (wallet, GitHub repo, testnet contract addresses) attach for public credibility checks scoped to the **project**, not to a linked token. Each signal is omitted silently if it fails to load. See [Public pages](/public-pages/public-pages).

***

## Review and publish

Publishing snapshots the document and assigns a public slug under `/p/...`. Linking to a token design is optional. See [The two ideation tracks](/getting-started/two-tracks).

***

## Related

* [Token track](/token-track-ideation/token-track)
* [The two ideation tracks](/getting-started/two-tracks)
* [The three answer types](/getting-started/three-answer-types)
* [Enforced versus stated](/token-track-ideation/enforced-vs-stated)
* [Public pages](/public-pages/public-pages)


# Token track

**Available now.** The eight sections below match the studio Token design editor.

The Token track is a design document for a token you may or may not deploy. Publishing a design does not deploy a contract. Deploying from a published design is a separate step that commits the design snapshot hash on-chain as `journeyHash`. See [Deploy paths](/token-launch/deploy-paths).

## Sections

1. [Token rationale](#1-token-rationale)
2. [Supply and allocation](#2-supply-and-allocation)
3. [Vesting and lockups](#3-vesting-and-lockups)
4. [Distribution](#4-distribution)
5. [Market](#5-market)
6. [Governance](#6-governance)
7. [Legal](#7-legal)
8. [Post-launch](#8-post-launch)

Computed panel (float, unlock calendar, warnings) updates as you answer. See [Computed outputs](/token-track-ideation/computed-outputs) and [Warnings](/token-track-ideation/warnings).

***

## 1. Token rationale

### Asked

| Field                       | Options / notes                                                                                               |
| --------------------------- | ------------------------------------------------------------------------------------------------------------- |
| Why does this need a token? | Token is the product; bootstrap supply; economic security; governance; fee capture; fundraising; not sure yet |
| Issuance path               | Issue and lock (no market yet); points first; straight to market                                              |
| Beyond a database row       | Free text: what economic work only a token can do here                                                        |

### Computed

None in this section alone. Answers feed warnings.

### Warnings that can fire

| Warning                          | When                                                                               |
| -------------------------------- | ---------------------------------------------------------------------------------- |
| Does this actually need a token? | “Not sure yet,” or free text that looks like a loyalty / points / cashback program |

***

## 2. Supply and allocation

### Asked

| Field              | Notes                                                                                      |
| ------------------ | ------------------------------------------------------------------------------------------ |
| Token name, ticker | Ticker uppercase alphanumeric                                                              |
| Total supply       | Integer token count                                                                        |
| Supply policy      | Fixed or inflationary (with optional inflation note)                                       |
| Allocation split   | Team, investors, treasury/ecosystem, public, liquidity, advisors, other (must sum to 100%) |

Note: the CanHav launch contract mints a **fixed** supply at initialize. An inflationary policy in the design would live in your own contracts, not in the factory token.

### Computed

* Treasury / ecosystem percent (held, not circulating in the unlock model)
* Inputs to float and unlock calendar once vesting, distribution, and market are filled

### Warnings

None specific to this section alone. Low float warnings appear after distribution/market answers.

***

## 3. Vesting and lockups

### Asked

For each vested cohort that has allocation (team, investors, advisors):

| Field                     | Notes                                                                     |
| ------------------------- | ------------------------------------------------------------------------- |
| Cliff                     | Months                                                                    |
| Total duration            | Months                                                                    |
| Release type              | Linear; cliff then linear; milestone-conditional                          |
| If a founder leaves early | Unvested to treasury; to remaining team; continues vesting; no policy yet |

If there is no team, investor, or advisor allocation, vesting is skipped.

### Computed

* Unlock calendar cohort schedules
* Team versus investor cliff comparison
* Milestone-conditional schedules are plotted at the latest month and marked uncertain

### Warnings that can fire

| Warning                           | When                                                                         |
| --------------------------------- | ---------------------------------------------------------------------------- |
| Team cliff shorter than investors | Team cliff months less than investor cliff months while both have allocation |
| Unlocks clustered                 | Two or more cohorts’ first unlocks land in the same month (after launch)     |

***

## 4. Distribution

### Asked

| Field              | Notes                                                               |
| ------------------ | ------------------------------------------------------------------- |
| Distribution event | None (creator holds); airdrop; fixed-price sale; auction/batch; LBP |

If the event is a sale (fixed-price, auction, or LBP):

| Field                      | Notes                                  |
| -------------------------- | -------------------------------------- |
| Price, hard cap            | ETH                                    |
| Soft cap, per-wallet limit | Optional ETH                           |
| Access                     | Allowlist or open                      |
| Undersubscription plan     | Proceed; refund; postpone; no plan yet |

### Computed

* Public allocation enters month-0 float when a distribution event exists (not “none”)

### Warnings that can fire

| Warning                             | When                                                                   |
| ----------------------------------- | ---------------------------------------------------------------------- |
| Sale with no undersubscription plan | Sale event and undersubscription = no plan yet                         |
| Float under 5%                      | Distribution or market at launch exists and computed float is below 5% |

***

## 5. Market

### Asked

| Field         | Notes                   |
| ------------- | ----------------------- |
| Market timing | At launch; later; never |

If at launch:

| Field            | Notes                                              |
| ---------------- | -------------------------------------------------- |
| Liquidity amount | ETH                                                |
| ETH source       | Free text                                          |
| LP treatment     | Locked (with months); burned; unlocked             |
| Anti-sniping     | Launch window; early-sell tax; trading delay; none |

### Shown (not asked): platform-fixed facts

* Venue and pairing are fixed: token ⇄ ETH on the launch AMM
* Trading fee: 0.30% to LPs; opt-in protocol fee split 70/30 project/platform, enforced in bytecode
* A locked LP position still accrues trading fees to its owner

See [Fees and economics](/token-launch/fees-and-economics).

### Computed

* Liquidity allocation enters month-0 float when market is at launch

### Warnings

Low float (same rule as distribution) when market is at launch.

***

## 6. Governance

### Asked (status declarations)

| Field                | Status options                                                          |
| -------------------- | ----------------------------------------------------------------------- |
| Governance mechanism | Already in place; handled by legal/ops; planned before mainnet; not yet |
| Admin key custody    | Same                                                                    |
| Treasury custody     | Same                                                                    |

Framing: most pre-PMF teams have not settled this, and that is fine.

### Shown (not asked): contract guarantees

* Cannot be minted after deployment
* Cannot be paused, frozen, or blacklisted
* Cannot be upgraded: no proxy, no owner
* Source pre-verified: the factory clones a verified implementation

Verify on the explorer: [TokenFactory v4](https://explorer.testnet.chain.robinhood.com/address/0x30Db3A828F65B92434c6aDB27AEeD01850277b08). Full page: [Contract guarantees](/token-launch/contract-guarantees).

### Computed / warnings

None from this section.

***

## 7. Legal

### Asked

| Field        | Options                                                        |
| ------------ | -------------------------------------------------------------- |
| Legal status | Working with counsel; engaging counsel before mainnet; not yet |

Topics typically raised (not stored as separate fields):

* How the token is offered and to whom
* Whether any sale is a securities offering where buyers live
* Tax treatment of allocations, vesting, and treasury sales
* Entity structure holding the treasury and IP

CanHav does not give legal advice. This section records where legal work stands.

### Computed / warnings

None.

***

## 8. Post-launch

All optional.

### Asked

| Field                                   | Notes                                |
| --------------------------------------- | ------------------------------------ |
| Treasury runway                         | Months                               |
| Reporting cadence                       | Monthly; quarterly; ad hoc; none yet |
| If the price collapses                  | Free text plan                       |
| What would make you call this a failure | Free text                            |

### Computed / warnings

None.

***

## Related

* [Computed outputs](/token-track-ideation/computed-outputs)
* [Warnings](/token-track-ideation/warnings)
* [Enforced versus stated](/token-track-ideation/enforced-vs-stated)
* [Product track](/product-track/product-track)
* [The three answer types](/getting-started/three-answer-types)
* [Deploy paths](/token-launch/deploy-paths)


# Computed outputs

**Available now** with the Token track. Derived values are computed live from your answers. They are not stored as separate fields. Public pages recompute them server-side from the published snapshot.

## Why these are computed rather than asked

Asking for “float at launch” or “FDV to float” invites inconsistent math. The platform already has allocations, vesting schedules, distribution timing, and market timing. Deriving the outputs once keeps the public page honest and keeps the editor from arguing with itself.

Modeling assumptions:

* Treasury / ecosystem and “other” allocations are **held**, not circulating. They do not enter float or the unlock calendar.
* **Public** allocation circulates at month 0 when a distribution event exists (not “none”).
* **Liquidity** circulates at month 0 only when a market exists at launch.
* **Linear** vesting: at the cliff month the accrued fraction releases, then equal monthly releases through the duration.
* **Cliff then linear**: nothing at the cliff, then the full amount spreads over months after it.
* **Milestone-conditional**: cannot be dated; plotted at the latest month (duration) and marked uncertain.

## Circulating float at launch

Percent of total supply that unlocks in month 0 under the rules above.

## Fully diluted to float ratio

`100 / floatAtLaunchPct` when float is greater than zero. Null when float is zero (for example issue-and-lock with no market).

A high ratio means a small liquid float is setting the price for a much larger fully diluted supply.

### Worked example

A **4%** circulating float at launch produces:

`100 / 4 = 25`

So the fully diluted to float ratio is **25×**. If the market quotes a price from that 4% float as if it were the whole supply, the implied fully diluted valuation is twenty-five times the capital that can actually trade. A 1% float would be 100×; a 20% float would be 5×.

## Unlock calendar

Month-by-month unlock of circulating cohorts (public, liquidity, team, investors, advisors), as percent of total supply.

### Cluster warnings

If two or more cohorts’ **first** unlocks (after month 0) land in the same month, the design fires an **unlock cluster** warning. Cliffs that coincide concentrate sell pressure on a date the market can see coming.

## Team versus investor terms

Side-by-side cliff and duration for team and investors when both have allocation.

If the team cliff is **shorter** than the investor cliff, the design fires **team cliff shorter than investors**. Readers treat that as adverse selection.

## Warning set (summary)

Full rules and worked examples: [Warnings](/token-track-ideation/warnings).

| Warning                             | Trigger                                                 |
| ----------------------------------- | ------------------------------------------------------- |
| Float under 5%                      | Distribution or market at launch, and float below 5%    |
| Team cliff shorter than investors   | Team cliff months less than investor cliff months       |
| Unlocks clustered                   | Two or more cohorts first-unlock in the same month (>0) |
| Sale with no undersubscription plan | Sale event and “no plan yet”                            |
| Does this actually need a token?    | Rationale “not sure,” or loyalty/points-style free text |

Near-zero float is **not** treated as a problem when you are issuing and locking with no market. That path is intentional.

## Related

* [Token track](/token-track-ideation/token-track)
* [Warnings](/token-track-ideation/warnings)
* [The three answer types](/getting-started/three-answer-types)
* [Enforced versus stated](/token-track-ideation/enforced-vs-stated)


# Warnings

**Available now.** Warnings fire on risky design answers. They are not validation errors. You can still publish. Public pages and the studio computed panel show the same warning cards with worked examples.

Near-zero float does **not** fire when you are issuing and locking with no market. That path is intentional.

## Float under 5%

**Trigger:** A distribution event or market at launch exists, and circulating float at launch is under 5%.

**Meaning:** A tiny circulating float makes the quoted price nearly meaningless. A small buy moves it violently up, the first unlock moves it violently down, and holders discover the fully diluted valuation was the real number all along. Low float plus high FDV is a common launch structure that ends badly.

**Worked example:** 3% float at a $10M FDV means $300k of real tokens set the price for the other $9.7M. When a month-6 cliff releases 15%, supply grows about 6× at once. Compare: a 15% float absorbs the same unlock as a 2× change.

Related: [Computed outputs](/token-track-ideation/computed-outputs) (4% float → 25× FDV:float).

## Team cliff shorter than investors

**Trigger:** Team and investors both have allocation, and team cliff months are less than investor cliff months.

**Meaning:** The team can start exiting before the people who funded the project. Readers treat that as adverse selection. Standard practice is team terms at least as long as investor terms.

**Worked example:** Team 6-month cliff / 24-month vest vs investors 12-month cliff / 24-month vest. The team can sell for six months while investors are still locked. Flip the cliffs (team 12, investors 6 to 12) and the signal reverses.

## Unlocks clustered in the same month

**Trigger:** Two or more cohorts’ first unlocks (after month 0) land in the same month.

**Meaning:** Cliffs that coincide concentrate sell pressure into a single date the market can see coming. Staggering them by even a quarter spreads the supply shock.

**Worked example:** Team and investors both cliff at month 12 → a large share of supply becomes liquid in one week. Staggered (investors month 9, team month 15), each event is smaller and the market has a price between them.

## Sale with no undersubscription plan

**Trigger:** Distribution is a sale event (fixed-price, auction, or LBP) and undersubscription is “no plan yet.”

**Meaning:** If the sale does not fill, something happens by default. Default outcomes are often the worst: a half-funded treasury, an accidental low-float launch, or a quiet cancellation that burns trust. Decide: proceed, refund, or postpone.

**Worked example:** A 1,000 ETH hard-cap sale raises 180 ETH. Proceed anyway → you launch with 18% of planned runway and the same promises. Refund → buyers are whole and you re-scope. Postpone → you keep optionality. All three beat finding out live.

## Does this actually need a token?

**Trigger:** Rationale “why” is “not sure yet,” or the “beyond a database row” text matches loyalty / points / cashback-style language.

**Meaning:** If a database row, a Stripe account, or a points table would do the same job, the token adds regulatory surface, sell pressure, and a second product to run, and removes nothing. Loyalty-style rewards are a classic false positive. A respectable exit is to publish a project and skip the token until it earns its place.

**Worked example:** “Users earn tokens for referrals” is a points column. “LPs stake the token to underwrite risk and get slashed on bad debt” cannot be a database row. The token is doing economic work a ledger entry cannot.

## Related

* [Computed outputs](/token-track-ideation/computed-outputs)
* [Token track](/token-track-ideation/token-track)
* [The three answer types](/getting-started/three-answer-types)


# Enforced versus stated

**Available now** on public token design pages and in the studio.

Readers must be able to tell which claims are written into a contract at deployment and which are published commitments only.

## Labels

| Label             | Meaning                                                                                        |
| ----------------- | ---------------------------------------------------------------------------------------------- |
| Enforced on-chain | Written into the contract at deployment. Cannot be changed by anyone afterward for that token. |
| Stated by team    | Published in the design record (or journey). Not enforced by the token contract.               |

## What is enforced on-chain (CanHav launch token)

When you deploy through the CanHav factory:

* Fixed total supply minted at initialize (no later mint)
* No pause, freeze, or blacklist on the token
* No upgrade path and no owner on the token
* Source pre-verified because the factory clones a verified implementation
* Optional vesting wallet parameters you set in the same launch transaction (cliff, duration, percent)
* Launch fee paid at create time

Verify: [Contract guarantees](/token-launch/contract-guarantees) and the [TokenFactory](https://explorer.testnet.chain.robinhood.com/address/0x30Db3A828F65B92434c6aDB27AEeD01850277b08).

On a design deploy, the launch transaction also records the design snapshot hash as `journeyHash`, so the published design is tamper-evident relative to that launch. See [Deploy paths](/token-launch/deploy-paths).

## What is stated by the team only

These live in the design document / snapshot. They are not rewritten into immutable token bytecode as allocation tables:

* Allocation narrative (who gets what percent among team, investors, treasury, public, liquidity, advisors, other)
* Distribution plans (sale terms, undersubscription plan, airdrop intent)
* Token rationale and “beyond a database row”
* Market plans that are not executed in the launch transaction
* Governance and legal status declarations
* Post-launch runway and reporting intent

A sophisticated reader treats stated commitments as claims to check against later behaviour, not as contract guarantees.

## Status declarations

Legal, governance, and security status fields are always **stated by the team**. See [The three answer types](/getting-started/three-answer-types).

## Related

* [Contract guarantees](/token-launch/contract-guarantees)
* [Public pages](/public-pages/public-pages)
* [Token track](/token-track-ideation/token-track)
* [Deploy paths](/token-launch/deploy-paths)


# Public pages

**Available now.** Project pages live at `/p/[slug]`. Token design pages live at `/t/[slug]`. Explore under `/launch/explore` includes tabs for tokens, projects, and designs.

## Separate entities

Projects and token designs are **separate** public documents.

* A project page describes the product.
* A token page describes the token design (and computed outputs).
* They can be **cross-linked** when the team links them in studio.
* They are **not merged** into a single page. Readers should always know which entity they are looking at.

## Credibility signals stay scoped

Signals that belong to a project stay on the **project** page:

* Deploy history for a verify wallet (tokens created by that address)
* Blockscout verification status for listed testnet contracts
* Wallet transaction count
* GitHub commit activity for a linked repo

Each signal is omitted silently if the lookup fails. Nothing is invented to fill a gap.

Signals that belong to a token design stay on the **token** page:

* Computed float, FDV:float, unlock calendar, warnings
* Enforced versus stated labels
* Attached deploy address when present

Linking the two does not import one entity’s credibility into the other by default.

## Publishing

When you publish:

1. The draft is snapshotted (content-addressed, insert-only).
2. A public slug is assigned (immutable after first publish).
3. The public page renders the snapshot, not the live draft.

Unpublishing flips status back to draft for editors. Snapshots are not deleted.

## Deployed tokens

A published token design may attach a deployed contract address after a design deploy. That attachment is optional. A design that is never deployed remains a legitimate public document.

For tokens launched through the factory without a Projects design, explore and `/launch/t/[address]` remain the Token Launch surface, with a Quick deploy label when applicable. See [Deploy paths](/token-launch/deploy-paths).

## Related

* [The two ideation tracks](/getting-started/two-tracks)
* [Token track](/token-track-ideation/token-track)
* [Product track](/product-track/product-track)
* [Enforced versus stated](/token-track-ideation/enforced-vs-stated)
* [Accounts](/accounts/clerk-accounts)


# Overview

**Available now** on Robinhood Chain Testnet.

Token Launch is CanHav's testnet launchpad on **Robinhood Chain Testnet**. [Projects](/getting-started/two-tracks) (ideation and design deploy) is available now alongside it. Agent / ERC-8004 is **not started**.

You create a fixed-supply ERC20 from a factory, optionally attach vesting in the same transaction, and commit a journey hash on-chain so the plan can be checked later. Supporting contracts cover milestone escrow, progress updates, allocation sales, and a minimal AMM. You can quick-deploy or deploy from a published token design.

CanHav has no affiliation with Robinhood. Robinhood Chain does not distribute to Robinhood brokerage customers. See [Welcome](/getting-started/welcome-to-canhav).

## Status

| Item       | Detail                                                                                   |
| ---------- | ---------------------------------------------------------------------------------------- |
| Network    | Robinhood Chain Testnet (chain ID `46630`)                                               |
| Factory    | TokenFactory **v4** (live). v1-v3 are paused; their tokens remain indexed and browsable. |
| Product UI | Hidden URL track on the product site: `/launch`                                          |
| Audience   | Builders and testers. Not a mainnet product.                                             |

{% hint style="warning" %}
Testnet only. Do not treat launches, fees, or liquidity as production or investment advice.
{% endhint %}

## What you can do

1. [Set up the network](/token-launch/network-setup) (RPC, faucet, wallet)
2. [Create a token](/token-launch/create-a-token) with metadata and journey, or use [Deploy paths](/token-launch/deploy-paths) for design deploy
3. Use [vesting](/token-launch/vesting), [escrow](/token-launch/milestone-escrow), [updates](/token-launch/journey-updates), [sales](/token-launch/allocation-sales), and [AMM](/token-launch/amm-and-fees)
4. [Explore](/token-launch/explore-tokens) indexed launches and open a token detail page
5. Review [contract guarantees](/token-launch/contract-guarantees), [fees and economics](/token-launch/fees-and-economics), [governance](/token-launch/governance), and [contract addresses](/token-launch/contract-addresses)

## Design principles

* **Pause on factory, not on tokens.** Stopping new launches does not freeze existing tokens.
* **Hashes for credibility.** Journey and description are committed as hashes in launch events.
* **Admin-less where it matters.** Escrow, updates, and sales have no owner.
* **Timelock for admin knobs.** Factory and AMM fee/config changes wait out a public delay.
* **Zero supply take.** No mint path for the platform after initialize.

## Next

Start with [Network setup](/token-launch/network-setup).


# Network setup

**Available now.**

Connect a wallet to **Robinhood Chain Testnet** before using Token Launch.

## Chain parameters

| Parameter | Value                                                                                                            |
| --------- | ---------------------------------------------------------------------------------------------------------------- |
| Name      | Robinhood Chain Testnet                                                                                          |
| Chain ID  | `46630`                                                                                                          |
| RPC       | `https://rpc.testnet.chain.robinhood.com`                                                                        |
| Explorer  | [explorer.testnet.chain.robinhood.com](https://explorer.testnet.chain.robinhood.com)                             |
| Faucet    | [faucet.testnet.chain.robinhood.com](https://faucet.testnet.chain.robinhood.com) (0.01 ETH + stock tokens / 24h) |

## Wallet requirements

You need a wallet that can **add a custom EVM chain**. Most browser extension wallets that support EIP-6963 and custom networks work.

### Unsupported in the CanHav picker

These wallets appear via EIP-6963 but cannot reach chain `46630`. The UI shows them disabled with a reason:

| Wallet   | Reason                         |
| -------- | ------------------------------ |
| Keplr    | Cannot add custom EVM testnets |
| HashPack | Hedera-only                    |

## Checklist

1. Install a supported wallet.
2. Add Robinhood Chain Testnet using the table above (or let the site prompt you).
3. Request faucet funds.
4. Confirm the wallet shows chain ID `46630` before launching.

## Next

[Create a token](/token-launch/create-a-token)


# 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). |

## 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) or the explorer.

## Next

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


# Deploy paths

**Available now** on Robinhood Chain Testnet.

There are two ways to launch a token through `/launch`. Both use TokenFactory v4. They differ in what `journeyHash` means and how the token page labels the launch.

## Quick deploy (no design record)

Use `/launch` without a design id.

1. You fill the launch form (name, ticker, supply, journey, optional vesting).
2. The launch commits a classic **JourneyDoc** hash as `journeyHash` (and stores the journey blob).
3. On `/launch/t/[address]`, when that hash resolves in the journeys table, the page shows:

**Quick deploy, no design record**

That label means this token was launched without a published Projects token design snapshot. There is no ideation design page to attach by default.

## Design deploy

Use `/launch?design=<id>` from a **published** token design (or an equivalent entry point that passes the design id).

1. The form prefills from the design (name, ticker, supply, and team vesting months where applicable).
2. Step 2 becomes a design commitment card instead of a free-form journey editor.
3. The launch commits the design **snapshot hash** as `journeyHash`. The journeys POST for a classic JourneyDoc is skipped.
4. On success, attach-deploy links the on-chain token to the design (server re-verifies via indexer `journeyHash` match).
5. On `/launch/t/[address]`, when that hash resolves in `ideation_snapshots`, the page shows **Design committed on-chain** and links to the design.

Publishing a design does not deploy. Deploying is a separate wallet transaction.

## How journeyHash discriminates the path

| Path          | What journeyHash is                      | Where it resolves              |
| ------------- | ---------------------------------------- | ------------------------------ |
| Quick deploy  | Hash of the v1 JourneyDoc                | `launchpad.journeys`           |
| Design deploy | Content-addressed ideation snapshot hash | `launchpad.ideation_snapshots` |

The table the hash resolves in is the path discriminator. No separate on-chain flag is required.

If the hash resolves in neither table, the token page shows that there is no design record (and no verified journey blob).

## Why the Quick deploy label exists

Readers should not confuse a free-form journey launch with a published, snapshotted token design. The label makes the missing design record visible instead of silent.

## Related

* [Create a token](/token-launch/create-a-token)
* [Journey and credibility](/token-launch/journey-and-credibility)
* [Public pages](/public-pages/public-pages)
* [Token track](/token-track-ideation/token-track)
* [Enforced versus stated](/token-track-ideation/enforced-vs-stated)


# Journey and credibility

**Available now.**

A **journey** is the off-chain plan for a token: milestones, narrative, and updates over time. At launch, CanHav commits hashes on-chain so anyone can verify that a published document matches what was launched.

## Two commitments

| Hash              | Commits to                             |
| ----------------- | -------------------------------------- |
| `descriptionHash` | Short description from the launch form |
| `journeyHash`     | Full journey document stored off-chain |

They are independent. Changing one document does not rewrite the other hash. Verification is: hash the published bytes and compare to the event.

## Why it matters

Launch pages often make claims that never appear on-chain. Binding a journey hash at factory time means:

* The launch event is the source of truth for “what was promised at t0”
* Later [journey updates](/token-launch/journey-updates) can add content-addressed progress without rewriting the original commitment
* Explorers and indexers can surface the hashes even if hosting moves

## Format notes

Journey document format may evolve. Smoke-test launches have used placeholders. Treat the **hash in the event** as the contract with the chain; treat the hosted file as the human-readable payload that must match.

## Related

* [Create a token](/token-launch/create-a-token)
* [Journey updates](/token-launch/journey-updates)
* [Milestone escrow](/token-launch/milestone-escrow)


# Vesting

**Available now.**

Optional vesting can be created in the **same transaction** as the token launch. The factory deploys a vesting wallet clone and funds it with a percent of supply.

## Parameters (UI constraints)

| Parameter      | Range                                  |
| -------------- | -------------------------------------- |
| Vested percent | 1-100 (integer)                        |
| Duration       | 1-3650 days                            |
| Cliff          | 0 or more days; cannot exceed duration |

`startTimestamp == 0` in the contract path resolves to `block.timestamp`. The **resolved** start is what gets emitted in events.

## How addresses work

Vesting clone salt is derived from the **token address** (`keccak256(abi.encode(token))`), not from the launch user salt alone. That keeps vesting addresses collision-free even when a userSalt is reused across factory versions.

## Ownership and release

* The vesting **beneficiary is the Ownable owner** of the wallet (OpenZeppelin v5 pattern). Ownership can be transferred (including selling unvested positions). Always read live `owner()`, do not freeze the event's beneficiary forever.
* `release(token)` is **permissionless** and always pays the current owner.

## Events

* `TokenLaunched` is the same whether vesting is used or not.
* Vesting details live in a separate `VestingCreated` event.

## Related

* [Create a token](/token-launch/create-a-token)
* [Governance](/token-launch/governance)


# Milestone escrow

**Available now.**

**MilestoneEscrow** is an admin-less singleton on Robinhood Chain Testnet. It holds token lockups that unlock on milestone dates.

## Properties

| Property  | Detail                                                     |
| --------- | ---------------------------------------------------------- |
| Address   | See [Contract addresses](/token-launch/contract-addresses) |
| Ownership | None. No owner, no attester, no pause.                     |
| Role      | Milestone-dated lockups for launch credibility             |

Because there is no admin, unlock schedules cannot be silently rewritten by a CanHav operator key. Rules are whatever the contract encodes at deposit time.

## How it fits the journey

Escrow pairs with [journey hashes](/token-launch/journey-and-credibility) and [journey updates](/token-launch/journey-updates):

* Journey commits the plan
* Escrow locks tokens to dates or milestones in that plan
* Updates publish progress against the plan without needing a privileged attester

## Related

* [Allocation sales](/token-launch/allocation-sales) (proceeds also use milestone-dated unlocks)
* [Contract addresses](/token-launch/contract-addresses)


# Journey updates

**Available now.**

**JourneyUpdates** is an admin-less singleton that anchors **content-addressed** progress updates for a launched token.

## Properties

| Property  | Detail                                                     |
| --------- | ---------------------------------------------------------- |
| Address   | See [Contract addresses](/token-launch/contract-addresses) |
| Ownership | None                                                       |
| Role      | On-chain anchor for off-chain update payloads              |

Updates do not rewrite `journeyHash` from launch. They add a verifiable trail of later documents (or blobs) whose hashes appear on-chain.

## Product surface

Token detail pages load update hashes from the indexer and resolve stored documents where available. If a document is missing off-chain, the hash on-chain still proves that a specific payload was committed.

## Related

* [Journey and credibility](/token-launch/journey-and-credibility)
* [Explore tokens](/token-launch/explore-tokens)


# Allocation sales

**Available now.**

**AllocationSale** is an admin-less singleton for fixed-price token sales on Robinhood Chain Testnet.

## Properties

| Property     | Detail                                                     |
| ------------ | ---------------------------------------------------------- |
| Address      | See [Contract addresses](/token-launch/contract-addresses) |
| Platform cut | Zero (fee-free)                                            |
| Proceeds     | Claimable only in milestone-dated tranches                 |
| Ownership    | None                                                       |

## Design intent

Sales should not depend on an operator to “release” proceeds at will. Milestone-dated lockups align cashflow with the same credibility model as [MilestoneEscrow](/token-launch/milestone-escrow).

## Related

* [Milestone escrow](/token-launch/milestone-escrow)
* [AMM and fees](/token-launch/amm-and-fees)


# AMM and fees

**Available now.**

**LaunchAMM** is a minimal AMM for token/ETH pools on Robinhood Chain Testnet. Protocol fee configuration is owned by the timelock.

For the full fee table (launch fee, caps, freeze-at-creation, zero supply take), see [Fees and economics](/token-launch/fees-and-economics).

## Pool mechanics

| Item            | Detail                                                                                         |
| --------------- | ---------------------------------------------------------------------------------------------- |
| Pair            | Launch token and ETH                                                                           |
| LP fee          | 0.30%                                                                                          |
| Protocol fee    | Optional, opt-in. Default 20 bps. Hard-capped at `MAX_PROTOCOL_FEE_BPS = 50`.                  |
| Protocol split  | 70% project / 30% platform (`PROJECT_SHARE_BPS = 7000`), enforced in bytecode                  |
| Fee destination | [FeeSplitter](/token-launch/contract-addresses) (never an EOA as the platform sink)            |
| Existing pools  | Protocol fee rate **frozen at pool creation**; changing the default does not rewrite old pools |

## FeeSplitter

| Item      | Detail                                                                                  |
| --------- | --------------------------------------------------------------------------------------- |
| Ownership | Timelock                                                                                |
| Role      | Platform fee destination; payees set via timelock; permissionless audited distributions |

## What you can change (with delay)

AMM knobs such as the default protocol fee sit behind the [TimelockController](/token-launch/governance). There is no instant admin switch on production-bound parameters. Testnet `minDelay` is 300 seconds.

## Related

* [Fees and economics](/token-launch/fees-and-economics)
* [Contract guarantees](/token-launch/contract-guarantees)
* [Governance](/token-launch/governance)
* [Contract addresses](/token-launch/contract-addresses)


# Fees and economics

**Available now** on Robinhood Chain Testnet. Values below are verifiable on-chain. Prefer reading live contract state for the current `launchFee` and `defaultProtocolFeeBps`; this page records the design and the last documented calibration.

## Zero supply take

CanHav takes **0% of token supply**. Enforcement is the absence of a mint function after initialize on the launch token, not a soft policy. See [Contract guarantees](/token-launch/contract-guarantees).

Allocation sales take **0% platform cut** of sale proceeds (fee-free sales contract).

## Fee switches

| Switch                                                                | Where          | Current documented value                                    | Hard cap                              | Who can change           | Delay                                            |
| --------------------------------------------------------------------- | -------------- | ----------------------------------------------------------- | ------------------------------------- | ------------------------ | ------------------------------------------------ |
| Launch fee (`launchFee`)                                              | TokenFactory   | **0.0002 ETH** (calibrated on v4)                           | `MAX_LAUNCH_FEE = 0.05 ether`         | Factory owner = Timelock | Timelock `minDelay` (**300 seconds** on testnet) |
| Default protocol fee for new opted-in pools (`defaultProtocolFeeBps`) | LaunchAMM      | **20 bps** default                                          | `MAX_PROTOCOL_FEE_BPS = 50`           | AMM owner = Timelock     | Same timelock delay                              |
| LP trading fee                                                        | LaunchAMM      | **30 bps (0.30%)** to LPs                                   | Fixed in bytecode for the pool design | Not an admin switch      | N/A                                              |
| Protocol fee split                                                    | LaunchAMM      | **70% project / 30% platform** (`PROJECT_SHARE_BPS = 7000`) | Fixed constant                        | Not an admin switch      | N/A                                              |
| Allocation sale platform cut                                          | AllocationSale | **0**                                                       | N/A (no cut)                          | N/A                      | N/A                                              |

Factory pause stops new launches. It is an emergency control, not a fee switch. Unpause waits on the timelock. See [Governance](/token-launch/governance).

## Existing pools are frozen at creation rate

When you create a pool and opt into the protocol fee, the pool stores its `protocolFeeBps` at creation time. Changing `defaultProtocolFeeBps` later does **not** rewrite existing pools. New pools pick up the new default; old pools keep the rate they were created with.

Verify in [`LaunchAMM`](https://explorer.testnet.chain.robinhood.com/address/0xDd070b1f8e000D27491A3d38543ef0D72C758Df4): createPool freezes fee; `setDefaultProtocolFeeBps` is owner-only (timelock).

## Fee destination

Platform protocol fees route to [FeeSplitter](https://explorer.testnet.chain.robinhood.com/address/0x9FDFae007b65d4c8F3CCA6AC242E3f141eC9DA18), never to an EOA as the platform sink. Payee changes are timelocked.

## Timelock

| Item               | Value                                                                                                                                           |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Address            | [`0x080cCDC07e2a0a5D11e9dDaA873ea68F540109ae`](https://explorer.testnet.chain.robinhood.com/address/0x080cCDC07e2a0a5D11e9dDaA873ea68F540109ae) |
| minDelay (testnet) | **300 seconds**                                                                                                                                 |
| Owns               | TokenFactory v4 admin surfaces, LaunchAMM admin surfaces, FeeSplitter payee config                                                              |
| Production note    | Anything closer to production should use 24h+                                                                                                   |

## How to verify independently

1. Open each address on the [explorer](https://explorer.testnet.chain.robinhood.com).
2. Read `launchFee` and `MAX_LAUNCH_FEE` on the factory.
3. Read `defaultProtocolFeeBps`, `MAX_PROTOCOL_FEE_BPS`, and `PROJECT_SHARE_BPS` on the AMM.
4. Read `minDelay` on the TimelockController.
5. For a live pool, inspect its stored `protocolFeeBps` and confirm it does not change when the default changes.

Product UI: `/launch/governance` surfaces economic terms while you build on testnet.

## Related

* [Contract guarantees](/token-launch/contract-guarantees)
* [AMM and fees](/token-launch/amm-and-fees) (shorter overview)
* [Governance](/token-launch/governance)
* [Contract addresses](/token-launch/contract-addresses)


# Contract guarantees

**Available now** on Robinhood Chain Testnet for tokens launched through CanHav TokenFactory.

This page states what a CanHav launch token **can and cannot** do. Claims below are about the token implementation cloned by the factory, not about every third-party contract a team may deploy later.

## What the token cannot do

| Guarantee                | Meaning                                                                        |
| ------------------------ | ------------------------------------------------------------------------------ |
| No mint after deployment | Supply is fixed at initialize. There is no mint function for later inflation.  |
| No pause on the token    | The token itself cannot be paused. Factory pause only stops **new** launches.  |
| No freeze / blacklist    | No account freeze or blacklist on the token.                                   |
| No upgrade               | Not a transparent upgradeable proxy on the token. No owner who can swap logic. |
| No owner                 | The token has no owner role for admin privileges after initialize.             |

CanHav takes **zero percent of token supply**. That is enforced by the absence of a mint path for the platform, not by a policy document.

## Source verification

The factory clones a **verified** implementation. New tokens inherit that verified source rather than deploying opaque bytecode.

| Contract                   | Address                                                                                                                                         |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| TokenFactory v4 (live)     | [`0x30Db3A828F65B92434c6aDB27AEeD01850277b08`](https://explorer.testnet.chain.robinhood.com/address/0x30Db3A828F65B92434c6aDB27AEeD01850277b08) |
| LaunchToken implementation | [`0x3E8c9be8BB486abEc132B0d1C35266b2336b129B`](https://explorer.testnet.chain.robinhood.com/address/0x3E8c9be8BB486abEc132B0d1C35266b2336b129B) |

Always confirm on the [Robinhood Chain Testnet explorer](https://explorer.testnet.chain.robinhood.com).

## What this does not guarantee

* It does not guarantee that a team’s **other** contracts (vaults, routers, oracles) are immutable or ownerless.
* It does not guarantee vesting, escrow, or sale terms unless those contracts are used.
* It does not make a testnet token a mainnet product or an investment.

## Related

* [Fees and economics](/token-launch/fees-and-economics)
* [Governance](/token-launch/governance)
* [Contract addresses](/token-launch/contract-addresses)
* [Create a token](/token-launch/create-a-token)


# Governance

**Available now.**

Token Launch separates **immutable after launch** from **timelocked admin**.

## TimelockController

| Item               | Detail                                                                   |
| ------------------ | ------------------------------------------------------------------------ |
| Address            | See [Contract addresses](/token-launch/contract-addresses)               |
| Owns               | TokenFactory (v4) and LaunchAMM admin surfaces; FeeSplitter payee config |
| minDelay (testnet) | 300 seconds. Anything closer to production should use 24h+.              |
| Proposer           | Deployer EOA (testnet)                                                   |
| Executor           | Open                                                                     |
| Admin              | None on the timelock itself                                              |

Every sensitive admin change (fees, treasury, implementation bumps, unpause where applicable) waits out the public delay.

## What pause does

* **Factory pause** stops **new** launches.
* Already launched tokens are not paused by factory pause.
* Older factories (v1-v3) are paused permanently after migrations; their tokens stay live and indexed.

## Product UI

The site exposes a governance view under `/launch/governance` for fees, timelock, and fee splitter context while building on testnet.

## Related

* [AMM and fees](/token-launch/amm-and-fees)
* [Create a token](/token-launch/create-a-token)
* [Contract addresses](/token-launch/contract-addresses)


# Explore tokens

**Available now.**

Launches are indexed by a dedicated Ponder indexer so you can browse without scanning the explorer manually.

## Surfaces

| Path                  | Purpose                                                    |
| --------------------- | ---------------------------------------------------------- |
| `/launch/explore`     | Indexed list of launched tokens                            |
| `/launch/t/[address]` | Token detail: vesting, escrow, sales, AMM, journey updates |

These routes are URL-only on the product site (not linked from main marketing nav). Docs are the public entry path.

## What the indexer sees

* Factory launch events across factory versions (including paused v1-v3 tokens)
* Vesting creation
* Related escrow, updates, sale, and AMM activity as implemented

If the indexer is offline, explore pages degrade gracefully. On-chain truth remains on the [explorer](https://explorer.testnet.chain.robinhood.com).

## Related

* [Journey updates](/token-launch/journey-updates)
* [Contract addresses](/token-launch/contract-addresses)
* [FAQ](/token-launch/faq)


# Contract addresses

**Available now.** Robinhood Chain Testnet (chain ID `46630`). Always confirm on the [explorer](https://explorer.testnet.chain.robinhood.com).

Addresses verified against `content/launch.ts` and `contracts/README.md` in the product repository.

## Live stack

| Contract                           | Address                                                                                                                                         |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| TokenFactory v4 (live)             | [`0x30Db3A828F65B92434c6aDB27AEeD01850277b08`](https://explorer.testnet.chain.robinhood.com/address/0x30Db3A828F65B92434c6aDB27AEeD01850277b08) |
| TimelockController                 | [`0x080cCDC07e2a0a5D11e9dDaA873ea68F540109ae`](https://explorer.testnet.chain.robinhood.com/address/0x080cCDC07e2a0a5D11e9dDaA873ea68F540109ae) |
| MilestoneEscrow                    | [`0x90C71DBA8A61Da14CA699f72D311e404094Cf192`](https://explorer.testnet.chain.robinhood.com/address/0x90C71DBA8A61Da14CA699f72D311e404094Cf192) |
| JourneyUpdates                     | [`0x31358209375591b1285EaA437c2c9f189c48D073`](https://explorer.testnet.chain.robinhood.com/address/0x31358209375591b1285EaA437c2c9f189c48D073) |
| AllocationSale                     | [`0x869cE70ff8174802d98D26835ce4040754Ad284A`](https://explorer.testnet.chain.robinhood.com/address/0x869cE70ff8174802d98D26835ce4040754Ad284A) |
| LaunchAMM                          | [`0xDd070b1f8e000D27491A3d38543ef0D72C758Df4`](https://explorer.testnet.chain.robinhood.com/address/0xDd070b1f8e000D27491A3d38543ef0D72C758Df4) |
| FeeSplitter                        | [`0x9FDFae007b65d4c8F3CCA6AC242E3f141eC9DA18`](https://explorer.testnet.chain.robinhood.com/address/0x9FDFae007b65d4c8F3CCA6AC242E3f141eC9DA18) |
| LaunchToken implementation         | [`0x3E8c9be8BB486abEc132B0d1C35266b2336b129B`](https://explorer.testnet.chain.robinhood.com/address/0x3E8c9be8BB486abEc132B0d1C35266b2336b129B) |
| LaunchVestingWallet implementation | [`0x97d41F630025f83AdF72f00BaD8dC9B5e01eBEFC`](https://explorer.testnet.chain.robinhood.com/address/0x97d41F630025f83AdF72f00BaD8dC9B5e01eBEFC) |

## Factory version history (paused)

Older factories are **paused**. Tokens they launched remain live and indexed.

| Version         | Status | Address                                                                                                                                         |
| --------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| TokenFactory v4 | Live   | [`0x30Db3A828F65B92434c6aDB27AEeD01850277b08`](https://explorer.testnet.chain.robinhood.com/address/0x30Db3A828F65B92434c6aDB27AEeD01850277b08) |
| TokenFactory v3 | Paused | [`0xD6166E156B52eB9B301D56Bd68d5D9c551d7d4c5`](https://explorer.testnet.chain.robinhood.com/address/0xD6166E156B52eB9B301D56Bd68d5D9c551d7d4c5) |
| TokenFactory v2 | Paused | [`0x10F33eE0f6a72D7Cc1f41196B4EF80B28C909Bc0`](https://explorer.testnet.chain.robinhood.com/address/0x10F33eE0f6a72D7Cc1f41196B4EF80B28C909Bc0) |
| TokenFactory v1 | Paused | [`0x1dAaa8294806d216Df36dc07B3803ED26584c909`](https://explorer.testnet.chain.robinhood.com/address/0x1dAaa8294806d216Df36dc07B3803ED26584c909) |

## Chain

| Item     | Value                                          |
| -------- | ---------------------------------------------- |
| Name     | Robinhood Chain Testnet                        |
| Chain ID | `46630`                                        |
| RPC      | `https://rpc.testnet.chain.robinhood.com`      |
| Explorer | <https://explorer.testnet.chain.robinhood.com> |
| Faucet   | <https://faucet.testnet.chain.robinhood.com>   |

## Related

* [Contract guarantees](/token-launch/contract-guarantees)
* [Fees and economics](/token-launch/fees-and-economics)
* [Governance](/token-launch/governance)
* [Network setup](/token-launch/network-setup)
* [Reference: networks and versions](/reference/networks-and-versions)


# FAQ

**Available now** (Token Launch FAQ).

## Why does my wallet show as disabled?

Keplr and HashPack cannot reach Robinhood Chain Testnet (`46630`). Use a wallet that can add custom EVM chains. See [Network setup](/token-launch/network-setup).

## I launched on an older factory. Is my token dead?

No. v1-v3 factories are **paused for new launches** only. Existing tokens remain live and indexed. New launches should use **v4**.

## Predicted token address does not match what I calculated offline

Use the factory's own prediction views. v4 uses Solady LibClone, which is not byte-identical to classic ERC-1167 / OpenZeppelin Clones init code.

## Launch fails with insufficient funds

You need testnet ETH for gas plus the current launch fee. Use the [faucet](https://faucet.testnet.chain.robinhood.com).

## Explore page is empty or errors

The launch indexer may be offline or catching up. Check the explorer for your tx, then retry explore. See [Explore tokens](/token-launch/explore-tokens).

## Can CanHav pause my token?

No. Factory pause stops new launches. It does not pause already deployed tokens.

## Is this mainnet?

No. Token Launch is Robinhood Chain **Testnet** only.

## Where is Agent Launch documented?

See [Agent Launch overview](/agent-launch-not-started/overview). That track is next after Token Launch, on Base Sepolia / ERC-8004.


# Clerk accounts

**In development.** CanHav accounts use **Clerk**. Studio is wired for Clerk in the product codebase. Do not assume production keys and sign-in are configured for every environment yet.

## What requires an account

* Creating and editing Project and Token design drafts in studio (`/studio`)
* Publishing and unpublishing those drafts
* Linking a project to a token design
* Markdown export and MCP access for design documents, once those ship (see [AI and IDE](/ai-and-ide/export-and-mcp))

## What does not require an account

* Reading research on [canhav.com](https://canhav.com)
* Reading published docs on [docs.canhav.com](https://docs.canhav.com)
* Using Token Launch with a **wallet** on testnet (`/launch`): create, explore, and on-chain actions stay wallet-based
* Reading public project and token pages (`/p/...`, `/t/...`)

Wallet connection for Token Launch is separate from Clerk account sign-in.

## What data is stored

| Data                                                  | Purpose                                           |
| ----------------------------------------------------- | ------------------------------------------------- |
| Account identity (via Clerk)                          | Authenticate studio owners (`owner_id` on drafts) |
| Draft project / token design documents                | Autosave and edit                                 |
| Publish snapshots and slugs                           | Public pages (insert-only snapshots)              |
| Optional link rows between project and token design   | Cross-links                                       |
| Optional attach of deployed token address to a design | Connect design to on-chain launch                 |

CanHav does not need your private keys for studio. Do not paste seed phrases into any CanHav form.

Exact retention and deletion controls will be documented when account management is production-ready.

## Cost

Accounts and the studio surfaces described here are **free**. There is no paid tier documented for these features.

## Related

* [Public pages](/public-pages/public-pages)
* [AI and IDE](/ai-and-ide/export-and-mcp)
* [The two ideation tracks](/getting-started/two-tracks)


# Markdown export and MCP

**In development.** Markdown export and the CanHav MCP server are not finished products yet. Do not describe them as live. Both are intended to be **free** and to require only a CanHav account once accounts ship. See [Accounts](/accounts/clerk-accounts).

## Markdown export (intended)

| Artifact           | Purpose                                                      |
| ------------------ | ------------------------------------------------------------ |
| `canhav-[slug].md` | Markdown export of the published Product or Token design     |
| `AGENTS.md`        | Agent-oriented summary of the design for IDE / coding agents |

Exact download UX will be documented when the export endpoints ship.

## MCP server (intended)

A CanHav MCP server will expose tools so an IDE agent can read your designs (and eventually help check them). Intended tools:

| Tool                     | Purpose                                                  |
| ------------------------ | -------------------------------------------------------- |
| `get_my_projects`        | List projects you own                                    |
| `get_my_tokens`          | List token designs you own                               |
| `get_project`            | Fetch one project by id or slug                          |
| `get_token`              | Fetch one token design by id or slug                     |
| `get_design_constraints` | Return limits and option sets the editors enforce        |
| `check_design`           | Run validation / warning checks against a design payload |

Until this lands in the repository, treat the tool list as the target surface, not a live API.

## Status discipline

Re-check this page before writing tutorials that assume export or MCP work today. Prefer future tense until status flips to Available now.

## Related

* [Accounts](/accounts/clerk-accounts)
* [The two ideation tracks](/getting-started/two-tracks)


# Networks and versions

**Available now** for Token Launch addresses.

**Deferred:** Foundry scaffold generator (not a shipped product feature).

**Not started:** Agent / ERC-8004 as a product track. Registry address pages under Agent Launch are historical reference only.

## Token Launch (Robinhood Chain Testnet)

| Item              | Value                 |
| ----------------- | --------------------- |
| Chain ID          | `46630`               |
| Live factory      | TokenFactory **v4**   |
| Paused factories  | v1, v2, v3            |
| Timelock minDelay | 300 seconds (testnet) |

Full address tables: [Contract addresses](/token-launch/contract-addresses).

## Related

* [Fees and economics](/token-launch/fees-and-economics)
* [Contract guarantees](/token-launch/contract-guarantees)
* [Deploy paths](/token-launch/deploy-paths)


# Overview

**Not started.** The Agent / ERC-8004 product track is not started. This page is retained for reference only.

CanHav may eventually support registering AI agents as on-chain identities using ERC-8004. That work is out of scope for the current Token Launch and Projects surfaces.

Do not treat any `/agents` URL, registry address list, or MCP-gate roadmap notes elsewhere in this section as a commitment that the track is shipping.

## Related

* [Welcome to CanHav](/getting-started/welcome-to-canhav)
* [Litepaper](/getting-started/litepaper)
* [Token Launch overview](/token-launch/overview)
* [The two ideation tracks](/getting-started/two-tracks)


# What is ERC-8004

**Not started.** The Agent / ERC-8004 product track is not started. These pages are retained for reference only. Do not treat register/browse copy below as a shipped CanHav product commitment.

ERC-8004 defines on-chain infrastructure for **agent identity** (and related reputation). Public registry deployments exist independently of CanHav. CanHav does not own those registries, and Agent Launch as a CanHav product track is not started.

## Identity Registry

| Property      | Detail                                                 |
| ------------- | ------------------------------------------------------ |
| Standard role | Agents are **ERC-721** tokens                          |
| Pattern       | ERC-1967 proxy to a verified implementation            |
| CanHav role   | Client + indexer against the public testnet deployment |

Minting / registering an agent creates a transferable identity NFT with an associated registration URI (URL or inline `data:` URI).

## Reputation Registry

The Reputation Registry is a sibling ERC-8004 contract. CanHav currently uses it mainly for **wiring checks** (for example, confirming `getIdentityRegistry()` points at the configured Identity Registry). Full reputation product flows are out of scope for v1. See [Roadmap](/agent-launch-not-started/roadmap).

## Testnet vs mainnet

Deployments differ by a vanity address prefix:

| Network                | Identity Registry prefix |
| ---------------------- | ------------------------ |
| Base Sepolia (testnet) | `0x8004A818…`            |
| Mainnet                | `0x8004A169…`            |

Mixing them up can fail **silently** if you only glance at “8004” in the address. CanHav’s site, verify script, and agents indexer **refuse** any Identity Registry that does not start with the testnet prefix.

## Related

* [Registry addresses](/agent-launch-not-started/registry-addresses)
* [Register an agent](/agent-launch-not-started/register-an-agent)


# Network setup

**Not started.** The Agent / ERC-8004 product track is not started. These pages are retained for reference only. Do not treat register/browse copy below as a shipped CanHav product commitment.

Agent Launch runs on **Base Sepolia**, not Robinhood Chain.

## Chain parameters

| Parameter  | Value                                                                                              |
| ---------- | -------------------------------------------------------------------------------------------------- |
| Name       | Base Sepolia                                                                                       |
| Chain ID   | `84532`                                                                                            |
| Explorer   | [base-sepolia.blockscout.com](https://base-sepolia.blockscout.com)                                 |
| Public RPC | `https://sepolia.base.org` (rate-limits aggressively; prefer Alchemy or similar for sustained use) |

## Wallets

Most wallets that already know Base Sepolia work. The CanHav agents picker disables wallets that cannot operate on this chain (for example HashPack is Hedera-only).

Unlike Token Launch, Keplr’s “cannot add custom EVM testnets” limitation is less relevant here because Base Sepolia is widely preconfigured.

## Checklist

1. Switch wallet to Base Sepolia (`84532`).
2. Fund the wallet with Base Sepolia ETH from a public faucet.
3. Open `/agents` on the CanHav site and confirm the registry status card shows a healthy Identity Registry.

## Related

* [Registry addresses](/agent-launch-not-started/registry-addresses)
* [Register an agent](/agent-launch-not-started/register-an-agent)


# Register an agent

**Not started.** The Agent / ERC-8004 product track is not started. These pages are retained for reference only. Do not treat register/browse copy below as a shipped CanHav product commitment.

This page describes an intended registration flow that is not a current product commitment.

## What registration means

Registering creates an **ERC-721 agent identity** on the public ERC-8004 Identity Registry. The agent can declare a registration file URI (HTTPS or inline `data:` URI).

CanHav does not custody the agent runtime. The chain holds identity and metadata pointers; your off-chain agent still has to run somewhere else.

## UI flow (current)

1. Connect a wallet on Base Sepolia.
2. Confirm [registry status](/agent-launch-not-started/registry-addresses) (Identity Registry address and Reputation wiring).
3. Submit a registration through the Identity Registry (as exposed by the page).
4. Find the agent under [Recent registrations](/agent-launch-not-started/browsing-agents) once the indexer sees the event.

## Constraints today vs soon

| Today                                                 | Soon                                                                     |
| ----------------------------------------------------- | ------------------------------------------------------------------------ |
| Public registry registration as supported by ERC-8004 | Limit registrations to **MCP endpoints** for introspectable capabilities |

See [MCP endpoints](/agent-launch-not-started/mcp-endpoints).

## Related

* [What is ERC-8004](/agent-launch-not-started/what-is-erc-8004)
* [Browsing agents](/agent-launch-not-started/browsing-agents)
* [FAQ](/agent-launch-not-started/faq)


# MCP endpoints

**Not started.** The Agent / ERC-8004 product track is not started. These pages are retained for reference only. Do not treat register/browse copy below as a shipped CanHav product commitment.

**MCP** (Model Context Protocol) is how CanHav intends agents to expose tools and resources in a machine-checkable way.

## Why MCP

An on-chain identity without an introspectable endpoint is just a name. MCP lets clients:

* List declared tools and resources
* Compare marketing claims to what the endpoint actually offers
* Build safer composition between agents

## Product direction

Registrations on the CanHav Agent Launch track will be **limited to MCP endpoints**. Declared capabilities should be checkable against the live endpoint, not only against a static JSON blob.

This constraint is intentional product strategy for the Agent Launch track after Token Launch. Exact validation rules will land in the UI and docs as the gate ships. See [Roadmap](/agent-launch-not-started/roadmap).

## Related

* [Register an agent](/agent-launch-not-started/register-an-agent)
* [Overview](/agent-launch-not-started/overview)


# Browsing agents

**Not started.** The Agent / ERC-8004 product track is not started. These pages are retained for reference only. Do not treat register/browse copy below as a shipped CanHav product commitment.

The `/agents` page lists **recent registrations** from the agents indexer (Ponder), backed by Identity Registry events on Base Sepolia.

## What you see

| Field            | Meaning                                                  |
| ---------------- | -------------------------------------------------------- |
| Agent / token id | ERC-721 identity on the registry                         |
| Owner            | Current owner address                                    |
| URI              | Registration file (URL or summarized inline `data:` URI) |
| As-of            | Indexer freshness indicator when available               |

## Indexer notes

* Local agents indexer defaults to port **42070** (launchpad indexer uses **42069**).
* Production agents indexer is a separate deploy from the launchpad indexer (separate DB schema prefix).
* If the indexer is offline, the page says so. On-chain events remain on [Base Sepolia Blockscout](https://base-sepolia.blockscout.com).

## Related

* [Register an agent](/agent-launch-not-started/register-an-agent)
* [Registry addresses](/agent-launch-not-started/registry-addresses)
* [FAQ](/agent-launch-not-started/faq)


# Registry addresses

**Not started.** The Agent / ERC-8004 product track is not started. These pages are retained for reference only. Do not treat register/browse copy below as a shipped CanHav product commitment.

Base Sepolia (chain ID `84532`). CanHav does not own these contracts. Confirm on [Blockscout](https://base-sepolia.blockscout.com).

## Configured testnet registries

| Registry            | Address                                                                                                                                |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Identity Registry   | [`0x8004A818BFB912233c491871b3d84c89A494BD9e`](https://base-sepolia.blockscout.com/address/0x8004A818BFB912233c491871b3d84c89A494BD9e) |
| Reputation Registry | [`0x8004B663056A597Dffe9eCcC1965A193B7388713`](https://base-sepolia.blockscout.com/address/0x8004B663056A597Dffe9eCcC1965A193B7388713) |

Identity Registry deploy block (indexer start): `36304145`.

## Safety: vanity prefix

| Network      | Identity prefix |
| ------------ | --------------- |
| Base Sepolia | `0x8004A818`    |
| Mainnet      | `0x8004A169`    |

Every CanHav layer (site banner, verify script, agents indexer startup) **refuses** an Identity Registry address that does not start with `0x8004A818`. If you see a configuration error about the prefix, you almost certainly pointed at mainnet by mistake.

## Related

* [What is ERC-8004](/agent-launch-not-started/what-is-erc-8004)
* [Network setup](/agent-launch-not-started/network-setup)
* [FAQ](/agent-launch-not-started/faq)


# Roadmap

**Not started.** The Agent / ERC-8004 product track is not started. This roadmap is retained for reference only and is not an active delivery plan.

## Related

* [Overview](/agent-launch-not-started/overview)
* [Litepaper](/getting-started/litepaper)


# FAQ

**Not started.** The Agent / ERC-8004 product track is not started. These pages are retained for reference only. Do not treat register/browse copy below as a shipped CanHav product commitment.

## Why do I see a configuration error about `0x8004A818`?

The Identity Registry address is missing or does not start with the **Base Sepolia** vanity prefix. Mainnet registries start with `0x8004A169`. Fix the env / config and redeploy. See [Registry addresses](/agent-launch-not-started/registry-addresses).

## Is Agent Launch on Robinhood Chain?

No. Agent Launch is **Base Sepolia** (`84532`). Token Launch is Robinhood Chain Testnet (`46630`).

## Does CanHav own the Identity Registry?

No. Registries are public ERC-8004 singletons. CanHav only builds UI, guards, and an indexer against them.

## Recent registrations are empty

The agents indexer may be offline or still syncing. Check Blockscout for registry events, then retry. Locally the agents indexer uses port `42070`.

## When can I register an MCP-only agent?

MCP gating is the intended constraint for this track. Watch [MCP endpoints](/agent-launch-not-started/mcp-endpoints) and [Roadmap](/agent-launch-not-started/roadmap) as the gate lands in product.

## Should I use this on mainnet?

No. Agent Launch docs and product guards are testnet-only for now.

## Where should I start if I care about tokens first?

Start with [Token Launch overview](/token-launch/overview). That is the current focus.


