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

# Launch on EVM

> Deploying the multi-phase ERC-721 on Ethereum, Base, Polygon, Ink, ApeChain, Abstract or Robinhood Chain.

The EVM flow deploys `ExclusivoERC721` v3 — an ERC-721 with a list of sale
phases rather than a single fixed one. Each phase gets its own price, window,
caps and gate, so you're not limited to "one allowlist then public".

<Warning>
  **This contract has not been independently audited.** It's been hardened and
  it's covered by a test suite, but nobody outside has reviewed it. Bear that in
  mind before putting real money through it on mainnet.
</Warning>

## Before you start

* An EVM wallet with gas on your chosen chain.
* Your metadata, or layers for the [generator](/exc/launchpad/layer-generator).
* Your royalty address.

## The steps

<Steps>
  <Step title="Collection">
    Contract name, symbol and supply. You pick the network earlier, so there's no
    separate contract-configuration step.
  </Step>

  <Step title="Royalties and pricing">
    Your royalty and your base mint price. Individual phases can charge something
    different.
  </Step>

  <Step title="Sale phases">
    Add as many as you need. Four kinds:

    | Kind         | Who can mint                         |
    | ------------ | ------------------------------------ |
    | Public       | Anyone                               |
    | Allowlist    | Addresses you've listed              |
    | ERC-721 gate | Holders of a token contract you name |
    | ERC-20 gate  | Holders of at least N of a token     |

    Each has its own price, start, end, per-wallet cap and phase cap.
    → [Sale phases](/exc/launchpad/sale-phases)
  </Step>

  <Step title="Artwork">
    Metadata is pinned to IPFS. Generator artwork is composed during this step
    and pinned directly.
  </Step>

  <Step title="Review and deploy">
    Deploys to your chosen chain, then verifies the contract on the explorer.
  </Step>
</Steps>

## What token gates can and can't do

Gates check whether a wallet holds the token at the moment it mints, on the same
chain. Two things follow:

<AccordionGroup>
  <Accordion title="Someone can borrow their way in">
    Because it's a point-in-time balance check, a determined person can acquire
    the gating token, mint, and dispose of it. If you need real sybil resistance,
    use an allowlist.
  </Accordion>

  <Accordion title="Gates can't see other chains">
    A contract on Base can't read a balance on Ethereum, and nothing on EVM can
    see a Solana wallet. Gating across chains isn't something this contract can
    do.
  </Accordion>
</AccordionGroup>

## Platform fees are baked into your contract

The mint fee and treasury address are compiled into the bytecode when the
contract is built, not read from settings at run time.

In practice that means the fee for your collection is fixed at the moment you
deploy.

## One-click card minting won't work

<Warning>
  Collections on v3 can't support paying by card in a single step.

  The mint function credits whoever submitted the transaction, and checks every
  allowlist, gate and cap against them. So a payment provider minting on your
  buyer's behalf ends up holding the NFT itself, and any gated phase rejects it
  outright.

  A newer contract that mints to a named recipient exists and is tested, but it's
  unaudited and not in the wizard yet. Until then card buyers go through the
  [onramp](/exc/wallet/paying-by-card) — card to USDC, swap, mint normally. One
  extra step, not a blocked sale.
</Warning>

## After you deploy

* **Owner tools** at `/mint/manage` — edit phases, manage the allowlist, withdraw.
* **Updating artwork** re-pins the whole metadata directory and points the contract at the new one. This is also how reveals work, and it's all-or-nothing.
* **Verification** on the block explorer happens automatically as part of the deploy.

Note you can't renounce ownership — the function reverts. Renouncing would
permanently strand phase management, artwork updates and your ability to
withdraw.

## Chain-specific

Robinhood Chain and Abstract each run on a single public endpoint, so reads
degrade if that host has problems even though the chain itself is fine.
→ [Chains](/exc/chains)
