# sendTokens

```javascript
(async() => {
    await SOLPay.sendTokens("RECIPIENT_ADDRESS", 1, "TOKEN_ADDRESS"); // {"from": "...", "to": "WALLET_ADDRESS", "amount": 1, "token_address": "TOKEN_ADDRESS", "signature": "..."}
    await SOLPay.sendTokens("RECIPIENT_ADDRESS", 1, "TOKEN_ADDRESS", (details) => {
        // {"from": "...", "to": "WALLET_ADDRESS", "amount": 1, "token_address": "TOKEN_ADDRESS", "signature": "..."}
    }); // {"from": "...", "to": "WALLET_ADDRESS", "amount": 1, "token_address": "TOKEN_ADDRESS", "signature": "..."}
})();
```

### Parameters:

* address: string - the address where the tokens should be sent
* amount: number - the amount of tokens to send with the smallest denomination of tokens being represented by amount 1
* token\_address: string - the mint address of the token
* preconfirm (optional, default: `(details) => {}`): function - a function to capture the unconfirmed and unbroadcasted transaction details before the transaction has been broadcasted and confirmed on the Solana network

### Returns:

object (`{"from": "...", "to": "WALLET_ADDRESS", "amount": 1, "token_address": "TOKEN_ADDRESS", "signature": "..."}`) - the transaction details

* from: string (`"..."`) - the address from which Solana is sent
* to: string (`"..."`) - the address to which Solana is sent
* amount: number (`1`) - the number of tokens sent (in terms of the token's base unit)
* token\_address: string(`"..."`) - the address of the token sent
* signature: string (`"..."`) - the signature of the transaction

### Throws:

* `SOL Pay SDK Fatal Error: No connection found. Use SOLPay.connectNetwork() to connect to the Solana network.` - could not find a connection to the Solana network
* `SOL Pay SDK Fatal Error: No wallet connection found. Use SOLPay.connectWallet() to connect to a Solana wallet.` - no wallet was connected
* `SOL Pay SDK Fatal Error: Unable to get recent blockhash.` - was not able to get a recent blockhash
* `SOL Pay SDK Fatal Error: SOL Pay SDK Fatal Error: Unable to broadcast transaction.` - was not able to broadcast the transaction
* `SOL Pay SDK Fatal Error: The preconfirm function returned an error, halting the transaction from being sent: ${err}` - did not send transaction because the preconfirm function could not be run to completion successfully
* `SOL Pay SDK Fatal Error: Invalid transfers ${transfers}.` - invalid transfers were used
* `SOL Pay SDK Fatal Error: Invalid serialized transaction ${serialized_transaction}.` - an invalid serialized transaction was used

{% hint style="info" %}
**Note:**

Sending a transaction includes a fee of at least 0.000005 SOL.
{% endhint %}
