> ## Documentation Index
> Fetch the complete documentation index at: https://docs.grapl.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Public presales

> Free registration, a frozen wallet list and an exclusive buying window.

A GRAPL public presale starts with **free registration**. Eligible participants buy from the market after launch during an exclusive window. There is no advance fundraising, escrow, refund or prepaid token claim.

<Info>
  The local Anvil contracts enforce the buying window. Registration collection,
  social login, wallet linking and proof delivery are not connected to the app.
</Info>

## From registration to an open market

```mermaid theme={null}
flowchart TD
  Register[Register for free] --> Freeze[Freeze wallet list and Merkle root]
  Freeze --> Deploy[Deploy token and seed its pool]
  Deploy --> Opening[Wait until opensAt]
  Opening --> Exclusive[Eligible wallets can buy]
  Exclusive --> Public[At publicAt anyone can buy through the router]
```

<Steps>
  <Step title="Collect registrations">
    People express interest without paying for tokens. A future service must
    verify buying wallets and define a list deadline. Starting with a social
    account is a product idea, not an implemented authentication service.
  </Step>

  <Step title="Freeze the list before deployment">
    Build the Merkle root from eligible wallet addresses. The local factory
    receives this root with opening and public timestamps. The registry cannot
    replace an existing pool's root or schedule.
  </Step>

  <Step title="Create the token and market">
    The factory creates a fixed-supply token, registers its pool, initializes
    Uniswap v4 and funds initial liquidity atomically. There is no bonding curve
    or graduation stage. Supply is allocated explicitly between liquidity and
    the creator.
  </Step>

  <Step title="Enforce the buying window">
    Before opening, all swaps are blocked. During the exclusive window, buying
    requires a proof for the authenticated caller. Selling is allowed after
    opening locally; this is not a final product policy.
  </Step>

  <Step title="Open buying to everyone">
    At the public timestamp, the Merkle buying gate expires. Trades still use
    the authenticated GRAPL router so protocol fee and reward rules remain
    enforced.
  </Step>
</Steps>

## Local schedule rules

| Time | Buying the launched token | Selling the launched token |
| - | - | - |
| Before `opensAt` | Blocked | Blocked |
| `opensAt` up to, excluding, `publicAt` | Eligible caller and valid proof | Allowed by local policy |
| At or after `publicAt` | No Merkle requirement | Allowed |

An instant launch has no exclusive interval: its opening and public timestamps are equal. The scheduled fixture opens the day after deployment, then has a one-hour exclusive interval. These are [test settings](/reference/local-parameters), not universal launch rules.

## What registration does not promise

Registration does not reserve a quantity, fix a price or guarantee a return. Buying remains a separate market trade with price movement, pool fees and a protocol fee. The local implementation has no per-wallet allocation or cumulative purchase cap.

The wallet-linking deadline, eligibility policy, registration backend, final window duration and public launch economics remain open. Read [Merkle eligibility](/concepts/eligibility) for caller binding and [launch mechanics](/concepts/launch-mechanics) for supply and LP ownership.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.