Skip to main content

Distribution Modes

The airdrop tool supports multiple distribution modes to give you flexibility in how tokens are allocated to recipients.

Multiplier Mode (Default)​

In this mode, you specify a base amount and each recipient receives a multiple of that amount.

$ airdrop-tool --accountId <sender-account> --token <token-contract-address> --accounts <path-to-json-file> --amount <base-amount>
  • --amount: The base amount of tokens (in standard units) to airdrop
  • The JSON file contains account IDs as keys and multipliers as values

Example​

If you set --amount=10 and your JSON file contains:

{
"account1.near": "1",
"account2.near": "0.5",
"account3.near": "2"
}

The distribution would be:

  • account1.near would receive 1 × 10 = 10 tokens
  • account2.near would receive 0.5 × 10 = 5 tokens
  • account3.near would receive 2 × 10 = 20 tokens

Manual Mode​

In this mode, you specify the exact amount for each recipient directly in the JSON file.

$ airdrop-tool --accountId <sender-account> --token <token-contract-address> --accounts <path-to-json-file> --manual
  • --manual: Enables manual mode where JSON values are standard (human-readable) token amounts
  • The JSON file contains account IDs as keys and specific token amounts in standard units as values
  • The tool automatically converts standard amounts to atomic units based on the token's decimals
  • --amount should NOT be used with --manual

Example​

With the --manual flag and a JSON file containing:

{
"account1.near": "1",
"account2.near": "0.5",
"account3.near": "2"
}

The distribution would be:

  • account1.near would receive exactly 1 token in standard units
  • account2.near would receive exactly 0.5 tokens in standard units
  • account3.near would receive exactly 2 tokens in standard units

The tool automatically converts these standard amounts to the appropriate atomic units based on the token's decimals.

Dry Run Mode​

The tool provides a dry run mode that simulates the airdrop without actually transferring tokens:

$ airdrop-tool --accountId <sender-account> --token <token-contract-address> --accounts <path-to-json-file> --dry-run [--amount <base-amount> | --manual]
  • --dry-run: Simulates the airdrop without executing transfers
  • Works with both multiplier and manual modes
  • Outputs detailed information about what would happen during an actual airdrop

This mode is useful for:

  • Verifying your distribution configuration before executing
  • Checking token balances to ensure sufficient funds
  • Estimating gas costs for the operation

JSON File Format​

The JSON file format is the same for both distribution modes, but the interpretation of the values differs:

{
"account1.near": "1",
"account2.near": "0.5",
"account3.near": "2"
}
  • In Multiplier Mode: Values are treated as multipliers of the base amount
  • In Manual Mode: Values are treated as exact token amounts in standard units
caution

The file MUST be a valid JSON file. An error will be thrown otherwise.