> For the complete documentation index, see [llms.txt](https://docs-core.allbridge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-core.allbridge.io/sdk/guides/general/send.md).

# Send

The most common and important action in SDK is sending a transfer. To make it first of all you have to build a transaction. For that, you need to call the [send](https://bridge-core-sdk.web.app/interfaces/BridgeService.html#send)[ ](https://bridge-core-sdk.web.app/interfaces/RawBridgeTransactionBuilder.html#send)method. It has the following fields:

<mark style="color:orange;">amount</mark>: (string) - total amount to send in float format. If you pay a fee with stables also includes fee and extra gas amount.

<mark style="color:orange;">destinationToken</mark>: token you want to send has got from [token info](/sdk/guides/general/token-info.md)

<mark style="color:orange;">sourceToken</mark>: token you want to receive have got from [token info](/sdk/guides/general/token-info.md)

<mark style="color:orange;">extraGas</mark>: (string, optional) If you want to receive extra gas tokens on a destination chain, you have to add this field. Limits for extra gas you can get [here](/sdk/guides/utilities/extra-gas-limits.md)

<mark style="color:orange;">extraGasFormat</mark>: ([AmountFormat](https://bridge-core-sdk.web.app/enums/AmountFormat.html) enum INT or FLOAT. Default: INT) Define the format of the extraGas field

<mark style="color:orange;">fee</mark>: (string, optional) to set manually amount of the fee to pay for the transfer. If it is not specified, the fee is set according to [getGasFeeOptions](https://bridge-core-sdk.web.app/classes/AllbridgeCoreSdk.html#getGasFeeOptions) method. Value currency depends on gasFeePaymentMethod field - NATIVE\_CURRENCY or STABLECOIN respectively

<mark style="color:orange;">feeFormat</mark>:  ([AmountFormat](https://bridge-core-sdk.web.app/enums/AmountFormat.html) enum INT or FLOAT. Default: INT) Define the format of the fee field

<mark style="color:orange;">fromAccountAddress</mark>: (string) sender address

<mark style="color:orange;">toAccountAddress</mark>: (string) recipient address

<mark style="color:orange;">gasFeePaymentMethod</mark>: ([enum](https://bridge-core-sdk.web.app/enums/FeePaymentMethod.html), optional, default: WITH\_NATIVE\_CURRENCY) WITH\_NATIVE\_CURRENCY - gas fee and extra gas will be added to the transaction as native token value \
WITH\_STABLECOIN - gas fee and extra gas will be deducted from the amount field

<mark style="color:orange;">messenger</mark>: ([enum](https://bridge-core-sdk.web.app/enums/Messenger.html)) Could be ALLBRIDGE, WORMHOLE, CCTP. Not all chains and tokens support all messengers. To check it you can call [getAverageTransferTime](/sdk/guides/utilities/transfer-time.md) method, and if the messenger is not supported it returns null

<mark style="color:orange;">txFeeParams</mark>: ([object](https://bridge-core-sdk.web.app/interfaces/TxFeeParams.html), optional) additional fee for sending transaction blockchain. Now used only for Solana to add extra fee instructions in the transaction. For more details see [docs](https://bridge-core-sdk.web.app/interfaces/TxFeeParams.html)

```typescript
const rawTx = await sdk.bridge.rawTxBuilder.send(sendParams);
```

The method will return a [raw transaction](https://bridge-core-sdk.web.app/types/RawTransaction.html) accounting to the source chain. You need only to sign and send it.&#x20;

If you want to build a swap transaction you have to use this method also, but with the tokens on the same chain and more simpler [args](https://bridge-core-sdk.web.app/interfaces/SwapParams.html)
