Skip to main content
The first section of this guide is EVM specific. For Solana, we support the metaplex standard. Importing a candy machine is very similar. Jump below for specific details about importing a Solana candy machine.

EVM Smart Contract Requirements

ERC-721, ERC-721a, ERC-1155

The mint function accepts address paramter and mints to that address

Crossmint treasury address(es) must be able to call your function unlimited times

Please note that currently only importing EVM and SOL primary contracts is self-serve. If you wish to import EVM or SOL secondary contracts, or Aptos and Sui contracts, please contact sales. For Xion blockchain contracts, please refer to our Xion Contract Requirements documentation.

Import a Custom Contract

1

Navigate to Token collections and click `New collection`

New collections screenshot
2

Enter Collection Information

This information is displayed in the Hosted Checkout, Storefront, and Claim pages. You can edit it later.
Collection info screenshot
3

Select `Import an existing contract` option

Import Collection screenshot
4

Select the Blockchain your contract is deployed on

Remember, Crossmint has staging and production environments. When working in the staging environment, choose the mainnet name. For example, if your contract is on the Polygon Amoy testnet, select Polygon.
Select blockchain screenshot
5

Select `Import my own contract` option

Select contract provider screenshot
6

Contract Address

Enter the address of your contract and the console will determine the contract type automatically.
Enter contract address screenshot
7

Proxy or Sales Contract (optional)

Notice in the screenshot that the example has the same contract address that was entered in previous step. This indicates a basic setup where the purchase function is within the regsitered NFT contract. The only reason to change this is if purchases should be sent to a different contract address that is not the same as the NFT contract.Most developers do not need to change this. If you are unsure, leave it as is. Transparent upgradeable contracts also do not need to use this setting and should use the beacon address in the previous step.
Sales contract option screenshot
8

Contract ABI

As long as your contract is verified on the block explorer we can query the ABI automatically. If you have not verified your contract, you must enter the ABI manually.
Contract ABI section screenshot
9

Mint Function Currency

Unless you specifically deployed a contract that supports USDC you must leave the native currency selected. If you are unsure, leave it as is.
Contract mint function currency section screenshot
10

Select Mint Function

If you selected the native currency in previous step this will be a very short list. If you have multiple mint functions in your contract that you want to accept payments for, you must register each one separately.
USDC mint functions typically are NOT payable. Change currency selector to USDC to populate mint function list with valid options.
The mint function must accept an address parameter and mint to that address. If your mint function lacks this you’ll need to deploy a new contract or modify your existing contract.
Contract mint function section screenshot
11

Parameter for recipient address

After the mint function has been selected this will be a short list built from the function parameters of type address. If you have multiple options here ensure you select the correct one. Doing this incorrectly will result in the purchased NFTs being sent to the wrong address and they likely will not be recoverable.
Contract mint function recipient address section screenshot
12

Parameter for quantity

This will be a short list built from the function parameters of type uint256. If you have multiple options here ensure you select the correct one. Doing this incorrectly will result in the NFT checkout tools not being able to properly mint the correct quantity of NFTs.
Contract mint function quantity parameter section screenshot
13

Review details and click `Register collection` to complete

EVM registration complete screenshot
Crossmint supports Candy Machine v3. The initial setup is the same as above. The only difference is selecting Solana for the blockchain and entering a candy machine ID instead of a contract address.

Select Solana for the blockchain

Select Solana blockchain screenshot

Choose candy machine version and enter candy machine ID

Find the ID in the cache.json file in the folder where you deployed your Candy Machine
Candy machine registration screenshot

Review details and click `Register collection` to complete

Candy machine registration complete screenshot

Next steps

Integrate the Crossmint SDK to start selling from your website. You can do this in three ways:
  1. EASY: Use the Storefront to start accepting payments without writing any code.
  2. MID: Add a Hosted Checkout into your existing site or app, which opens a Crossmint branded checkout flow in a pop-up or new tab.
  3. ADVANCED: Craft an Embedded Checkout with custom UI into your website or app.