Skip to Content
Run Your First Airdrop2. Add Recipients

Add Recipients

Open Airdrop Studio -> My Airdrops, select the draft you just created, and click Recipients. This tutorial starts from that screen.

Image
Open the Recipients tab

My Airdrops detail view showing where to open the draft and switch to the Recipients tab.

Estimated time: 10-15 minutes

In this tutorial you will:

  • Upload a CSV for 10,000 wallets
  • Let Bonkit parse the recipient list
  • Build and upload Merkle files
  • Register a Merkle root for the campaign

This tutorial assumes a Claim-based (Merkle) campaign with a large recipient list. Merkle campaigns store a compact root onchain instead of storing every recipient.

StageMain actionResult
Import CSVUpload the recipient fileParsed recipient preview
Upload Merkle FilesBuild and upload Merkle JSON filesValidation starts
Register merkle rootConfirm the uploaded rootCampaign is ready for funding
Image
Recipients tab

Recipients tab overview showing the CSV import area, parsed preview, and Merkle actions for a claim-based campaign.

Step 1. Prepare the CSV

Prepare the recipient CSV you will upload into Bonkit.

UI elements:

  • Recipient CSV
  • Choose File
  • Paste CSV
  • Parse CSV

What to do:

  1. Prepare a CSV with wallet address and amount columns.
  2. Make sure the file contains the full recipient set for this tutorial.
  3. Save it in a clean format before uploading.
  4. Use Choose File to upload the CSV, or use Paste CSV if you are testing with raw text.

Example CSV:

Fh3...abc,100 9sd...xyz,50

Key details:

  • Choose File is the right path for a large real recipient list.
  • Paste CSV is more useful for smaller test inputs or quick checks.
  • Wallet list and Apply Quick Input exist for equal-distribution shortcuts, but they are not the recommended path for a large Merkle campaign.
Input methodBest forRecommended in this tutorial
Choose FileLarge recipient lists prepared in advanceYes
Paste CSVSmall or temporary pasted dataOnly for quick testing
Wallet list + Apply Quick InputMany wallets receiving the same amount from a manual listNo

Common mistakes:

  • uploading a file with the wrong columns
  • mixing token amounts and raw integer values
  • uploading only part of the recipient file
Image
Recipient CSV import

CSV upload area showing the file input and recipient parsing controls.

Step 2. Parse and review the recipient list

Turn the uploaded CSV into a recipient preview that Bonkit can use to build the Merkle data.

UI elements:

  • parsed recipient preview
  • recipient count
  • amount preview
  • preview notice when the table is truncated

What to do:

  1. After upload, let Bonkit parse the CSV.
  2. Confirm that the total recipient count matches the large recipient list you prepared.
  3. Check a few rows from the preview to confirm both wallet addresses and amounts look correct.
  4. Continue only after the parsed list reflects the campaign you actually want to launch.

Key details:

  • Bonkit only shows a preview subset when the list is large.
  • The preview is meant to confirm the shape of the data, not to manually inspect every row.
  • If the count or totals look wrong here, fix the CSV first before building Merkle files.

Do not use Append Recipients for this tutorial. That action is for onchain recipient storage. In this Merkle flow, the next action is Upload Merkle Files.

Common mistakes:

  • checking only the first few rows but missing a broken total count
  • assuming a large preview means the full file was parsed correctly
  • clicking the wrong action for the selected distribution type
Image
Parsed recipient preview

Recipient preview showing parsed rows, totals, and the large-list preview state.

Step 3. Upload Merkle files

Build one or more Merkle JSON files from the large recipient list and upload them to the backend.

UI elements:

  • Step 1: Upload merkle files
  • Upload Merkle Files
  • upload progress
  • uploaded file URLs
  • validation status badges

What to do:

  1. Stay on the Recipients tab after the CSV has been parsed.
  2. Click Upload Merkle Files.
  3. Wait while Bonkit builds the Merkle bundle from the parsed recipient list.
  4. Wait again while the generated JSON files are uploaded and reviewed.
  5. Confirm that the UI shows Upload complete and Step 1 complete.

Key details:

  • Bonkit may create one or more Merkle files, depending on how the recipient set is chunked.
  • Each uploaded file gets its own status badge.
  • Register merkle root stays disabled until file validation finishes.
  • File validation can take longer for larger recipient lists, so this step may stay in the review state for a while.
  • Uploaded files expire if you wait too long before registration.
StatusWhat it meansCan you register?
Validation in progressFiles were uploaded, but backend review is still runningNo
Validation completeUploaded files finished review and the root is readyYes

After the upload finishes, there is still a file validation step. For large lists, this review can take time. Wait until the file status is complete and Register merkle root becomes available.

Common mistakes:

  • leaving the page before the upload and validation state settles
  • trying to register the root before file validation is complete
  • assuming one upload always means exactly one file for a large recipient set
Image
Merkle file validation in progress

Upload complete state where the files were uploaded, but validation is still running and Register merkle root is not available yet.

Image
Merkle file validation complete

Validated upload state where the file review finished and the campaign is ready for the Register merkle root step.

Step 4. Register the Merkle root

Lock in the uploaded recipient source so the campaign can move to funding.

UI elements:

  • Step 2: Register merkle root
  • Register merkle root
  • root selection dialog
  • validation-ready status

What to do:

  1. Wait until the uploaded Merkle file status shows that validation is complete.
  2. Click Register merkle root.
  3. If multiple roots are available, choose the correct root in the dialog.
  4. Approve the wallet transaction.
  5. Return to the draft once the registration succeeds.

Key details:

  • This action is irreversible.
  • Registering the root is what turns the uploaded Merkle data into the campaign’s active recipient source.
  • After registration, recipients are treated as fixed for the current campaign setup.

Only register the root after you are sure the recipient CSV is correct. Once the root is registered, this campaign is no longer using an editable draft-style recipient list.

Common mistakes:

  • registering the wrong root when multiple uploads exist
  • assuming upload completion is the same as root registration
  • moving to funding before the root registration transaction succeeds
Image
Register Merkle root dialog

Confirmation dialog where you choose the uploaded root and approve the irreversible registration action.

Image
Register locked after completion

Post-registration state where the root is already registered and the register action is no longer available.

Success Looks Like

  • the parsed list shows the expected recipient count
  • the Merkle upload section shows Upload complete
  • Register merkle root becomes available after validation
  • the registration transaction succeeds
  • the draft is ready for the funding step

Common Mistakes

  • using the onchain recipient action in a Merkle tutorial
  • uploading the wrong CSV version
  • ignoring the file validation state
  • registering before checking recipient count and totals

Next Step

Continue to Deposit Tokens.

Last updated on