> For the complete documentation index, see [llms.txt](https://docs.antivamp.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.antivamp.io/for-creators/reserve.md).

# Reserve a Name + Ticker

Step-by-step: reserve a name + ticker on-chain — quote, prepare, sign, confirm — so nobody can front-run your launch. Protection begins only at confirmed on-chain settlement.

Reserving is optional, but it's the only way to hold your identity **before** you launch. A reservation locks the combined **`Name + Ticker` pair** for a fixed window so nobody can front-run your launch or squat your identity across integrated launchpads. During your window, only your authorized wallet can launch that exact pair; any free, unlocked pair stays launchable by anyone.

Reservations are settled on-chain by the `TickerReservationRegistry` (Solana program / EVM registry). A reservation does **not** deploy a token — it holds the name + ticker until you're ready.

{% hint style="danger" %}
🧱 **Protection exists only after confirmed on-chain settlement.** Signing a wallet prompt, submitting a transaction, or receiving a prepared transaction does **not** protect your identity. The hold is real only once AntiVamp reconciles the reservation to `confirmed` from **chain state** — never from a wallet signature alone.
{% endhint %}

📡 View the machine-readable endpoint reference at [AntiVamp API](https://antivamp.io/api).

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

## The reservation flow

```mermaid
flowchart LR
  Q["1️⃣ Quote"] --> P["2️⃣ Prepare"]
  P --> S["3️⃣ Sign & submit"]
  S --> C["4️⃣ Confirm on-chain"]
  C --> PR["🔒 Protected"]
```

| Step                  | Endpoint                               | Result                                                                                                     |
| --------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| **1️⃣ Quote**         | `GET /v1/reservations/quote`           | Live USD-tier price in the chain's asset, at the current oracle rate. No transaction created.              |
| **2️⃣ Prepare**       | `POST /v1/reservations/prepare`        | A chain-specific transaction to sign (Solana base64 tx / EVM tx request). Record state: `pending_payment`. |
| **3️⃣ Sign & submit** | *your wallet*                          | You sign the prepared transaction and submit it to the chain.                                              |
| **4️⃣ Confirm**       | `POST` / `GET /v1/reservations/status` | AntiVamp reconciles the reservation to `confirmed` from on-chain state. Your hold is now live.             |

### 1️⃣ Get a quote

Ask for the price of a duration on your chosen chain. The flat USD tier is converted to the exact on-chain amount using a **fail-closed** price oracle — if the oracle answer is stale, the quote (and the eventual reservation) fails rather than mispricing.

```http
GET /v1/reservations/quote?chain=solana&durationSeconds=604800
```

```json
{
  "chain": "solana",
  "tier": { "durationSeconds": 604800, "usd": 500 },
  "quote": { "...": "chain-specific amount + expiry" },
  "policy": { "maxActivePerWallet": 3 }
}
```

On **Solana**, the on-chain amount is quoted in **SOL** (lamports) via `GET /v1/solana/quote`.

### 2️⃣ Prepare the transaction

Prepare returns a transaction for you (or the launchpad's backend) to hand to your wallet. The record starts in state **`pending_payment`** — it is **not** a protected hold yet.

```http
POST /v1/reservations/prepare
```

```json
{
  "chain": "solana",
  "name": "Green Robin",
  "ticker": "ROBIN",
  "launcher": "<your wallet>",
  "durationSeconds": 604800
}
```

* **Solana** → a base64-encoded transaction (`transaction.tx`) to deserialize and sign.
* **EVM chains** → a transaction request (`to` / `data` / `value` / `from`) to submit.

### 3️⃣ Sign & submit

Sign the prepared transaction in your wallet and submit it to the chain. AntiVamp never asks for a seed phrase or private key — you sign locally and only the settlement transaction ever touches AntiVamp.

### 4️⃣ Confirm on-chain

Report the transaction hash and/or poll for status. AntiVamp reconciles against the chain and moves the record to `confirmed` once settlement is verified.

```http
POST /v1/reservations/status
{ "reservationId": "...", "transactionHash": "..." }

GET /v1/reservations/status?reservationId=...
```

| Status            | Meaning                                                               |
| ----------------- | --------------------------------------------------------------------- |
| `pending_payment` | Prepared, awaiting your signed & submitted transaction.               |
| `submitted`       | Transaction hash received; AntiVamp is reconciling against the chain. |
| `confirmed`       | ✅ Settlement verified on-chain — your identity is now protected.      |
| `failed`          | The transaction did not settle. Protection was never created.         |
| `expired`         | The window elapsed (or the quote/prepare lapsed before settlement).   |

{% hint style="success" %}
✅ When status reads **`confirmed`**, your `Name + Ticker` is held for the full window and only your authorized wallet can launch the exact pair on any integrated launchpad.
{% endhint %}

## Ways to reserve

| Method                                                               | Best for                                                                                                                  |
| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Hosted flow** — [antivamp.io/reserve](https://antivamp.io/reserve) | The fastest path: pick a duration, connect a wallet, pay on-chain.                                                        |
| **In a launchpad** — embedded reserve widget                         | Reserving without leaving an integrated launchpad. See [Launch with Protection](/for-creators/launch-with-protection.md). |
| **API** — quote → prepare → status                                   | Custom UX built on your own backend.                                                                                      |

## Rules to know before you reserve

<table><thead><tr><th width="260">Rule</th><th>Detail</th></tr></thead><tbody><tr><td>💵 <strong>Flat, non-refundable</strong></td><td>Fees are flat USD by tier and non-refundable once on-chain settlement confirms.</td></tr><tr><td>📦 <strong>Max 3 active per wallet</strong></td><td>A wallet may hold at most <strong>3 active reservations</strong> at once. Let one expire before reserving another.</td></tr><tr><td>♻️ <strong>12-hour renewal window</strong></td><td>On chains where renewal is supported, a live reservation can be renewed within the <strong>12 hours</strong> before it expires.</td></tr><tr><td>🔤 <strong>Length limits</strong></td><td>Ticker <strong>2–10</strong> characters; name <strong>1–64</strong> characters (after normalization).</td></tr><tr><td>🧬 <strong>Normalized identity</strong></td><td>You reserve the folded pair — casing, symbols, and look-alikes all resolve to one canonical key.</td></tr></tbody></table>

See [Reservation Tiers](/for-creators/reservation-tiers.md) for durations, prices, and the full policy.

## How it fits the launch lifecycle

```
RESERVE (optional)  ──▶  LAUNCH  ──▶  TRADE  ──▶  MC GOAL (~$69k, then ~$1M)
hold name+ticker         no lock yet   no lock      time-limited copycat lock
for 24h / 3d / 7d / 30d  (reservation window still protects the holder)
```

A bare launch grants **no** copycat protection on its own; copycat locks are triggered by market-cap goals and are time-limited. Your reservation window protects the identity in the meantime. See [Post-Launch Protection](/for-creators/post-launch-protection.md).

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

## Continue exploring

* 💰 [Reservation Tiers](/for-creators/reservation-tiers.md) — durations, prices, and policy
* ✅ [Check an Identity](/for-creators/check-an-identity.md) — confirm a pair is free first
* 🚀 [Launch with Protection](/for-creators/launch-with-protection.md) — launch the pair you reserved
* 🆘 [Creator Troubleshooting](/for-creators/troubleshooting.md) — expired holds, wrong chain, and more


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.antivamp.io/for-creators/reserve.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
