POST
Sign wallet transaction
Sign transactions for multisignature wallets using external-signing mode. You must maintain your keys, in the clear, on a separate Express server. BitGo doesn't decrypt your private keys.
Path Params
-
coinstring requiredA cryptocurrency or token ticker symbol. -
walletIdstring requiredThe wallet ID.
Body Params
object
-
keychainobjectThe user's keychain object with anencryptedPrvproperty. ThewalletPassphraseparameter is required when usingkeychain. Any request must include eitherkeychainorprv.keychain object
-
encryptedPrvstringEncrypted user private key
-
-
prvstringUser private key
Note: The request must include either
prvorkeychain -
txPrebuildobjectThe transaction description object as created by 'Build Transaction'txPrebuild object
-
walletstring -
txHexstringSerialized transaction hex -
txBase64stringSerialized transaction base64 (applies to XLM only). The request must include this or a txHex -
txInfoobjectONE OF
-
changeAddressesarray of strings -
nOutputsintegerNumber of outputs -
nP2SHInputsinteger -
nSegwitInputsinteger -
unspentsarray of objectsunspents object
-
idstringThe id of the unspent in the form:<tx_index> -
addressstringThe address of this unspent -
valueinteger -
valueStringstring -
blockHeightintegerThe block this Unspent was created in -
datestring date-timeThe date this unspent was created -
coinbasebooleanTrue if this unspent came from the coinbase transaction -
walletstring -
fromWalletstring -
chainintegerThe type of this unspent's address (P2SH, P2WSH, etc...) -
indexintegerA monotonic counter used when creating new addresses -
redeemScriptstringThe Script program used to cryptographically verify spending this unspent -
witnessScriptstringThe segwit Script program used to cryptographically verify spending this unspent -
isSegwitboolean
-
-
walletAddressDetailsobjectwalletAddressDetails object
-
idstringplatform public id for an address -
addressstring -
chaininteger enum011011202130314041 -
indexinteger -
coinstring -
lastNonceinteger -
walletstringThe wallet which contains this address -
coinSpecificobjectProperties which are specific to certain coin typescoinSpecific object
-
xlmobjectxlm object
-
memoIdstringLatest memo id generated for the wallet -
rootAddressstringRoot address of the wallet
-
-
txlmobjecttxlm object
-
memoIdstringLatest memo id generated for the wallet -
rootAddressstringRoot address of the wallet
-
-
-
balanceobjectBalance of the address. In case of Eth and Celo, if returnBalancesForToken is passed with includeBalances, then it will return token balance in the address object. This field will be present only whenincludeBalancesquery param is passed as true.balance object
-
updatedstring date-timeThe last time a transaction affected the balance of this address -
balanceintegerThe cleared balance of the address -
balanceStringstringString representation ofbalance. Guaranteed to not lose precision. -
totalReceivedintegerThe total amount received on this address (in the chain's base unit) -
totalSentintegerThe total amount send from this address (in the chain's base unit) -
confirmedBalanceStringstringThe total balance of confirmed transactions for the address (in the chain's base unit). Guaranteed to not lose precision. -
spendableBalanceStringstringThe total balance of the address (in the chain's base unit) which may be used as inputs for creating new transactions in string representation. Guaranteed to not lose precision.
-
-
labelstring nullableA human-readable label for the address. -
addressTypestring enump2shp2shP2wshp2wshp2trp2trMusig2
-
-
feeintegerNetwork fee -
operationsarray of objectsoperations object
-
amountstringAmount in Lumens as string -
assetobjectasset object
-
codestring
-
-
destinationstring -
typestring enumpaymentcreateAccount
-
-
sequencestring -
sourcestring
-
-
feeInfoobjectONE OF
-
sizeintegerEstimated size of the transaction in bytes -
feeintegerEstimated fee in base unit for the transaction -
feeRatestring or integerCustom minimum fee rate in a coin's base unit per kilobyte (or virtual kilobyte)--for example, satoshis per kvByte or microAlgos per kByte. If the appliedfeeRatedoes not meet a coin's required minimum transaction fee amount, the minimum is still applied (for example, 1000 sat/kvByte or a flat 1000 microAlgos). -
payGoFeeintegerBitGo fee of the transaction (in base units) -
payGoFeeStringintegerBitGo fee of the transaction (in base units) represented as a String
-
heightintegerHeight of the ledger that provided the values -
xlmBaseFeestringBase network fee per transaction operation -
xlmBaseReservestringBase reserve used to calculate the minimum balance required by the network
-
-
-
coldDerivationSeedstringA seed used to create a deterministic BIP-32 path which is then used to derive a private key. This is useful when one wants to create multiple BitGo cold wallets but only protect a single master private key. Using the seed one can create a child key for a specific wallet, for instance an Ethereum wallet could use the "eth" seed while an XRP wallet could use "xrp" as a seed. Both of these child keys would be derived from a single master key and so only the master key needs to be stored and protected. -
walletPassphrasestringPassphrase to decrypt the user keychain.walletPassphraseis a required parameter when the parameterkeychainis provided. -
recipientsarray of objectsArray of objects describing the recipients. See buildTransaction for more detail. Required on ETH.
Responses
200
OK
Response Body
object
-
txInfoobjectONE OF
-
txHexstringSerialized transaction hex
-
halfSignedobjecthalfSigned object
-
txBase64stringSerialized transaction base64 (applies to XLM only)
-
-
400
Bad Request
Response Body
ONE OF
-
errorstring requiredHuman-readable error message -
requestIdstring requiredClient request id -
contextobjectProperties that apply to a specific error name -
namestring requiredError code
-
errorstring requiredHuman-readable error message -
requestIdstring requiredClient request id -
contextobject requiredcontext object
-
idstring
-
-
namestring enum requiredError codeInvalidWalletId