Skip to main content
Transfers tokens to multiple recipients in a single transaction via the IssuerSparkWallet.

Method Signature

async function batchTransferTokens(
  receiverOutputs: {
    tokenIdentifier: Bech32mTokenIdentifier;
    tokenAmount: bigint;
    receiverSparkAddress: string;
  }[],
  outputSelectionStrategy?: "SMALL_FIRST" | "LARGE_FIRST",
  selectedOutputs?: OutputWithPreviousTransactionData[]
): Promise<string>;

Parameters

receiverOutputs
array
required
Array of transfer objects. All outputs must have the same tokenIdentifier:
  • tokenIdentifier: Bech32m token identifier (e.g., btkn1...)
  • tokenAmount: Amount of tokens to transfer (bigint)
  • receiverSparkAddress: Recipient’s Spark address
outputSelectionStrategy
string
Strategy for selecting outputs: "SMALL_FIRST" or "LARGE_FIRST" (default: "SMALL_FIRST")
selectedOutputs
OutputWithPreviousTransactionData[]
Specific outputs to use for transfer (overrides selection strategy)

Returns

txId
string
required
Transaction ID

Example

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);