The allowList guard validates the minting wallet against a predefined list of wallets.

Instead of passing the entire list of wallets as settings, this guard accepts the Root of a Merkle Tree created from this allow list. The program can then validate that the minting wallet is part of the allow list by requiring a Merkle Proof. Minting will fail if either the minting address is not part of the merkle tree or if no Merkle Proof is specified.

You may use the getMerkleRoot and getMerkleProof helper functions provided by the SDK to help you set up this guard. Here is an example.

import { getMerkleProof, getMerkleRoot } from '@metaplex-foundation/mpl-candy-machine';
const allowList = [
'Ur1CbWSGsXCdedknRbJsEk7urwAvu1uddmQv51nAnXB',
'GjwcWFQYzemBtpUoN5fMAP2FZviTtMRWCmrppGuTthJS',
'AT8nPwujHAD14cLojTcB1qdBzA1VXnT6LVGuUd6Y73Cy',
];
const merkleRoot = getMerkleRoot(allowList);
const validMerkleProof = getMerkleProof(allowList, 'Ur1CbWSGsXCdedknRbJsEk7urwAvu1uddmQv51nAnXB');
const invalidMerkleProof = getMerkleProof(allowList, 'invalid-address');

Note that you will need to provide the Merkle Proof for the minting wallet before calling the mint instruction via the special "route" instruction of the guard. See AllowListRouteArgs for more information.

Generated using TypeDoc