/api/v2/{coin}/wallet
Add Wallet is for advanced API users. It lets you manually create and specify keys. The recommended (and simpler) method is Generate Wallet with the SDK or BitGo Express. You can also create wallets in the BitGo UI.
This API creates a new wallet for the user or enterprise. The keys to use with the new wallet (passed in the 'keys' parameter) must be registered with BitGo prior to using this API.
BitGo currently only supports 2-of-3 (e.g., m=2 and n=3) wallets. The third key, and only the third key, must be a BitGo key. The first key is by convention the user key, with its encrypted xprv stored on BitGo.
Ethereum and XRP wallets can only be created under an enterprise. Pass in the id of the enterprise to associate the wallet with. Your enterprise id can be seen by clicking on the "Manage Organization" link in the enterprise dropdown. Using the Add Wallet API, you can create a wallet using either the enterprise fee address (used by default for all wallets in the enterprise), or a unique fee address (created manually with the Keychains API). Pass the desired key as the third key ID in the 'keys' array. In either case, the fee address must be funded before creating the wallet.
You cannot generate a wallet by passing in a subtoken (i.e. ERC20 token) as the coin. Subtokens use the wallet of their parent coin and it is not possible to create a wallet specific to one token. For example, to create a wallet for an ERC20 token, create an Ethereum wallet. It can hold any ERC20 tokens as well as Ether.
BitGo Ethereum wallet is a smart-contract implementing multi-signature scheme. Because contracts itself can not initiate transactions, fee addresses are used for this purpose. Ethereum transactions initiated by a given address, are confirmed by the network in order of creation, so one lower fee transaction can potentially delay all subsequent transactions. To help lower network fee costs, two fee addresses are provided.
"feeAddress" is a main fee address usable for all operations. "lowPriorityFeeAddress" is a secondary fee address that can be used to pay lower fee for Create Address operations without risking delaying subsequent higher-priority transactions initiated by main fee address.
coin
stringRequired"btc"
coinSpecific
object xlm
object enterprise
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
keys
array[string] ["585951a5df8380e0e304a553","585951a5df8380e0e30d645c","585951a5df8380e0e30b6147"]
keySignatures
object backup
string bitgo
string label
string required My Wallet
multisigType
string onchain
tss
blsdkg
address
string ivxzn3bdn4uo
m
integer 2
n
integer 3
tags
array type
string cold
custodial
custodialPaired
hot
trading
walletVersion
integer >= 0
<= 3
1
eip1559
object maxPriorityFeePerGas
string required maxFeePerGas
string required 1 2 3 4 5 6 7 8 9 10 11 12 13
bitgo .coin('teth') .wallets() .add({ label: 'My Wallet', m: 2, n: 3, keys: ['591a40dc422326ff248919e62a02b2be', '591a40dd422326ff248919e91caa8b6a', '591a40dc9fdde805252f0d87f76577f8'], }) .then(function (wallet) { // print the new wallet console.dir(wallet); });
admin
object policy
object allowBackupKeySigning
boolean balanceString
string 2000000
^-?\d+$
buildDefaults
object minFeeRate
integer >= 1000
12000
coinSpecific
object creationFailure
array[string] pendingChainInitialization
boolean rootAddress
string GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM
stellarUsername
string foo_bar@baz.com
homeDomain
string bitgo.com
stellarAddress
string foo_bar@baz.com*bitgo.com
custodialWallet
object deleted
boolean required disableTransactionNotifications
boolean required freeze
object time
string <dateTime>
expires
string <dateTime>
isCold
boolean keys
array m
integer 2
n
integer 3
receiveAddress
object id
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
chain
integer 0
1
10
11
20
21
30
31
40
41
1
index
integer coin
string lastNonce
integer -1
wallet
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
coinSpecific
object balance
object label
One ofaddressType
string p2sh
p2sh-p2wsh
p2wsh
p2sh
recoverable
boolean tags
array spendableBalanceString
unspentCount
number 100
startDate
string <date-time>
{}
users
array[object] permissions
array[string] admin
view
spend
customChangeKeySignatures
object user
string backup
string bitgo
string error
string required requestId
string required context
object name
string required