Navigate...

K

Create Draft

sdk.distributions.createDraft(req)

Create a distribution in DRAFT status. This is the first step of the two-step flow — create a draft, optionally review and edit recipients, then call prepare() to generate calldata. You can provide recipients directly, reference an existing list by listId, or add recipients later with replaceRecipients().

Sending native currency (ETH, POL, BNB, …)

Pass the zero address 0x0000000000000000000000000000000000000000 as tokenAddress to target the native currency. No token approval is needed for the later prepare() step. The server normalizes tokenSymbol to the chain’s nativeSymbol.

API key required to run methods

API Key *

Don't have an API key?Get one at dashboard.multisender.app

Base URL

request.name

string

required

Distribution name

Name

request.notes

string

optional

Optional notes or description

Notes (optional)

request.chainId

number

required

Target blockchain chain ID

Chain ID

Select chain

request.tokenAddress

string

required

ERC-20 token contract address. For native currency (ETH, POL, BNB, etc.) pass the zero address 0x0000000000000000000000000000000000000000.

Token Address

For native currency (ETH, POL, BNB, MATIC…) use

request.tokenSymbol

string

required

Token symbol (e.g. "USDC"). For native currency the server normalizes this to the chain’s nativeSymbol.

Token Symbol

request.listId

string

optional

Use recipients from an existing list — mutually exclusive with recipients

List ID

Select a list or paste ID

request.recipients

RecipientDto[]

optional

Inline recipients [{ address, amount, label?, tags? }] — mutually exclusive with listId

Recipients JSON (optional, alternative to List ID)

request.account

string

optional

Sender wallet address

Account (optional)

request.idempotencyKey

string

optional

Unique key to prevent duplicates — returns existing distribution if key already used

Idempotency Key (optional)

request.isDeflationary

boolean

optional

Set to true if the token has transfer fees (deflationary tokens)

Is Deflationary (optional)

request.strategy

string

optional

Distribution execution strategy

Strategy (optional)

Returns

Distribution

Created distribution in DRAFT status — editable until you call prepare()

id

string

Distribution ID — use this for subsequent calls

projectId

string

Project that owns the distribution

name

string

Distribution name

status

string

DRAFT — editable, not yet prepared for execution

chainId

number

Target blockchain chain ID

tokenAddress

string

Token contract address

tokenSymbol

string

Token symbol

totalRecipients

number | null

Number of recipients (if provided)

totalAmount

string | null

Total token amount (if recipients provided)

listId

string | null

Linked recipient list ID (if used)

account

string | null

Sender wallet address

createdAt

string

ISO 8601 creation timestamp

updatedAt

string

ISO 8601 last update timestamp

Errors

400

Validation error

401

The request is not authorized

403

You do not have permission to access this resource

See Also

replaceRecipients()

Replace or set recipients on the draft

prepare()

Generate calldata when ready — transitions to PREPARED

getApproveCalldataForDistribution()

Get exact token approval amount for this distribution

Previous

distribute()

Next

updateDraft()

Generated Code