/api/v2/{coin}/wallet/addAdd 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.
coinstringRequiredbtccoinSpecific object xlm object txlm object lnbtc object tlnbtc object enterprise string 59cd72485007a239fb00282ed480da1f^[0-9a-f]{32}$isCold boolean isCustodial boolean keys array[string] 59cd72485007a239fb00282ed480da1fkeySignatures object backup string bitgo string label string required My WalletmultisigType string onchain tss blsdkgaddress string ivxzn3bdn4uom integer 2n integer 3tags array[string] 59cd72485007a239fb00282ed480da1ftype string cold custodial custodialPaired hot trading distributedCustody advancedwalletVersion integer >= 0<= 61eip1559 object maxPriorityFeePerGas string required maxFeePerGas string required evmKeyRingReferenceWalletId string admin object policy object allowBackupKeySigning boolean approvalsRequired integer required >= 11balanceString string 2000000^-?\d+$buildDefaults object minFeeRate >= 100012000maxFeeRate >= 100018000feeMultiplier >= 11.2changeAddressType string p2sh p2shP2wsh p2wsh p2tr p2trMusig2 defaultp2wshtxFormat string legacy psbt psbt-litepsbtcoin string required btccoinSpecificOne ofcreationFailure array[string] b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26pendingChainInitialization boolean custodialWallet object custodialWalletId string 59cd72485007a239fb00282ed480da1f^[0-9a-f]{32}$deleted boolean required disableTransactionNotifications boolean required enterprise string 59cd72485007a239fb00282ed480da1f^[0-9a-f]{32}$freeze object time string <dateTime>expires string <dateTime>reason string TxIntentMismatch TxIntentMismatchRecipient TxIntentMismatchContract TxIntentMismatchApproval UserRequest AdminRequestreferenceId string adminOrUserId string id string required 59cd72485007a239fb00282ed480da1f^[0-9a-f]{32}$isCold boolean keys array[string] 59cd72485007a239fb00282ed480da1flabel string required My Walletm integer 2n integer 3nodeId string 59cd72485007a239fb00282ed480da1f^[0-9a-f]{32}$receiveAddress object id string 59cd72485007a239fb00282ed480da1f^[0-9a-f]{32}$address string <= 250 characters2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZSchain integer 0 1 10 11 20 21 30 31 40 411index integer coin string lastNonce integer -1wallet string 59cd72485007a239fb00282ed480da1f^[0-9a-f]{32}$coinSpecific object balance object label <= 250 charactersBob's Hot Wallet AddressaddressType string p2sh p2shP2wsh p2wsh p2tr p2trMusig2p2shrecoverable boolean tags array[string] 59cd72485007a239fb00282ed480da1fspendableBalanceString string 2000000^-?\d+$unspentCount number 100startDate string <date-time>{}type string cold custodial custodialPaired hot trading distributedCustody advancedusers array[object] {"user":"55e8a1a5df8380e0e30e20c6","permissions":["admin","view","spend"]}user string 59cd72485007a239fb00282ed480da1f^[0-9a-f]{32}$permissions array[string] admin spend trade viewspend,viewcustomChangeKeySignatures object user string backup string bitgo string multisigType string onchain tss blsdkgmultisigTypeVersion string MPCv2error string required requestId string required context object name string required error string required requestId string required context object name string required