Create address

post/api/v2/{coin}/wallet/{walletId}/address

Creates a new receive address for a wallet. If you create a forwarder address, whenever it receives assets, BitGo automatically deploys a forwarder smart contract to flush the balance to the base address. See Blockchain Reference topics to learn more about address management, fees, and consolidations for specific assets. Note: New Ethereum addresses require blockchain confirmation before you can consolidate from them.

Path Parameters

  • coinstringRequired
    A cryptocurrency symbol or token ticker symbol
    Example: btc
  • walletIdstringRequired
    Example: 59cd72485007a239fb00282ed480da1f
    Pattern: ^[0-9a-f]{32}$

Request Body

type string
chain number
Default: 1
Example: 1
forwarderVersion number
(ETH only) Specify forwarder version to use in address creation. To reduce the cost of creating ETH forwarders, BitGo uses a set of forwarder contracts that deploy as a simple proxy to a single implementation (https://eips.ethereum.org/EIPS/eip-1167). Additionally, forwarders deploy using opcode, CREATE2, enabling them to deploy only when needed (https://eips.ethereum.org/EIPS/eip-1014). These forwarders otherwise operate identically to prior ETH forwarders. Use this flag to specify the forwarder contract version when deploying a forwarder contract. Use 0 for the older forwarder (https://github.com/BitGo/eth-multisig-v2). Use 1 for the new fee-improved forwarder (https://github.com/BitGo/eth-multisig-v4). Use 2 for NFT-supported forwarders and version 2 wallets. Use 3 for MPC wallets. Use 4 for forwarders with the same functionality as v2 but with some changes. v4 is applicable for Arbitrum, Optimism, ZkSync, and other EVM-compatible chains that we will onboard in the future. Use 5 for new MPC based wallets with wallet-version 6
Minimum: >= 0
Maximum: <= 5
onToken string
Create an address for the given token
Example: ofcbtc
label string
A human-readable label for the address
Max length: <= 250 characters
Example: Bob's Hot Wallet Address
lowPriority boolean
Whether the deployment of the address forwarder contract should use a low priority fee key (ETH only)
Default: false
gasPriceOne of
Explicit gas price to use when deploying the forwarder contract (ETH only). If not given, defaults to the current estimated network gas price.
eip1559 object
(ETH forwarderVersion: 0 wallets only) Specify eip1559 fee parameters in forwarder creation transactions.
maxFeePerGas number required
Max total gasPrice for EIP1559 transactions. Only for ETH and ERC20 tokens.
maxPriorityFeePerGas number required
Max priority tip price for EIP1559 transactions. Only for ETH and ERC20 tokens.
format string
Format to use for the new address, if the coin which supports multiple formats for an address. Currently, Bitcoin Cash is the only coin which has support for multiple address formats. For Bitcoin Cash, BitGo supports both the base58 (legacy) address format, as well as the newer CashAddr format. The default address format is base58. To request a CashAddr formatted address instead, use the value 'cashaddr' as the format.
Example: cashaddr

200 Response

chain number required
Allowed values: 0 1 10 11 20 21 30 31 40 41
Example: 1
coin string required
A cryptocurrency symbol or token ticker symbol
Example: btc
index number required
wallet string required
id string
Platform public ID for an address
Example: 59cd72485007a239fb00282ed480da1f
Match pattern: ^[0-9a-f]{32}$
address string
Max length: <= 250 characters
Example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS
balance object
balanceString string required
String representation of the balance. Guaranteed to not lose precision.
Example: 500000
confirmedBalanceString string required
The total balance of confirmed transactions for the address (in the chain's base unit). Guaranteed to not lose precision.
Example: 400000
spendableBalanceString string required
The total balance of the address (in the chain's base unit) which may be used as inputs for creating new transactions in string representation. Guaranteed to not lose precision.
Example: 40000
updatedOne of
The last time a transaction affected the balance of this address
balance number
Example: 50000
lockedBalanceString string
reservedBalanceString string
totalReceived number
The total amount received on this address (in the chain's base unit)
totalSent number
The total amount sent from this address (in the chain's base unit)
transferCount number
tokens dictionary<string, any>
nfts dictionary<string, any>
unsupportedNfts dictionary<string, any>
type
metadata
coinSpecificOne of
Properties specific to certain coin types
rootAddress string required
trustedTokens array[object]
addressVersion number
threshold number
bitgoKey
bitgoPubKey string
label string
A human-readable label for the address
Max length: <= 250 characters
Example: Bob's Hot Wallet Address
lastNonce number
Default: -1
token string
proof string
signature string
lastConsolidatedTime string <date>
needsConsolidation boolean
tokenConsolidationState

400 Response

name string
Error code
context object required
Properties that apply to a specific error name
error string required
Human-readable error message
requestId string required
Client request id