Belong.net Logo
MCP Cheat Sheet

MCP Tools — EVM Minting

Tools for NFT collection creation, minting and checkout on EVM chains.

deploy-collection

Description: Prepares a new ERC-721/1155 NFT collection deployment. Returns unsigned produce() calldata. No database collection is created until complete-collection confirms the deployment transaction.

  • Input:
    {
      name: string,                 // Collection name
      symbol: string,               // Collection symbol (no spaces allowed)
      description?: string,         // Description
      feeNumerator: number,         // Royalty % (max 6)
      mintPrice: number,            // Mint price in human-readable format (e.g., 1 for $1, 0.5 for $0.50)
      whitelistMintPrice: number,   // Whitelist mint price in human-readable format (e.g., 0.3 for $0.30)
      transferable: boolean,        // NFT transferability
      maxTotalSupply: number,       // Max NFT count
      paymentToken: 'NATIVE' | 'USDC' | 'BUSD',  // Payment token ('NATIVE' for chain native token, 'USDC' or 'BUSD' for stablecoin)
      creator: string,              // Creator wallet address
      chainId: number,              // EVM chain ID
      externalUrl: string | null,   // External link
      attributes?: Array<{ trait_type: string, display_type?: string, value: string }>,
      referralCode?: string         // Optional referral code
    }
    
  • Output:
    {
      params: [{
        creator: string,       // Creator wallet address
        paymentToken: string,  // Resolved token address (0xEee... for NATIVE or USDC/BUSD contract)
        feeNumerator: number,
        transferable: boolean,
        maxTotalSupply: number,
        mintPrice: string,     // Price in wei/token units
        whitelistMintPrice: string,  // Whitelist price in wei/token units
        metadata: { name: string, symbol: string },
        contractURI: string
      }, "0x0...", {
        nonce: number,
        deadline: number,
        signature: string
      }],
      verifyingContract: string,  // Address of the verifying contract
      method: object,  // ABI-encoded method details for the transaction
    }
    

complete-collection

Description: Finalizes collection deployment after broadcast and creates or updates the database collection from the confirmed transaction.

gasless: true marks the collection as eligible for sponsorship checks, but the sponsorship balance itself is managed separately through /api/v3/sponsorship/*. See Sponsored Gas Ledger Guide.

  • Input:
    {
      chainId: number,
      hash: string, // Deployment transaction hash
      hubId?: string,
      activityId?: string,
      gasless?: boolean,
      whitelist_hubIDs?: string[],
      whitelist_userIDs?: string[]
    }
    
  • Output: Created or updated collection object. Use the returned id as collectionId for minting, media uploads, and checkout flows.

The backend reconstructs the collection from the deployment transaction calldata and receipt. It verifies the configured NFT factory and the authenticated creator wallet before saving.

evm-mint

Description: Prepares batched NFT mint with dynamic pricing and metadata. Crypto mint only.

  • Input:
    {
      collectionId: string,
      chainId: number,
      walletAddress: string,           // Minter's wallet address
      nfts: Array<{
        receiver: string,              // Receiver address for this NFT (where the NFT will be sent)
        name: string,
        description: string,
        mintPrice: number,             // Price in human-readable format (e.g., 1 for $1, 0.5 for $0.50)
        quantity: number,
        image?: string,
        attributes?: Array<{ trait_type: string, display_type?: string, value: string }>,
        external_url?: string,
        animation_url?: string,
        youtube_url?: string
      }>
    }
    
  • Output:
    {
      chainId: number,
      verifyingContract: string,     // Collection contract address
      method: object,                 // ABI-encoded method details for the transaction
      params: [
        string,                      // Payment token address (0xEee... for NATIVE or USDC/BUSD contract address)
        Array<string>,               // Receivers array - one address per NFT
        Array<{                      // DynamicPriceParameters array - one per NFT
          tokenId: bigint,           // Token ID (bigint format)
          price: bigint,             // Price in wei/token units (bigint format)
          tokenUri: string           // Metadata URI
        }>,
        Array<{                      // SignatureProtection array - one per NFT
          nonce: bigint,             // Nonce for replay protection
          deadline: bigint,          // Expiration timestamp
          signature: string          // ECDSA signature (hex format, 0x...)
        }>
      ],
      tokens: Array<{
        token_id: string,
        token_uri: string,
        minted_price: number,
        name: string,
        image?: string,
        attributes?: Array<{...}>,
        description?: string,
        external_url?: string,
        animation_url?: string,
        youtube_url?: string
      }>
    }
    

    Important: All arrays (receivers, dynamicPriceParameters, protections) must have the same length and be synchronized by index. Element at index i in each array corresponds to the same mint operation. The signature in protections[i] is generated for the parameters in dynamicPriceParameters[i] and receivers[i].
    Use mintDynamicPrice function to execute the mint:
    mintDynamicPrice(
      address expectedPayingToken,
      address[] calldata receivers,
      DynamicPriceParameters[] calldata dynamicPriceParameters,
      SignatureProtection[] calldata protections
    ) external payable
    

    Where DynamicPriceParameters is (uint256 tokenId, uint256 price, string tokenUri) and SignatureProtection is (uint256 nonce, uint256 deadline, bytes signature).

mint-complete

Description: Finalizes mint, saves tokens to user inventory.

  • Input:
    {
      chainId: number,
      hash: string                     // Mint transaction hash
    }
    
  • Output: Array of saved NFTs

The backend reconstructs collectionId, walletAddress, and token data from the mint transaction calldata, receipt logs, and token metadata URI. All minted receivers must belong to the authenticated user on the same chain.

create-referral-code

Description: Returns transaction data to create a referral code for a promoter. Auth required.

  • Input:
    {
      chainId: number; // EVM chain ID
    }
    
  • Output: { address: string, method: { name: "createReferralCode", ... } }

get-referral-code-by-creator

Description: Retrieves the referral code for a given wallet address. Returns zeroHash if no valid code exists. No auth required.

  • Input:
    {
      chainId: number,       // EVM chain ID
      walletAddress: string  // Creator wallet address
    }
    
  • Output: { referralCode: string } — bytes32 hash

Note: Auth required for complete, checkout, create-referral-code. Gasless on SKALE.

Copyright © 2026