Skip to main content
Every order describes what the buyer is purchasing through the lineItems property — an array of items with a locator and callData.

Supported Item Types

Crossmint supports purchasing various types of digital assets:
  • Digital Assets
    • Non-Fungible Tokens (NFTs)
    • Semi-Fungible Tokens (SFTs)
    • Fungible Tokens (FTs) like memecoins
All items available for purchase must comply with Crossmint's terms of service and legal requirements. Non-Fungible Collections and Fungible tokens must be reviewed and approved by Crossmint before being available in production.

Item Locator Formats

You'll use one of these locator formats in your lineItems:
collectionLocator - For minting new tokens:
  1. crossmint:<_YOUR_COLLECTION_ID_> - For collections created in Crossmint Console (e.g. crossmint:9c82ef99-617f-497d-9abb-fd355291681b)
  2. crossmint:<_YOUR_COLLECTION_ID_>:<_TEMPLATE_ID_> - For collections created in Crossmint Console where a specific NFT template is desired (e.g. crossmint:9c82ef99-617f-497d-9abb-fd355291681b:silver-pass)
  3. <blockchain>:<contract-address> - Using direct contract addresses for external collections registered in Crossmint Console (e.g. ethereum:0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D).

Select Items

You can access the current order’s item data from React with the useCrossmintCheckout hook (order?.lineItems), available inside components wrapped by CrossmintProvider and CrossmintCheckoutProvider.
For external EVM contracts registered in Crossmint Console, ensure the attribute name in callData matches the parameter name in your mint function. For example: If your mint function has the signature: mintTo(address _to, uint256 _amount) then use _amount instead of quantity. See our Register External Collection guide for details on registering your contract.
The buyerCreatorRoyaltyPercent parameter controls how much of the creator royalty percentage the buyer pays when purchasing Solana NFTs through marketplaces.Marketplace Requirements:
  • Magic Eden: Required parameter
  • Tensor: Optional (defaults to NFTs’ on-chain royalty percentage)
  • Hadeswap: Optional (defaults to 100%)
Parameter Details:
  • Range: Must be between 0 and 100 (inclusive)
  • Impact: Always affects final price calculation by applying royalty fees
  • Validation: Throws error if outside valid range
Automatic 100% Enforcement: The system automatically overrides this parameter to 100% when:
  • Compressed NFTs: Detected when getAssetProof() returns valid proof data
  • Royalty-enforced NFTs: Detected when NFT has MIP1 or Cardinal Token Manager protection

Multiple Item Orders

You can enable users to purchase multiple items in a single transaction by providing an array of line items:
Multiple Item Limitations:
  1. Maximum limit of 15 items per order
  2. collectionLocator: All items must be on the same blockchain, and collections registered on the same project
  3. tokenLocator: All items must be on the same blockchain. NFT secondary purchases work in production only.
  4. Fungible tokens (executionParameters.mode: "exact-in"): Only 1 line item per order
Multiple line items let a buyer purchase several items in a single transaction — for example, a marketplace cart or several tokens from an ERC-1155 contract. This is currently supported for NFTs only, with a maximum of 15 NFTs per order. For secondary (marketplace) sales, each line item references a shared secondary-sales collectionId provisioned by your Crossmint Customer Success Engineer, with the specific contractAddress and tokenId in callData. See Marketplaces & Launchpads.
Delivery is tracked per line item: when the order completes, check each item’s delivery.status individually. See How Checkout Works.

Next Steps

Specify Recipient

Decide where purchased items are delivered

Track Orders

Follow the order through delivery