REST APIWallet & TransactAddress

POST

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 Params

  • coin string required
    A cryptocurrency symbol or token ticker symbol
  • walletId string required

    matches ^[0-9a-f]{32}$

Body Params

object

  • type string
  • chain number

    Defaults to 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

    >= 0 · <= 5

  • evmKeyRingReferenceAddress string
  • onToken string
    Create an address for the given token
  • label string
    A human-readable label for the address

    up to 250 characters

  • lowPriority boolean
    Whether the deployment of the address forwarder contract should use a low priority fee key (ETH only)

    Defaults to false

  • gasPrice string or number
    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.
    eip1559 object
    • 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.

Responses

200
OK

Response Body

ONE OF

  • coin string required
    A cryptocurrency symbol or token ticker symbol
  • wallet string required
  • chain number enum required
    011011202130314041
  • index number required
  • id string
    Platform public ID for an address

    matches ^[0-9a-f]{32}$

  • address string

    up to 250 characters

  • balance object
    balance object
    • balanceString string required
      String representation of the balance. Guaranteed to not lose precision.
    • confirmedBalanceString string required
      The total balance of confirmed transactions for the address (in the chain's base unit). Guaranteed to not lose precision.
    • 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.
    • updated string
      The last time a transaction affected the balance of this address
    • balance number
    • 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 map of objects
      tokens object
      • <key> object
    • nfts map of objects
      nfts object
      • <key> object
    • unsupportedNfts map of objects
      unsupportedNfts object
      • <key> object
    • type object
    • metadata object
  • coinSpecific object
    Properties specific to certain coin types

    ONE OF

    • rootAddress string required
    • trustedTokens array of objects
      trustedTokens object
      • state string enum
        pendingactive
      • limit string
      • token string
    • addressVersion number
    • threshold number
    • bitgoKey object
    • bitgoPubKey string
  • label string
    A human-readable label for the address

    up to 250 characters

  • lastNonce number

    Defaults to -1

  • token string
  • proof string
  • signature string
  • lastConsolidatedTime string date
  • needsConsolidation boolean
  • tokenConsolidationState object
  • tokenAddress object
400
Bad Request

Response Body

object

  • name string
    Error code
  • context map of objects required
    Properties that apply to a specific error name
    context object
    • <key> object
  • error string required
    Human-readable error message
  • requestId string required
    Client request id