> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spark.money/llms.txt
> Use this file to discover all available pages before exploring further.

# batchTransferTokens

> Transfer tokens to multiple recipients in one transaction.

Transfers tokens to multiple recipients in a single transaction via the `IssuerSparkWallet`.

## Method Signature

```typescript theme={null}
async batchTransferTokens(
  receiverOutputs: {
    tokenIdentifier: Bech32mTokenIdentifier;
    tokenAmount: bigint;
    receiverSparkAddress: string;
  }[],
  outputSelectionStrategy?: "SMALL_FIRST" | "LARGE_FIRST",
  selectedOutputs?: OutputWithPreviousTransactionData[],
  executeBefore?: Date
): Promise<string>
```

## Parameters

<ResponseField name="receiverOutputs" type="{ tokenIdentifier: Bech32mTokenIdentifier; tokenAmount: bigint; receiverSparkAddress: string; }[]" required>
  Array of transfer outputs. Outputs may include multiple token identifiers:

  * `tokenIdentifier`: Bech32m token identifier (e.g., `btkn1...`)
  * `tokenAmount`: Amount of tokens to transfer (`bigint`)
  * `receiverSparkAddress`: Recipient's Spark address
</ResponseField>

<ResponseField name="outputSelectionStrategy" type="&#x22;SMALL_FIRST&#x22; | &#x22;LARGE_FIRST&#x22;">
  Strategy for selecting outputs: `"SMALL_FIRST"` or `"LARGE_FIRST"` (default: `"SMALL_FIRST"`)
</ResponseField>

<ResponseField name="selectedOutputs" type="OutputWithPreviousTransactionData[]">
  Specific outputs to use for transfer (overrides selection strategy)
</ResponseField>

<ResponseField name="executeBefore" type="Date">
  Optional deadline for the transaction. If the transaction is not executed before this time, it will not be processed.
</ResponseField>

## Returns

<ResponseField name="txId" type="string" required>
  Transaction ID
</ResponseField>

## Example

```typescript theme={null}
const txId = await issuerWallet.batchTransferTokens([
  { tokenIdentifier: "btkn1...", tokenAmount: 1000n, receiverSparkAddress: "spark1abc..." },
  { tokenIdentifier: "btkn1...", tokenAmount: 500n, receiverSparkAddress: "spark1def..." },
  { tokenIdentifier: "btkn1...", tokenAmount: 250n, receiverSparkAddress: "spark1ghi..." }
]);

console.log("Batch transfer completed:", txId);
```
