/api/v2/{coin}/wallet/generate
This API call creates a new wallet. Under the hood, the SDK (or BitGo Express) does the following:
ⓘ Ethereum 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 on the enterprise dropdown. Each enterprise has a fee address which will be used to pay for transaction fees on all Ethereum wallets in that enterprise. The fee address is displayed in the dashboard of the website, please fund it before creating a wallet.
ⓘ You cannot generate a wallet by passing in a subtoken as the coin. Subtokens share wallets with their parent coin and it is not possible to create a wallet specific to one token.
ⓘ This endpoint should be called through BitGo Express if used without the SDK, such as when using cURL.
coin
stringRequiredbtc
includeKeychains
booleanDefault: false
label
string required My Wallet
multisigType
string onchain
tss
blsdkg
type
string hot
cold
custodial
passphrase
string userKey
string backupXpub
string xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH
backupXpubProvider
string dai
enterprise
string required 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
disableTransactionNotifications
boolean passcodeEncryptionCode
string coldDerivationSeed
string gasPrice
integer disableKRSEmail
boolean walletVersion
integer >= 0
<= 3
1
isDistributedCustody
boolean bitgoKeyId
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
commonKeychain
string 1 2 3 4 5 6 7 8
bitgo .coin('tltc') .wallets() .generateWallet({ label: 'My Test Wallet', passphrase: 'secretpassphrase1a5df8380e0e30' }) .then(function (wallet) { // print the new wallet console.dir(wallet); });
id
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
users
array[object] user
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
permissions
array[string] ["admin","view","spend"]
coin
string tbtc4
label
string My TBTC4 Wallet
m
integer 2
n
integer 3
keys
array[string] 59cd72485007a239fb00282ed480da1f
keySignatures
object backupPub
string 1fe81d0c91457d89993b01475bfb9e5809067ae046926faeab6e63beea009d8dd460387e0c3843034570798a9c2bcc1dbbea2988ee5a36979e0bbe6e02f7840af2
bitgoPub
string 209d0e9a6d4352b66fae0a35ce62c1059bcc4db9e2883abc4f1b3d20481c5cebb7299c581efd9e0151abaf2496da7c6d75d276de36ed3de37c94e9cc5a2ea77e59
tags
array[string] 59cd72485007a239fb00282ed480da1f
receiveAddress
object id
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
address
string <= 250 characters
2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS
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
<= 250 characters
Bob's Hot Wallet Address
addressType
string p2sh
p2shP2wsh
p2wsh
p2tr
p2trMusig2
p2sh
balance
integer 0
balanceString
string 0
confirmedBalance
integer 0
confirmedBalanceString
string 0
spendableBalance
integer 0
spendableBalanceString
string 0
deleted
boolean false
isCold
boolean false
freeze
object {}
time
string <date-time>
expires
string <date-time>
disableTransactionNotifications
boolean false
admin
object {}
approvalsRequired
integer 1
pendingApprovals
array[object] []
id
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
coin
string btc
wallet
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
enterprise
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
organization
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
creator
string 59cd72485007a239fb00282ed480da1f
^[0-9a-f]{32}$
createDate
string <date-time>
info
Any ofstate
Any ofpending
awaitingSignature
pendingFinalApproval
pendingCustodianApproval
pendingVideoApproval
pendingIdVerification
scope
string enterprise
wallet
userIds
array[string] 59cd72485007a239fb00282ed480da1f
approvalsRequired
integer >= 1
1
walletLabel
string resolvers
array[object] addressLabels
array[object] allowBackupKeySigning
boolean false
coinSpecific
object clientFlags
array[string] recoverable
boolean startDate
string <date-time>
hasLargeNumberOfAddresses
boolean config
object