Partner Driven

MoonPay NFT Checkout: Partner Driven Flow

The Partner Driven flow is designed to allow your users to purchase NFTs using fiat currency, while you maintain control over the way your smart contract is called. This flow requires you to provide us with callData, which we will use to execute an on-chain transaction and call your smart contract.

Step 1: Ensure you meet our product pre-requisites

Before setting up NFT Checkout, you'll need to check you meet all the requirements to use our product.

  • You're looking to complete a sale on Ethereum or Polygon (more chains coming soon) and the NFTs are priced in their native network currency (i.e. MATIC or ETH)
  • The NFTs have a USD value of between $3 & $15,000.

NFT Smart Contract Requirements

Basic NFT Smart Contract requirements are described here

Allow lists:

If your smart contract incorporates an Allow List, it's vital to undertake the following steps to ensure a smooth and secure minting process:

  • Buyer Wallet Address Verification: We will pass you buyer wallet address in call to calldata endpoint so you can incorporate that in your verification flow.
  • MoonPay Address Access: Grant the MoonPay address permissions to buy an unlimited number of NFTs at any time. The ability to buy without restrictions is crucial for MoonPay to operate effectively.

MoonPay addresses

List of all addresses available here

Step 1: Set Base URL

  1. Log in to your MoonPay account.
  2. Navigate to the NFT settings in the dashboard.
  3. Set the base URL for your NFTs.

Step 2: Implement Asset Info Endpoint

The asset info endpoint is a crucial part of the Partner Driven flow. It allows MoonPay to retrieve information about the NFTs available for purchase.

  1. Implement the asset info endpoint on your server. https://dev.moonpay.com/reference/get_asset-info-contractaddress-tokenid
  2. Ensure that the subFlow value is set to PartnerDrivenDirect. This indicates that the Partner Driven flow is being used.

Step 3: Implement CallData Endpoint

The callData endpoint is used to provide MoonPay with the data needed to execute an on-chain transaction and call your smart.

Specification link - https://dev.moonpay.com/reference/post_calldata