Available Guards
Asset Payment Guard
Last updated March 10, 2026
The Asset Payment guard requires the minter to transfer a Core Asset from a specified collection as payment in order to mint from the Core Candy Machine.
Overview
The Asset Payment guard allows minting by charging the payer a Core Asset from a specified Asset collection. The Asset will be transferred to a predefined destination.
If the payer does not own an Asset from the required collection, minting will fail.
To have the minter pay more than one Asset the Asset Payment Multi Guard can be used.
Guard Settings
The Asset Payment guard contains the following settings:
- Required Collection: The mint address of the required Collection. The Asset we use to pay with must be part of this collection.
- Destination: The address of the wallet that will receive all Assets.
Set up a Candy Machine using the Asset Payment Guard
create(umi, {
// ...
guards: {
assetPayment: some({
requiredCollection: requiredCollection.publicKey,
destination: umi.identity.publicKey,
}),
},
});
API References: create, AssetPayment
Mint Settings
The Asset Payment guard contains the following Mint Settings:
- Asset Address: The address of the Asset to pay with. This must be part of the required collection and must belong to the minter.
- Collection Address: The Address of the Collection that is used for payment.
- Destination: The address of the wallet that will receive all Assets.
Note that, if you're planning on constructing instructions without the help of our SDKs, you will need to provide these Mint Settings and more as a combination of instruction arguments and remaining accounts. See the Core Candy Guard's program documentation for more details.
Set up a Candy Machine using the Asset Payment Guard
You may pass the Mint Settings of the Asset Payment guard using the mintArgs argument like so.
mintV1(umi, {
// ...
mintArgs: {
assetPayment: some({
requiredCollection: publicKey(requiredCollection),
destination,
asset: assetToSend.publicKey,
}),
},
});
API References: mintV1, AssetPaymentMintArgs
Route Instruction
The Asset Payment guard does not support the route instruction.
Notes
- The Asset used as payment is permanently transferred to the destination wallet -- the minter loses ownership of it.
- Only one Asset is transferred per mint. To require multiple Assets as payment, use the Asset Payment Multi guard instead.
- The Asset must belong to the specified required collection at the time of minting; Assets from other collections will be rejected.
