Add Recipients
Open Airdrop Studio -> My Airdrops, select the draft you just created, and click Recipients. This tutorial starts from that screen.
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.
| Stage | Main action | Result |
|---|---|---|
| Import CSV | Upload the recipient file | Parsed recipient preview |
| Upload Merkle Files | Build and upload Merkle JSON files | Validation starts |
| Register merkle root | Confirm the uploaded root | Campaign is ready for funding |
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 CSVChoose FilePaste CSVParse CSV
What to do:
- Prepare a CSV with wallet address and amount columns.
- Make sure the file contains the full recipient set for this tutorial.
- Save it in a clean format before uploading.
- Use
Choose Fileto upload the CSV, or usePaste CSVif you are testing with raw text.
Example CSV:
Fh3...abc,100
9sd...xyz,50Key details:
Choose Fileis the right path for a large real recipient list.Paste CSVis more useful for smaller test inputs or quick checks.Wallet listandApply Quick Inputexist for equal-distribution shortcuts, but they are not the recommended path for a large Merkle campaign.
| Input method | Best for | Recommended in this tutorial |
|---|---|---|
Choose File | Large recipient lists prepared in advance | Yes |
Paste CSV | Small or temporary pasted data | Only for quick testing |
Wallet list + Apply Quick Input | Many wallets receiving the same amount from a manual list | No |
Common mistakes:
- uploading a file with the wrong columns
- mixing token amounts and raw integer values
- uploading only part of the recipient file
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:
- After upload, let Bonkit parse the CSV.
- Confirm that the total recipient count matches the large recipient list you prepared.
- Check a few rows from the preview to confirm both wallet addresses and amounts look correct.
- 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
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 filesUpload Merkle Files- upload progress
- uploaded file URLs
- validation status badges
What to do:
- Stay on the
Recipientstab after the CSV has been parsed. - Click
Upload Merkle Files. - Wait while Bonkit builds the Merkle bundle from the parsed recipient list.
- Wait again while the generated JSON files are uploaded and reviewed.
- Confirm that the UI shows
Upload completeandStep 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 rootstays 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.
| Status | What it means | Can you register? |
|---|---|---|
| Validation in progress | Files were uploaded, but backend review is still running | No |
| Validation complete | Uploaded files finished review and the root is ready | Yes |
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
Upload complete state where the files were uploaded, but validation is still running and Register merkle root is not available yet.
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 rootRegister merkle root- root selection dialog
- validation-ready status
What to do:
- Wait until the uploaded Merkle file status shows that validation is complete.
- Click
Register merkle root. - If multiple roots are available, choose the correct root in the dialog.
- Approve the wallet transaction.
- 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
Confirmation dialog where you choose the uploaded root and approve the irreversible registration action.
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 rootbecomes 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.