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

# Batch Issue Tokens

> Mint tokens to multiple recipients in a single transaction

Issues tokens to up to 200 recipients in one call. The `recipients` and `amounts` arrays must have matching lengths. Each recipient address is validated individually.

## Path Parameters

<ParamField path="tokenAddress" type="string" required>
  Address of the stock token contract.
</ParamField>

## Request Body

<ParamField body="recipients" type="string[]" required>
  Array of Ethereum addresses to receive tokens. Maximum 200 entries.
</ParamField>

<ParamField body="amounts" type="string[]" required>
  Array of token amounts corresponding to each recipient. Each value must be a positive number string.
</ParamField>

<ParamField body="reason" type="string">
  Optional reason or reference for the batch issuance.
</ParamField>

## Response Fields

<ResponseField name="data" type="object">
  <Expandable>
    <ResponseField name="success" type="boolean">Calldata was built successfully.</ResponseField>

    <ResponseField name="txData" type="object">
      The unsigned transaction. `to` is the token contract, `data` is the encoded `batchIssue` call, and `value` is always `"0"`.
    </ResponseField>
  </Expandable>
</ResponseField>

<Note>
  Nothing is submitted on your behalf. Sign `txData` with a wallet holding the required role on the token and broadcast it yourself.
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.trusset.org/stocks/api/tokenization/0x1234.../batch-issue" \
    -H "Content-Type: application/json" \
    -H "X-API-Key: trusset_abc123xy_secret..." \
    -d '{
      "recipients": [
        "0xAbC123dEf456789012345678901234567890AbCd",
        "0x9876543210fedcba9876543210fedcba98765432"
      ],
      "amounts": ["500", "1500"],
      "reason": "Series A distribution"
    }'
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch(
    `https://api.trusset.org/stocks/api/tokenization/${tokenAddress}/batch-issue`,
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'X-API-Key': 'trusset_abc123xy_secret...'
      },
      body: JSON.stringify({
        recipients: [
          '0xAbC123dEf456789012345678901234567890AbCd',
          '0x9876543210fedcba9876543210fedcba98765432'
        ],
        amounts: ['500', '1500'],
        reason: 'Series A distribution'
      })
    }
  );
  const { data } = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "success": true,
      "txData": {
        "to": "0x1234567890abcdef1234567890abcdef12345678",
        "data": "0xb4c5d6e7...",
        "value": "0"
      }
    },
    "metadata": {
      "requestId": "550e8400-e29b-41d4-a716-446655440000",
      "timestamp": "2025-06-15T12:00:00.000Z",
      "instanceId": "inst_abc123"
    }
  }
  ```

  ```json Error - Array Mismatch theme={null}
  {
    "success": false,
    "error": {
      "code": "ARRAY_MISMATCH",
      "message": "recipients and amounts must match"
    },
    "metadata": {
      "requestId": "550e8400-e29b-41d4-a716-446655440000",
      "timestamp": "2025-06-15T12:00:00.000Z",
      "instanceId": "inst_abc123"
    }
  }
  ```
</ResponseExample>
