Generate wallet

Generate a new wallet for a coin. If you want a wallet to hold tokens, generate a wallet for the native coin of the blockchain (e.g. generate an ETH wallet to hold ERC20 tokens).

Calling this endpoint does all of the following:

  • Creates the user keychain locally on your machine and encrypts it with the provided passphrase (skipped if you pass a userKey).
  • Creates the backup keychain locally on your machine.
  • Uploads the encrypted user keychain and public backup keychain to BitGo.
  • Creates the BitGo key (and the backup key if you pass backupXpubProvider) on the service.
  • Creates the wallet on BitGo with the 3 public keys above.

ⓘ Many account-based assets, including Ethereum, require you to Fund Gas Tanks to initialize new wallets on chain. Ensure your gas tank has a sufficient balance to cover this cost before generating a new wallet.

Path Params
string
required

A cryptocurrency or token ticker symbol.

Query Params
boolean
Defaults to false

Include user, backup and bitgo keychains along with generated wallet

Body Params
string
required
string
enum

If absent, BitGo uses the default wallet type for the asset. This is relevant only for assets that support both multisignature (onchain) and MPC (tss) on the BitGo platform. These assets are: arbeth, eth, opeth, polygon, and soneium. These assets all default to tss.

Allowed:
string
enum

The type of wallet, defined by key management and signing protocols. 'hot' and 'cold' are both self-managed wallets. If absent, defaults to 'hot'. 'trading' for Go Account wallets.

Allowed:
string

Passphrase to be used to encrypt the user key on the wallet

string

User provided public key

string

public part of a key pair

string
enum

Optional key recovery service to provide and store the backup key

Allowed:
string
required

Enterprise id. This is required for Ethereum wallets since they can only be created as part of an enterprise

boolean

Flag for disabling wallet transaction notifications

string

The passphrase used for decrypting the encrypted wallet passphrase during wallet recovery

string

Seed that derives an extended user key or common keychain for a cold wallet.

integer

Gas price to use when deploying an Ethereum wallet

boolean

Flag for preventing KRS from sending email after creating backup key

integer
0 to 6
Defaults to 1

(ETH only) Specify the wallet creation contract version used when creating a wallet contract. Use 0 for the old wallet creation, 1 for the new wallet creation, where it is only deployed upon receiving funds. 2 for wallets with the same functionality as v1 but with NFT support. 3 for MPC wallets. 4 is same as v2 but with some changes related to network identifier and encoding of tx data. v4 is applicable for Arbitrum, Optimism, ZkSync, and other EVM-compatible chains that we will onboard in the future. 5 for MPC MPCv2 wallets. 6 for EVM MPCv2 wallets with receive addresses.

boolean

True, if the wallet type is a distributed-custodial. If passed, you must also pass the 'enterprise' parameter.

string

BitGo key ID for self-managed cold MPC wallets.

string

Common keychain for self-managed cold MPC wallets.

Response

Language
Credentials
Bearer
Response
Choose an example:
application/json