# Start Airdrop

### Airdrop Fee&#x20;

* Airdrop creation may require a certain amount of KSP..&#x20;
* If there is a KSP fee, the necessary KSP must be transmitted to the operator before creation..

### Airdrop create

Execute the createDistribution function of AirdropOperator Contract.

* You must proceed after obtaining Valid Operator privileges.
* The amount of tokens required and the fee should be transferred to the contract rather than deposited.
* Request Parameters
  * totalAmount : Total number of tokens to be distributed by airdrop
  * blockAmount : Token quantity to be distributed per block
  * startBlock : Airdrop start block number

```
function createDistribution(
    uint totalAmount,
    uint blockAmount,
    uint startBlock,
) public
```

### Airdrop Token deposit

If there is an issue of token exhaustion or extension during the airdrop process, tokens can be recharged using the AirdropOperator Contract's Deposit function.

* When executing the function, transfer more than the amount of tokens entered into the wallet.
* The token specified when creating the operator is charged.
* When recharging due to exhaustion, it will be applied from the block after recharging.

```
function deposit(uint amount) public
```

### Airdrop refix

* Modify the amount of tokens distributed per block
* It is applied from the block after the transaction is executed.

```
function refixBlockAmount(uint blockAmount) public
```

### **Airdrop token withdraw**

* The remaining tokens can be withdrawn after the Airdrop plan is in progress.
* Withdrawal will be made to the owner's account.

```
function withdraw(address tokenAddr) public
```
