Skip to main content

CSV Support

The Sablier Interfaces supports CSV files for faster processing and automating large-scale operations. This feature is available for both airdrops and streams.

Formatting Caveats

Dates: All columns with the "date" type should have the following format: "YYYY-MM-DD HH:mm".

Durations: All columns with the "duration" type should have the following format: "x years y days z hours". Note that each particle is optional, e.g., you can skip the days.

Timezones: The dates and times extracted from the CSV are processed using the same timezone used by the user's browser.

Amounts: All token amounts should be expressed in humanized form, e.g., 10 USDC should be written as 10, not 10000000. The Sablier app will multiply the amounts by the token's number of decimals in the processing step.

Airdrops

With Sablier, you can create airdrop campaigns with up to a million recipients. To do so, you must upload a CSV file containing all recipient addresses and the airdrop amounts.

Use the provided template and fill in the rows with recipient addresses and airdrop amounts.

CSV Template

For your convenience, here's a download link for the CSV template:

Asset 1
Sablier - Airdrop CSV TemplateCSV template for creating airdrops on Sablier

To use this feature:

  1. Access the create airdrop page
  2. Fill out the details for your airdrop campaign in the 1st step
  3. Continue to the 2nd step, where you can upload the CSV
Airdrop Create

Streams

Create with CSV

Using a CSV, you can deploy up to 280 streams all at once. Start from the suggested template, and fill in the rows with addresses, amounts, and other details.

CSV Template

Here's table with all the available CSV templates:

URLDescription
FlowOpen-ended streams that can be topped up.
Linear with durationLinear streams with the duration timing.
Linear with rangeLinear streams with the range timing.
Cliff with durationCliff streams with the duration timing.
Cliff with rangeCliff streams with the range timing.
Monthly with rangeUnlock Each Month streams with the range timing.
Stepper with durationUnlock In Steps streams with the duration timing.
Stepper with rangeUnlock In Steps streams with the duration timing.
Timelock with durationTimelock streams with the duration timing.
Timelock with rangeTimelock streams with the range timing.
BackWeighted with rangeBackWeighted streams with the range timing.
Unlock linear with durationUnlock-Linear streams with the duration timing.
Unlock linear with rangeUnlock-Liner streams with the duration timing.
Unlock cliff with durationUnlock-Cliff streams with the duration timing.
Unlock cliff with rangeUnlock-Cliff streams with the range timing.
Exponential with durationExponential streams with the duration timing.
Exponential with rangeExponential streams with the range timing.
Cliff exponential with durationCliff-Exponential streams with the duration timing.
Cliff exponential with rangeCliff-Exponential streams with the range timing.

To use this feature:

  1. Access the vesting gallery page in the Sablier app
  2. Select the desired vesting shape
  3. In the top right corner, you will find a button guiding you toward the CSV feature
CSV Selector

Column Formats

To use the CSV feature, the data you provide must be formatted correctly. Bellow is a list with the format expected for all column types supported by Sablier.

warning

Make sure that your CSV editing software (e.g. Microsoft Excel) does not override the cell format. We suggest double-checking in the Sablier app that the dates have been parsed as expected.

ColumnTypeDescriptionExamples
addressStringRecipient address0x12...AB
amountNumberDeposit amount100, 42161 or any other valid amount
durationStringTotal duration1 year 20 days, 3 years 20 days 4 hours
startDateStart date in YYYY-MM-DD HH:mm format2024-02-24 16:15, 2026-02-14 17:25
endDateEnd date in YYYY-MM-DD HH:mm format2024-02-24 16:15, 2026-02-14 17:25
cliffDurationStringCliff duration2 years 20 days, 3 years 20 days 4 hours
cliffEndDateCliff date in YYYY-MM-DD HH:mm format2024-02-24 16:15, 2026-02-14 17:25
monthsNumberNumber of months for the unlock monthly5, 12 or any other valid integer
stepsNumberNumber of steps for the unlock in steps5, 12 or any other valid integer
unlockNumberAmount that will be initially unlocked100, 42161 or any other valid amount
initialStringWhether the first unlock should occur at the start date or at the end of the first monthat start or end of first month