Address is the entry point of receiving deposits and holding assets on behalf of a user or a business. Each address is uniquely derived and generated base on the derivation scheme of the assets you added to your wallet.

Address Overview

Bitpowr utilizes BIP44 Multi HD Wallet derivation scheme making it possible to generate unlimited wallets and addresses. With the Bip44 algorithm, we are able to generate up to 2^31 addresses from a seed in a very secure and convenient manner. You can read more on BIP44 here.

Bitpowr currently support both ECDSA and ED25519 cryptographic primitives for key generation on our MPC Vault.

Each address on Bitpowr can associated by the following components:

  1. Public Key: public address to be given to the user
  2. Derivation Index: index of the generated address
  3. Address Type: this can either be EOA or Contract Address for EVM chains or Legacy, Segwit and WrappedSegwit for UTXO
  4. Network: network the address was generated on. Address can be different base on the network. This is usually determined by your API key or environment.
  5. Chain: The blockchain the address was generated on

Generating Address

There are two ways to generate an address on Bitpowr, either via the Dashboard which we have covered here or via the API.

In order to generate an address, you need to pass the values below:

  1. Label: The label attached to the address. This would be attached to the webhook whenever you received deposits
  2. Asset: The asset the address is associated.
  3. Account ID: The account/wallet uid to generate the address on
  4. Address Type: The address type can be segwit, wrappedsegwit or legacy or contract
  5. Derivation Index: The derivation index of the address you want to generate. address derivation index - default(last derivationIndex + 1). For instance, it can be used to generate the same address across multiple EVM chains and ERC20 tokens. Can also be used to generate a different version of BTC and LTC address at the same index.
  6. Enable Native Token: Automatically generate native address for non native token address at the same index. E.g USDC and ETH or USDT_TRON and TRON
  7. Is Contract: Generate a smart contract address for EVM chains. Ethereum, BSC, Polygon, Tron
  8. Customer ID : The customer id to attach to this address
  9. Deployment Params : Deployment paramaters to pass when generating the smart contract. autoDeploy, autoFlush, autoFlushErc20
curl --request POST \
     --url https://developers.bitpowr.com/api/v1/addresses \
     -H 'content-type: application/json'
		 -H 'authorization: Bearer <encodedToken>'
		 -d '{
          "label": "citguru",
          "asset": "BTC",
          "accountId": "ee349-dd34-33djf-344x",
          "addressType": "segwit"
        }'
curl --request POST \
     --url https://developers.bitpowr.com/api/v1/addresses \
     -H 'content-type: application/json'
		 -H 'authorization: Bearer <encodedToken>'
		 -d '{
          "label": "citguru",
          "asset": "ETH",
          "accountId": "ee349-dd34-33djf-344x"
        }'
curl --request POST \
     --url https://developers.bitpowr.com/api/v1/addresses \
     -H 'content-type: application/json'
		 -H 'authorization: Bearer <encodedToken>'
		 -d '{
          "label": "citguru",
          "asset": "USDT_TRON",
          "accountId": "ee349-dd34-33djf-344x",
          "addressType": "segwit",
          "derivationIndex": 1
        }'
curl --request POST \
     --url https://developers.bitpowr.com/api/v1/addresses \
     -H 'content-type: application/json'
		 -H 'authorization: Bearer <encodedToken>'
		 -d '{
          "label": "citguru",
          "asset": "BTC",
          "accountId": "ee349-dd34-33djf-344x",
          "addressType": "segwit",
          "customerId": "customer Id"
        }'
curl --request POST \
     --url https://developers.bitpowr.com/api/v1/addresses \
     -H 'content-type: application/json'
		 -H 'authorization: Bearer <encodedToken>'
		 -d '{
          "label": "citguru",
          "asset": "ETH",
          "accountId": "ee349-dd34-33djf-344x",
          "derivationIndex": 1
        }'

API Reference

You can view the API reference for working with Addresses