Available Guards
Third Party Signer Guard
Last updated March 10, 2026
The Third Party Signer guard requires a predefined address to co-sign each mint transaction on a Core Candy Machine, enabling centralized mint authorization and gated access workflows.
Overview
The Third Party Signer guard requires a predefined address to sign each mint transaction. The signer will need to be passed within the mint settings of this guard.
This allows for more centralized mints where every single mint transaction has to go through a specific signer.
Guard Settings
The Third Party Signer guard contains the following settings:
- Signer Key: The address of the signer that will need to sign each mint transaction.
Set up a Candy Machine using the Third Party Signer Guard
const myConfiguredSigner = generateSigner(umi);
create(umi, {
// ...
guards: {
thirdPartySigner: some({ signerKey: myConfiguredSigner.publicKey }),
},
});
API References: create, ThirdPartySigner
Mint Settings
The Third Party Signer guard contains the following Mint Settings:
- Signer: The required third-party signer. The address of this signer must match the Signer Key in the guard settings.
Mint with the Third Party Signer Guard
When minting via the Umi library, simply provide the third-party signer via the signer attribute like so.
create(umi, {
// ...
guards: {
thirdPartySigner: some({ signer: myConfiguredSigner }),
},
});
Remember to also sign the transaction with the myConfiguredSigner keypair.
Route Instruction
The Third Party Signer guard does not support the route instruction.
Notes
- The
signerKeyconfigured in the guard settings must exactly match the public key of the signer passed in the mint settings, or the transaction will fail. - The third-party signer keypair must be available to sign the transaction at mint time. In a backend-gated workflow, the signer keypair is typically held server-side and signs transactions before forwarding them to the blockchain.
- This guard does not restrict who can initiate the mint -- it only requires that the designated signer co-signs. Combine it with other guards (such as Allow List) for wallet-level access control.
