---
title: "Generate a gas pump wallet address"
method: POST
path: "/v3/blockchain/sc/custodial/batch"
tags: ["Gas pump"]
deprecated: true
---

# Generate a gas pump wallet address

`POST /v3/blockchain/sc/custodial/batch`

## Request

- Base URL: `https://api.tatum.io`
- URL: `https://api.tatum.io/v3/blockchain/sc/custodial/batch`
- Auth: API key in header `x-api-key`

> **Deprecated.**

/v3/blockchain/sc/custodial/batch

**This API is deprecated.  
To start with the gas pump, use the [API for precalculating the gas pump addresses](#operation/PrecalculateGasPumpAddresses).**

  

**2 credits per API call**

Generate new gas pump smart contract address on the blockchain. This address enables custodial providers to receive native assets, ERC20 / ERC721 / ERC1155 tokens on behalf of their customers on dedicated blockchain address, but in the same time it can initiate transfer of those assets away. Gas required for the transfer from that address is going to be deducted from the providers address - the one, which was used to generate the address on the blockchain.

This operation deploys a smart contract on the blockchain.

For paid plans, it is possible to pay for the gas costs - you don't have to provide private key or signatureId. Blockchain fees will be covered by your credits.

This API is supported for the following blockchains:

*   BNB Smart Chain
*   Celo
*   Ethereum
*   Harmony
*   Klaytn
*   Polygon
*   TRON
*   XinFin

## Headers

- `x-testnet-type` 'ethereum-sepolia'

## Request body

- union
  - GenerateCustodialWalletBatchPayer
    - `chain` 'ETH' | 'MATIC' | 'BSC' | 'ONE' | 'CELO', required: Blockchain to work with.
    - `feesCovered` boolean, required: If set to true, blockchain fees will be covered from credits.
    - `batchCount` number, required: Number of addresses to generate.
    - `owner` string, required: Owner of the addresses.
  - GenerateCustodialWalletBatch
    - `chain` 'ETH' | 'MATIC' | 'BSC' | 'ONE' | 'XDC' | 'KLAY', required: Blockchain to work with.
    - `fromPrivateKey` string, required: Private key of account, from which the transaction will be initiated.
    - `batchCount` number, required: Number of addresses to generate.
    - `owner` string, required: Owner of the addresses.
    - `fee` object: Custom defined fee. If not present, it will be calculated automatically.
      - `gasLimit` string, required: Gas limit for transaction in gas price.
      - `gasPrice` string, required: Gas price in Gwei.
    - `nonce` number: The nonce to be set to the transaction; if not present, the last known nonce will be used
  - GenerateCustodialWalletBatchKMS
    - `chain` 'MATIC' | 'ETH' | 'ONE' | 'XDC' | 'KLAY' | 'BSC', required: Blockchain to work with.
    - `signatureId` string, uuid, required: Identifier of the private key associated in signing application. Private key, or signature Id must be present.
    - `index` number: If signatureId is mnemonic-based, this is the index to the specific address from that mnemonic.
    - `batchCount` number, required: Number of addresses to generate.
    - `owner` string, required: Owner of the addresses.
    - `fee` object: Custom defined fee. If not present, it will be calculated automatically.
      - `gasLimit` string, required: Gas limit for transaction in gas price.
      - `gasPrice` string, required: Gas price in Gwei.
    - `nonce` number: The nonce to be set to the transaction; if not present, the last known nonce will be used
  - GenerateCustodialWalletBatchCelo
    - `chain` 'CELO', required: Blockchain to work with.
    - `feeCurrency` 'CELO' | 'CUSD' | 'CEUR': The currency in which the gas fee will be paid
    - `fromPrivateKey` string, required: Private key of account, from which the transaction will be initiated.
    - `batchCount` number, required: Number of addresses to generate.
    - `owner` string, required: Owner of the addresses.
    - `fee` CustomFee: The custom defined fee; if not present, will be calculated automatically
      - `gasPrice` string, required: The price for one gas unit (in Gwei)
      - `gasLimit` string, required: The maximum number of gas units that you are willing to spend on processing the transaction at the provided gas price
    - `nonce` number: The nonce to be set to the transaction; if not present, the last known nonce will be used
  - GenerateCustodialWalletBatchCeloKMS
    - `chain` 'CELO', required: Blockchain to work with.
    - `feeCurrency` 'CELO' | 'CUSD' | 'CEUR': The currency in which the gas fee will be paid
    - `signatureId` string, uuid, required: Identifier of the private key associated in signing application. Private key, or signature Id must be present.
    - `index` number: If signatureId is mnemonic-based, this is the index to the specific address from that mnemonic.
    - `batchCount` number, required: Number of addresses to generate.
    - `owner` string, required: Owner of the addresses.
    - `fee` CustomFee: The custom defined fee; if not present, will be calculated automatically
      - `gasPrice` string, required: The price for one gas unit (in Gwei)
      - `gasLimit` string, required: The maximum number of gas units that you are willing to spend on processing the transaction at the provided gas price
    - `nonce` number: The nonce to be set to the transaction; if not present, the last known nonce will be used
  - GenerateCustodialWalletBatchTron
    - `chain` 'TRON', required: Blockchain to work with.
    - `fromPrivateKey` string, required: Private key of account, from which the transaction will be initiated.
    - `batchCount` number, required: Number of addresses to generate.
    - `owner` string, required: Owner of the addresses.
    - `feeLimit` number, required: Fee limit to be set, in TRX
  - GenerateCustodialWalletBatchTronKMS
    - `chain` 'TRON', required: Blockchain to work with.
    - `from` string, required: Sender address.
    - `signatureId` string, uuid, required: Identifier of the private key associated in signing application. Private key, or signature Id must be present.
    - `index` number: If signatureId is mnemonic-based, this is the index to the specific address from that mnemonic.
    - `batchCount` number, required: Number of addresses to generate.
    - `owner` string, required: Owner of the addresses.
    - `feeLimit` number, required: Fee limit to be set, in TRX

## Response `200`

OK

- union
  - TransactionHash
    - `txId` string, required: The hash (ID) of the transaction
  - SignatureId
    - `signatureId` string, uuid, required: The internal Tatum ID of the prepared transaction for Key Management Sysytem (KMS) to sign<br/>This is different from the <code>signatureId</code> parameter that you provided in the request body. The <code>signatureId</code> parameter in the request body specifies the signature ID associated with the private key in KMS.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
- `403`: Forbidden. The request is authenticated, but it is not possible to perform the operation due to logical error or invalid permissions.
- `500`: Internal server error. There was an error on the server during the processing of the request.

---

[API](https://skmtc.dev/tatum/apis/smart-contracts.md) - [All operations](https://skmtc.dev/tatum/apis/smart-contracts/llms.txt) - [OpenAPI document](https://skmtc.dev/tatum/apis/smart-contracts/revisions/c0146043bb37?raw)
