Docs
Create from a multisig or Safe
Guide to create a Merkl campaign from a multisig or Safe
The recommended method for creating campaigns with Merkl using a multisig is through the Gnosis Safe Transaction Builder.
This guide walks you through generating and executing the payload to finalize your campaign creation.
1. Configure Your Campaign and Get Your Payload
Configure your campaigns in Merkl Studio with the Create Campaigns guide, then click Download Payload on the review page. To build the payload with the API instead, see Crafting campaigns.
2. Upload the JSON File
Once you have your JSON payload file, open the Gnosis Safe Transaction Builder and either drag and drop the file into the designated area, or click Choose a file to upload it manually.

If you're using a different tool, proceed with your standard workflow.
3. Verify the Payload (For Signers)
Signers can decode the payload back into the full campaign configuration and confirm what they approve before they sign. See Verifying payloads in the developer docs.
4. Execute the Transactions
You will see the following 3 transactions:
approve: Approves the MerklDistributionCreatorcontract to spend your reward tokensacceptConditions: Accepts Merkl's Terms & Conditions. This is required the first time you create a campaign but can be removed from subsequent payloads.createCampaign: Creates the campaign
For a deeper explanation of what each of these transactions does, see Transactions to sign in the developer docs.
-BMFcd8O7.png)
Click Create Batch and then Send Batch to execute the transactions and deploy your Merkl campaign.
Congratulations! You have successfully created your Merkl campaign.
Your campaign appears in the Merkl app about 15 minutes after creation, on average (see After launch). Find it in the latest created campaigns.
Recommendations
Optimize for Gas Fees:
You don't need to include acceptConditions for every campaign. Including it only in your first campaign can help reduce gas fees. You can safely remove it from payloads generated by Merkl Studio or the Merkl API for subsequent campaigns.
Similarly, for approval amounts: you can grant a large allowance once and then exclude the approval transaction from future payloads.
Handle Large Payloads:
On some chains, transaction payloads may be too large for the available block space, especially when creating multiple campaigns in a single payload. This occurs when the encoded campaign data exceeds the chain's transaction size limits. The limits vary by chain and depend on the number of campaigns and their complexity, as some campaign types encode more data onchain than others.
If your transaction fails due to payload size, you'll need to split it into multiple smaller payloads. Use our Payload Splitter tool to automatically divide large payloads into executable batches.
Save for Future Use:
Save the transaction batch in your library to streamline the process and create new campaigns faster in the future.