POST
Create key
Path Params
-
coinstring requiredA cryptocurrency or token ticker symbol.
Body Params
object
-
coinSpecificobjectcoinSpecific object
-
lnbtcobjectlnbtc object
-
purposestring enumThe purpose of the key.userAuthnodeAuth
-
-
tlnbtcobjecttlnbtc object
-
purposestring enumThe purpose of the key.userAuthnodeAuth
-
-
-
encryptedPrvstringPrivate part of this key pair, encrypted with a passphrase that only the client knows. Required for all sources exceptbitgo. -
sourcestring enumbackupbitgocolduser -
enterprisestringThe Enterprise that will own this key -
newFeeAddressbooleanCreate a new keychain instead of fetching enterprise key (only for Ethereum) -
originalPasscodeEncryptionCodestringPassphrase that is used to decrypt box D (i.e. encrypted wallet passphrase) on your wallet keycard -
pubstringPublic part of this key pair. If the key type is "independent" (default) it is required for user key and is optional for backup key. If key type is "tss" this field is not required. -
isDistributedCustodybooleanSet to true if you want to create a key for distributed custody. This parameter is only valid if you have the distributed custody enterprise license enabled and are creating a BitGo key. Otherwise it will throw an error. -
commonPubstringThe commonPub for the key. This value is necessary for MPC keys when the source is either “user” or “backup”. Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. -
commonKeychainstringThe commonKeychain for the key if this is a MPC key. This value is required to be set when the type is set to “tss” and when the source is either “user” or “backup”. Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. This value is the common pub concatenated with the common chaincode. -
keySharesarray of objectsOnly required for BitGo MPC keys. Those will be the shares from the user and the backup provider that BitGo will end up generating the BitGo key (share) from.keyShares object
-
fromstring enum requiredThe source of the key share.userbackupbitgo -
tostring enum requiredThe recipient of the key share.userbackupbitgo -
publicSharestring requiredPublic part of the share concatenated with chain code (64+64 characters hex string). -
privateSharestring requiredPrivate part of the share concatenated with chain code (64+64 characters hex string). Depending on who the source and the recipient are, the share might be encrypted against the recipient's public key. -
privateShareProofstringThe certificate of the private share, signed by the source of the key share. -
vssProofstringThe verifiable shamir share verification value
-
-
typestringCoin name used to choose correct KRS public key for the given provider. Possible valid values are "btc", "eth", "bitcoin" -
keyTypestring enumA value from a string enum denoting what kind of key this is. Defaults to “independent” indicating an on-chain key is requested. If set to “tss” this tells us that a “tss” key is requested.tssindependent -
userGPGPublicKeystringUser's public key in ASCII armored format. Only required for BitGo MPC keys. -
backupGPGPublicKeystringBackup public key in ASCII armored format (may be managed by user or KRS). Only required for BitGo MPC keys. -
isMPCv2booleanWhether a key or wallet is using the Multi-Party Computation version 2 protocol. Optional field.
Responses
200
OK
Response Body
ONE OF
-
encryptedPrvstringThe encrypted private key -
idstring required -
isBitGobooleanTrue, if this key is owned by BitGo -
sourcestring enumbackupbitgocolduser -
typestring enum requiredA value from a string enum denoting what kind of key this is. Defaults to “independent” indicating an on-chain key is requested. If set to “tss” this tells us that a “tss” key is requested.tssindependent -
pubstringpublic part of a key pair
-
encryptedPrvstringThe encrypted private key -
idstring required -
isBitGobooleanTrue, if this key is owned by BitGo -
sourcestring enum requiredbackupbitgocolduser -
typestring enum requiredA value from a string enum denoting what kind of key this is. Defaults to “independent” indicating an on-chain key is requested. If set to “tss” this tells us that a “tss” key is requested.tssindependent -
commonKeychainstringThe commonKeychain for the key if this is a MPC key. This value is required to be set when the type is set to “tss” and when the source is either “user” or “backup”. Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. This value is the concatenation of the common public key (32-byte) with the common chaincode (32-byte) as a hex string. -
commonPubstringThe common public key. This value is required to be set for MPC keys when the source is either "user" or "backup". Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. -
commonKeychainSigstringopenPGP ASCII armored pubkey format string. This contains the HSM signature/certification (signed by BitGo MPC GPG key pair) of the commonKeychain. This is necessary for verification purposes to ensure that the commonKeychain value came from BitGo's HSM. Used for full custody/OVC operations. -
commonPublicKeySigstringOpenPGP ASCII pubkey armoured string containing HSM signature certification. Allows to ensure that commonPublicKey came from the HSM -
keySharesarray of objectskeyShares object
-
fromstring enum requiredThe source of the key share.userbackupbitgo -
tostring enum requiredThe recipient of the key share.userbackupbitgo -
publicSharestring requiredPublic part of the share concatenated with chain code (64+64 characters hex string). -
privateSharestring requiredPrivate part of the share concatenated with chain code (64+64 characters hex string). Depending on who the source and the recipient are, the share might be encrypted against the recipient's public key. -
privateShareProofstringThe certificate of the private share, signed by the source of the key share. -
vssProofstringThe verifiable shamir share verification value -
hsmSigstring requiredopenPGP ASCII armored public key format string. Can be used to ensure that the "u" value came from the HSM. This contains the HSM signature/certification (signed by bitgo GPG key pair) of the public form of the "u" value and notation packets that indicate the commonPublicKey and the key ids of the two GPG keys used to share wrapping (userGPGPublicKey and backupGPGPublicKey).
-
-
walletHSMGPGPublicKeySigsstringGPG ASCII armored public key format that consists of HSM signature/certification and GPG notation data appended to the key signature subpackets
400
Bad Request
Response Body
object
-
errorstring requiredHuman-readable error message -
requestIdstring requiredClient request id -
contextobjectProperties that apply to a specific error name -
namestring requiredError code