What's the correct format for `__allowlistProof` when using Crossmint with Thirdweb's NFT Drop Contract?

I’m trying to set up Crossmint for my React app to let people mint NFTs from my Thirdweb NFT Drop contract. The contract is on Mumbai testnet and lets anyone claim up to 9 NFTs per wallet.

I’ve got the Crossmint button working, but I’m stuck on the _allowlistProof part. Here’s what my code looks like:

<CrossmintPayButton
  clientId="example-id"
  mintConfig={{
    type: 'erc-721',
    totalPrice: '0.01',
    _quantity: mintAmount,
    _currency: 'matic',
    _pricePerToken: '0.001',
    _allowlistProof: '???',
    _data: '???',
  }}
  environment="staging"
  mintTo={userAddress}
/>

I tried using {"quantityLimitPerWallet": "1"} for _allowlistProof, but it didn’t work. I also tried getting the claim condition from the Thirdweb SDK:

const { data: activeClaimCondition } = useActiveClaimCondition(contract);

And then passing it with JSON.stringify(activeClaimCondition), but I still get an error.

What’s the right way to format _allowlistProof for this setup? Any help would be great!

I’ve worked with Thirdweb and Crossmint integration before, and the _allowlistProof parameter can be tricky. For a public mint without an allowlist, you should actually set it to an empty object: _allowlistProof: {}.

As for the _data field, it’s typically used for additional contract-specific data. In most cases for a standard NFT Drop, you can leave it as an empty string: _data: ''.

Have you verified that your contract address and ABI are correctly set up in the Crossmint dashboard? That’s often a source of issues. Also, double-check that the price and currency in your mintConfig match what’s set in your claim conditions on Thirdweb.

If you’re still having trouble after these adjustments, it might be worth reaching out to Crossmint’s support team directly. They’re usually quite responsive and can help debug contract-specific issues.

hey there, ethan! i’ve been tinkering with crossmint and thirdweb too, and it can be a bit of a head-scratcher sometimes. :sweat_smile:

have you tried setting _allowlistProof to just []? i remember reading somewhere that for public mints, an empty array works. like this:

_allowlistProof: [],

also, for the _data part, maybe try using 0x if an empty string doesn’t cut it?

btw, how’s the mumbai testnet working for you? i’ve been thinking about trying it out for my next project. any cool features you’ve discovered?

oh, and just curious - what kind of nfts are you minting? sounds like an interesting project with the 9 per wallet limit!