REST APIWallet & TransactWallet

POST

Send a half-signed transaction to BitGo for final signing (using the BitGo key) and broadcasting.

Path Params

  • coin string required
    Coin or token identifier (e.g. btc, tbtc, eth)
  • walletId string required
    The wallet ID

Body Params

object

Request body for sending a half-signed transaction. Combines BuildParams with send-specific fields.
  • type string

    Required for transactions from MPC wallets. "acceleration" speeds up transactions with a certain nonce by adjusting the gas setting. "accountSet" is for XRP AccountSet transactions. "consolidate" combines multiple UTXO inputs into fewer outputs. "enabletoken" is for SOL. "fanout" splits UTXO inputs into many smaller outputs (UTXO coins only). "stakingLock" and "stakingUnlock" are for Stacks delegations. "transfer" is for native-asset transfers. "trustline" is for Stellar trustline transactions. Possible types include: [acceleration, accountSet, consolidate, enabletoken, fanout, stakingLock, stakingUnlock, transfer, transfertoken, trustline]

    For AVAX, possible types include: addValidator, export, and import.

    For XRP, possible types include: payment and accountSet. The default is payment.

    For STX, type is required.

  • messages array of objects
    messages object
    • address string required
      The address for which you're proving ownership. This address must belong to the wallet.
    • message string required
      Message that is being signed.
  • numBlocks number

    (BTC only) The number of blocks required to confirm a transaction. You can use numBlocks to estimate the fee rate by targeting confirmation within a given number of blocks. If both feeRate and numBlocks are absent, the transaction defaults to 2 blocks for confirmation.

    Note: The maxFeeRate limits the fee rate generated by numBlocks.

    >= 2 · <= 1000

  • feeRate number

    Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte.

    If the feeRate is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee.

    Note: The feeRate overrides the maxFeeRate and minFeeRate.

  • maxFeeRate number

    (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The maxFeeRate limits the fee rate generated by both feeMultiplier and numBlocks.

    Note: The feeRate overrides the maxFeeRate.

  • feeMultiplier number or string

    (UTXO only) Custom multiplier to the feeRate. The resulting fee rate is limited by the maxFeeRate. For replace-by-fee (RBF) transactions (that include rbfTxIds), the feeMultiplier must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced.

    Note: The maxFeeRate limits the fee rate generated by feeMultiplier.

  • minConfirms number
    The unspent selection for the transaction will only consider unspents with at least this many confirmations to be used as inputs. Does not apply to change outputs unless used in combination with enforceMinConfirmsForChange.
  • enforceMinConfirmsForChange boolean
    When set to true, will enforce minConfirms for change outputs.

    Defaults to false

  • gasPrice number
    Custom gas price to be used for sending the transaction. Only for ETH and ERC20 tokens.
  • eip1559 object
    EIP-1559 transaction parameters. Only for ETH and ERC20 tokens.
    eip1559 object
    • maxFeePerGas number required
      Max total gasPrice for EIP1559 transactions. Only for ETH and ERC20 tokens.
    • maxPriorityFeePerGas number required
      Max priority tip price for EIP1559 transactions. Only for ETH and ERC20 tokens.
  • gasLimit number
    Custom gas limit to be used for sending the transaction. Only for ETH and ERC20 tokens.
  • targetWalletUnspents number

    Specifies the minimum count of good-sized unspents to maintain in the wallet. Change splitting ceases when the wallet has targetWalletUnspents good-sized unspents.

    Note: Wallets that continuously send a high count of transactions will automatically split large change amounts into multiple good-sized change outputs while they have fewer than targetWalletUnspents good-sized unspents in their unspent pool. Breaking up large unspents helps to reduce the amount of unconfirmed funds in flight in future transactions, and helps to avoid long chains of unconfirmed transactions. This is especially useful for newly funded wallets or recently refilled send-only wallets.

    Defaults to 1000

  • minValue number
    Ignore unspents smaller than this amount of base units (e.g. satoshis). For doge, only string is allowed.
  • maxValue number
    Ignore unspents larger than this amount of base units (e.g. satoshis). For doge, only string is allowed.
  • sequenceId string
    A sequenceId is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a sequenceId you can easily reference transfers and transactions—for example, to safely retry sending. Because the system only confirms one send request per sequenceId (and fails all subsequent attempts), you can retry sending without the risk of double spending. The sequenceId is only visible to users on the wallet and is not shared publicly.
  • nonce string
    (DOT only) A nonce ID is a number used to protect private communications by preventing replay attacks. This is an advanced option where users can manually input a new nonce value in order to correct or fill in a missing nonce ID value.

    matches ^-?\d+$

  • noSplitChange boolean

    Set true to disable automatic change splitting.

    Also see: targetWalletUnspents

    Defaults to false

  • unspents array of strings
  • changeAddress string
    Specifies a custom destination address for the transaction's change output(s)

    up to 250 characters

  • txFormat string enum
    [UTXO only] Format of the returned transaction hex serialization. legacy for serialized transaction in custom bitcoinjs-lib format. psbt for BIP174 serialized transaction

    Defaults to legacy

    legacypsbtpsbt-lite
  • instant boolean
    (DASH only) Specifies whether or not to use Dash's "InstantSend" feature when sending a transaction.
  • memo object

    Extra transaction information for CSPR, EOS, HBAR, RUNE, STX, TON, XLM, and XRP. Required for XLM transactions.

    Note: For XRP this is the destination tag (DT), for CSPR this is the transfer ID and for ALGO this is the message field.

    memo object
    • type string required
    • value string required
  • comment string
    An optional memo for the transaction.

    up to 256 characters

  • destinationChain string
    (AVAXC and AVAXP only) Destination chain for an AVAX import/export transaction. One of [P, C].
  • sourceChain string
    (AVAXC and AVAXP only) Source chain for an AVAX import/export transaction. One of [P, C].
  • addressType string deprecated
    DEPRECATED - use changeAddressType. The type of address to create for change. One of p2sh, p2shP2wsh, p2wsh, or p2tr.
  • changeAddressType string or array of strings
    The address type for the change address. One of p2sh, p2shP2wsh, p2wsh, p2tr or p2trMusig2, or an ordered array of those address types (ChangeAddressTypes).

    ONE OF

    string enum

  • startTime string
    Unix timestamp in seconds.nanoseconds format, denoting the start of the validity window. Only for HBAR transactions.
  • consolidateId string
    (ALGO/TEZOS only) Consolidation ID of this consolidation transaction.

    matches ^[0-9a-f]{32}$

  • lastLedgerSequence number
    (XRP only) Absolute max ledger the transaction should be accepted in, whereafter it will be rejected
  • ledgerSequenceDelta number
    (XRP only) Relative ledger height (in relation to the current ledger) that the transaction should be accepted in, whereafter it will be rejected
  • cpfpTxIds array of strings
  • cpfpFeeRate number
    The desired effective fee rate of the accelerated transaction in base units per kilobyte (e.g. satoshi/kB), the unconfirmed transactions it depends on, and the newly created Child-Pays-For-Parent transaction. Must be higher than the current effective fee rate of the target transaction.
  • rbfTxIds array of strings
  • isReplaceableByFee boolean
    It is used to mark an UTXO transaction eligible for Replace-By-Fee (RBF) later.
  • maxFee number
    Limits the amount of satoshis that can be used for fees in a Child-Pays-For-Parent (CPFP) transaction. CPFP transactions accelerate the targeted transaction and all of the unconfirmed transactions the targeted transaction depends on. maxFee is required for all CPFP transactions as it allows users to set a safety net that will halt CPFP attempts that exceed the expected cost.

    >= 0

  • strategy string
    Optional unspent selection strategy to use. One of RANDOM, FIFO or BNB.

    up to 20 characters

  • validFromBlock number
    Optional block this transaction is valid from
  • validToBlock number
    Optional block this transaction is valid until
  • trustlines array of objects
    trustlines object
    • action string enum
      addremove
    • limit string
      String representation of the amount to limit in base units (stroops)

      matches ^-?\d+$

    • token string
      One of the supported coin types for Stellar tokens listed in Coin-specific-implementation
  • stakingOptions object
    Required object for staking. Only for CSPR and STX.

    ONE OF

    • amount number required
      Required for CSPR. String representation of the amount to stake or unstake in base units (motes).
    • validator string required
      Required for CSPR. The validator address used to delegate or undelegate.
  • unstakingOptions object
    Options needed to unstake EOS assets
    unstakingOptions object
    • from string
      The name or address of the account that originally staked assets
    • receiver string
      The name or address of the account that had assets staked to
    • unstakeCpuQuantity string
      The string amount of assets to unstake from CPU and asset symbol separated by a space (e.g. '100 EOS')
    • unstakeNetQuantity string
      The string amount of assets to unstake from Net and asset symbol separated by a space (e.g. '100 EOS')
  • refundOptions object
    Options needed to refund unstaked EOS assets if automatic refund fails
    refundOptions object
    • address string
      The name or address of the account that originally unstaked assets
  • messageKey string
    Optional parameter that takes a hexadecimal value to set messagekey for an XRP accountSet transaction. Recipients field should be empty when messageKey is set.
  • reservation object
    Optional parameter for UTXO coins to automatically reserve the unspents that are used in the build. Useful for Cold wallets. If using, must set expireTime.
    reservation object
    • expireTime string date-time required
      Required. The time that the unspent reservations should expire.
  • halfSigned object
    The half-signed transaction. The request must include this or a txHex.
    halfSigned object
    • txHex string
      The half-signed transaction hex.
  • txHex string
    The half-signed, serialized transaction hex. Alternative to sending halfSigned.
  • txRequestId string
    The transaction request id.
  • suppressBroadcast boolean
    Do not broadcast the transaction after signing.
  • videoApprovers array of strings

    at least 1 items

Responses

200
OK

Response Body

object

  • transfer object
    The transfer record created for this transaction.
    transfer object
    • baseValue number
      The value (in base units) sent by this transfer, excluding network fees. BitGo is deprecating this field in the future.
    • baseValueString string
      The value (in base units) sent by this transfer, excluding network fees represented as a string. BitGo is deprecating this field in the future.

      matches ^-?\d+$

    • coin string required
      A cryptocurrency symbol or token ticker symbol
    • comment string nullable
      A comment from the user
    • date string date-time required
      The date this Transfer was last updated
    • enterprise string

      matches ^[0-9a-f]{32}$

    • organization string

      matches ^[0-9a-f]{32}$

    • bitgoOrg string enum
      BitGo TrustBitGo New YorkBitGo GermanyBitGo SwitzerlandBitGo Europe ApSFrankfurt DE TrustBitGo SingaporeBitGo KoreaBitGo Custody MENA FZEBitGo IndiaBitGo Sister Trust 1BitGo Inc
    • entries array of objects required
      entries object
      • address string required
        An address affected by this Transfer
      • valueString string
        The change (in base units) in the address' balance represented as a string

        matches "^-?\d+$"

      • isChange boolean
        True if this address is a change address (only exists for UTXO coins) and if this is a "send" transfer
      • wallet string
        Only visible when the user has access to the wallet

        matches ^[0-9a-f]{32}$

      • walletLabel string
        The label of the wallet referenced by wallet. Only visible when the user has access to that wallet. Useful for displaying a human-readable destination name (e.g. for sibling enterprise wallets) instead of a generic external-address fallback.
      • value number
        The change (in base units) in the address' balance
      • nftSymbol string
      • type string enum
        flushForwarderTokenswalletFundingwalletInitializationaddressInitializationimportedOutputonchainidWalletLinkedonchainidClaimAddedonchainidClaimRemovedAccountCreateContract
      • isPayGo boolean
        True if this address is the BitGo PayGo wallet
      • token string
        If this is a token entry, the token's symbol
      • failed boolean
        True if this entry is failed
      • associatedNativeCoinAddress string
        The native coin receive address associated with the solana ATA address. This is currently present only for BitGo addresses. This change was done so that there is a mapping between the two addresses in the transfer entries.
      • isFee boolean
        Indicates if this entry is a fee
      • isInternal boolean
        Indicates if this entry is internal
      • memo string
        Memo associated with this entry
      • rewardAddress string
        Reward address associated with this entry
      • subtype string
        Subtype of this entry
      • backingFeeString string
        Backing fee represented as a string
      • nftId string
        NFT ID associated with this entry
      • tokenContractHash string
        Token contract hash associated with this entry
      • isReward boolean
        Indicates if this entry is a reward
      • activityMetadata map of objects
        Cosmos group governance metadata (e.g. MsgSubmitProposal details) emitted by the Generic Indexer
        activityMetadata object
        • <key> object
    • history array of objects required
      history object
      • action string enum required
        createdapprovedrejectedsignedunconfirmedconfirmedremovedcommentedfailedregeneratedreplacedreplacingreversedabandoned
      • comment string nullable
        If this history object is of action "commented", this is the comment from the user
      • date string date-time required
        The date of this history object
      • transferId string
        The ID of the transfer that this history object is associated with
      • txid string
        The transaction ID of the transaction that this history object is associated with
      • user string

        matches ^[0-9a-f]{32}$

    • id string required

      matches ^[0-9a-f]{32}$

    • pendingApproval string
    • state string enum required

      The state of the transfer. Includes the following:

      • confirmed: The transfer is confirmed on chain.
      • failed: BitGo failed to confirm the transfer on chain. You must retry the transaction.
      • initialized: The initial state when creating a transfer.
      • pendingApproval: The transfer requires admin approval to proceed.
      • rejected: The transfer was rejected by an admin.
      • removed: A network re-org occurred, causing the confirmed transfer to be removed from the blockchain.
      • replaced: The transfer was stuck due to having a low fee and was replaced by a new transfer with a higher fee.
      • reversed: The transfer was reversed (e.g., when a withdrawal offer is rejected in multi-step transfers).
      • signed: The transfer was approved by an admin (if required) and then signed by BitGo.
      • unconfirmed: The signed transaction was sent to the network, and is pending on-chain validation.
      initializedpendingApprovalrejectedsignedunconfirmedconfirmedremovedfailedreplacedreverseddeleted
    • stakingParams object
      stakingParams object
      • actionType string required
      • amount string
      • coreDao object
        coreDao object
        • amount string number required
        • expiration string date-time required
        • fee number required
        • rewardAddress string required
        • validator string required
        • version number required
      • receiverAddress string
      • requestId string required
      • resource string
      • source string enum
        externalinternal
      • validator string
    • txid string
      The on-chain transaction id
    • type string enum required
      Defines whether or not this Transfer was sent or received by the user
      sendreceive
    • usd number
      The amount of USD of this Transfer (will be negative if it's a send)
    • usdRate number
      The USD rate at the time this Transfer was created
    • medianUsdValue number
      The median USD value of this Transfer
    • medianUsdRate number
      The median USD rate at the time this Transfer was created
    • feeUsd number
      The fee USD value for token transfers
    • feeUsdRate number
      The fee coin USD rate for token transfers
    • value number
      The total value (in base units) sent by this Transfer (may be approximate for ETH and other coins where amounts in base units can exceed 2^53 - 1)
    • valueString string required
      The total value (in base units) sent by this Transfer represented as a String

      matches ^-?\d+$

    • wallet string required

      matches ^[0-9a-f]{32}$

    • walletType string enum
      Wallet type
      backingcoldcustodialcustodialPairedhotadvancedtrading
    • replaces array of strings
    • replacedBy array of strings
    • replacedByTransferId array of strings
    • riskIndicators array of string enums
      SELFDESTRUCT
    • baseValueWithoutFeesString string
      The value (in base units) sent by this transfer, excluding network fees, represented as a string
    • baseValueWithoutFees number
      The value (in base units) sent by this transfer excluding network fees.
    • coinSpecific object
      Transfer fields specific to each coin type
    • confirmations number
      The number of blocks that have been confirmed since this Transfer's block was confirmed
    • consolidateId string
      Consolidation ID if this transfer is part of a consolidation
    • feeString string nullable
      The Transfer's fee (in base units) represented as a String
    • feeCoin string
      The coin used to pay the fee (for cross-chain transactions)
    • sequenceId string
      Unique wallet identifier for preventing double-spends
    • subType string enum
      Transfer subtype
      ofc_depositofc_withdrawalofc_book_transferofc_exchangeofc_bn_settlement_transferofc_bn_allocationofc_trading_orderofc_trading_settlementofc_margin_collateralofc_margin_positionofc_direct_tradeofc_routedofc_feeofc_otherofc_unstakeofc_financing_liquidationreceive_from_gastankreserved_amountutxo_message_signingpending_depositpending_deposit_activityinternal_transferpending_withdrawal_offerpending_deposit_offeroffer_acceptedoffer_rejectedconfirmed_depositconfirmed_withdrawaldeposit_offer_expiredwithdrawal_offer_expiredwithdrawal_offer_rejectedutxo_expiredoffer_cancelledcancel_withdrawal_offermint_requestmint_offermint_acceptmint_depositmint_rejectburn_requestburn_offerburn_acceptburn_withdrawburn_rejectpending_participant_onboarding_requestparticipant_onboarding_acceptedpending_dtcc_end_investor_inviteend_investor_invite_offerend_investor_invite_acceptedend_investor_invite_rejectedpending_allocationallocation_acceptedcosign_delegation_offercosign_delegation_acceptedcash_dvp_settledrepo_dvp_open_leg_settledrepo_dvp_close_leg_settledstaking_eth_withdrawalstaking_eth_partial_withdrawalstaking_eth_full_withdrawalstaking_eth_mev_rewardstaking_eth_block_rewardstaking_bera_withdrawalstaking_bera_block_rewarddefi_deposit
    • txRequestId string
      Associated transaction request ID
    • goStakingRequestId string
      Associated GO staking request ID
    • height number
      The height of the block this Transfer was confirmed in (999999999 if unconfirmed)
    • heightId string
      The unique height id of the block
    • instant boolean
      Whether this is an instant transaction
    • instantId string
      The instant transaction ID if applicable
    • isFee boolean
      Whether this transfer represents a fee
    • isReward boolean
      Whether this transfer represents a staking reward
    • isUnlock boolean
      Whether this transfer represents an unlock operation
    • nSegwitInputs number
      DEPRECATED. Number of segwit inputs on the transfer.
    • outputs array of objects
      outputs object
      • address string
        The address of the UTXO
      • blockHeight number
        The block this Unspent was created in
      • chain number
        The chain of the UTXO
      • coinbase boolean
        True if this unspent came from the coinbase transaction
      • id string
        The ID of the UTXO
      • index number
        The index of the UTXO
      • redeemScript string
        The redeem script of the UTXO
      • value number
        The value of the UTXO
      • witnessScript string
        The witness script of the UTXO
    • payGoFee number
      The Transfer's BitGo fee (in base units)
    • payGoFeeString string
      The Transfer's BitGo fee (in base units) represented as a String
    • inputs array of objects
      inputs object
      • address string
        The address of the UTXO
      • blockHeight number
        The block this Unspent was created in
      • chain number
        The chain of the UTXO
      • coinbase boolean
        True if this unspent came from the coinbase transaction
      • id string
        The ID of the UTXO
      • index number
        The index of the UTXO
      • redeemScript string
        The redeem script of the UTXO
      • value number
        The value of the UTXO
      • witnessScript string
        The witness script of the UTXO
    • intendedValueString string
      A string representation (in base units) of the initial value for the transfer. This is present because when a transaction fails on chain, its value is mutated to be zero. This string is immutable and will always be the intended value of the initial transfer regardless of the final state of the transaction.
    • label string
      Address labels (if any) from entries concatenated.
    • metadata array of objects
      metadata object
      • key string required
      • value string required
    • sendAccounting array of objects
      sendAccounting object
      • amount number
      • amountString string required
      • id string
      • nOuts number required
      • type string required
    • tags array of strings
    • txidType string
      The type of the transaction id
    • usersNotified boolean
      Whether BitGo already sent notifications to the users of the transfer wallet
    • vSize number
      The size of the transaction
    • walletLabel string
      Label of the wallet associated with this transfer
    • enterpriseName string
      Name of the enterprise associated with this transfer
    • elliptic string
      Elliptic risk score information (trust transfers)
    • senderInformationVerified boolean
      Whether sender information has been verified (trust transfers)
    • buildParams map of objects
      Parameters used to build the transaction
      buildParams object
      • <key> object
    • createdTime string date-time
      The time this transfer was created
    • approvedTime string date-time
      The time this transfer was approved
    • rejectedTime string date-time
      The time this transfer was rejected
    • signedTime string date-time
      The time this transfer was signed
    • unconfirmedTime string date-time
      The time this transfer became unconfirmed
    • confirmedTime string date-time
      The time this transfer was confirmed
    • removedTime string date-time
      The time this transfer was removed
    • commentedTime string date-time
      The time this transfer was commented on
    • failedTime string date-time
      The time this transfer failed
    • regeneratedTime string date-time
      The time this transfer was regenerated
    • replacedTime string date-time
      The time this transfer was replaced
    • replacingTime string date-time
      The time this transfer started replacing another
    • abandonedTime string date-time
      The time this transfer was abandoned
    • signedDate string date-time
      The date this transfer was signed (legacy field)
    • customerApprovedTime string date-time
      The time this transfer was approved by the customer (trust transfers)
    • idVerificationTime string date-time
      The time identity verification was completed (trust transfers)
    • trustSignedTime string date-time
      The time this transfer was signed by trust (trust transfers)
    • trustFinalApprovalTime string date-time
      The time this transfer received final trust approval (trust transfers)
  • txid string
    The transaction's unique identifier.
  • tx string
    The encoded transaction, either base64 for XLM or hex for other coins.
  • status string enum
    The state of the transfer.
    initializedpendingApprovalrejectedsignedunconfirmedconfirmedremovedfailedreplacedreverseddeleted
202
Accepted

Response Body

object

  • id string required

    matches ^[0-9a-f]{32}$

  • coin string
    A cryptocurrency or token ticker symbol.
  • wallet string

    matches ^[0-9a-f]{32}$

  • walletType string
  • walletSubType string
    The subtype of the wallet (e.g., custodialHot)
  • wallets array of strings
  • enterprise string

    matches ^[0-9a-f]{32}$

  • organization string

    matches ^[0-9a-f]{32}$

  • organizationName string
    The organization name
  • bitgoOrg string
    The BitGo organization
  • creator string required

    matches ^[0-9a-f]{32}$

  • createDate string date-time required
    The creation date of the pending approval
  • approvedDate string date-time
    The date when the approval was granted
  • updatedAt string date-time
    The date when the approval was last updated (any update, not just processing)
  • keyCurve string enum
    The key curve of the coin attached to this pending approval
    secp256k1ed25519bls12_381
  • info object required
    Information about the pending approval
    info object
    • type string enum required
      userChangeRequesttransactionRequesttransactionRequestFullpolicyRuleRequestupdateApprovalsRequiredRequestupdateEnterpriseRequestupdateOrganizationRequestgenericRequestenterpriseInviteRequestupdateWalletSettingRequestupdateWalletTagsRequest
    • userChangeRequest object
      userChangeRequest object
      • action string
        The action taken
      • permissions array of strings
      • userChanged string
        The user that changed
    • transactionRequest object
      transactionRequest object
      • buildParams object
        The build parameters for the transaction
      • coinSpecific object
        Coin-specific details
      • comment string nullable
        The comment for the transaction request
      • fee object
        The fee for the transaction
      • isUnsigned boolean nullable
        Indicates if the transaction is unsigned
      • policyUniqueId object
        The unique ID for the policy
      • recipients array of objects
        recipients object
        • address string
          The address of the recipient

          up to 250 characters

        • amount object
          The amount to be transferred
        • data string
          Additional data for the transaction
      • requestedAmount object
        The requested amount
      • sourceWallet object
        The source wallet
      • triggeredPolicy object
        The triggered policy for the transaction
      • validTransaction string
        Indicates if the transaction is valid
      • validTransactionHash string
        The hash of the valid transaction
      • verificationItems array of strings nullable
        The verification items for the transaction
      • verificationRuleId string nullable
        The ID of the verification rule
      • videoApprovers array of objects
    • transactionRequestFull object
      transactionRequestFull object
      • intent object
        The intent of the transaction request

        ONE OF

        • sequenceId string
          Client-assigned sequence identifier for idempotency.
        • comment string
          Human-readable memo attached to the transaction.
        • nonce string or number
          Override the on-chain nonce for this transaction.
        • recipients array of objects required
          recipients object
          • address object required
            address object
            • address string
            • option map of objects
              option object
              • <key> object
          • amount object required
            amount object
            • value string required
            • symbol string required
          • data string
        • intentType string enum required
          Must be "payment".
          payment
      • policyUniqueId string
        The unique ID for the policy
      • txRequest object
        The transaction request details

        ONE OF

        • intent object
          The intent of the transaction request

          ONE OF

          • unspents array of strings
          • intentType string enum required
            Must be "consolidate".
            consolidate
          • receiveAddress string required
            Destination address for consolidated funds. Must be a wallet-owned address.
          • senderAddressIndex number
            Index of the wallet address to use as the sender.
          • consolidateId string
            Opaque identifier used to correlate consolidation requests.
          • recipients array of objects
            recipients object
            • tokenData object
              tokenData object
              • tokenQuantity string required
              • tokenType string required
              • tokenId string
              • tokenName string required
              • tokenContractAddress string
              • decimals number
            • address object required
              address object
              • Same shape as Address.
            • amount object required
              amount object
              • Same shape as Amount.
            • data string
          • keepAlive boolean
            When true, leaves a small amount in the source address to keep it alive.
          • nonce string or number
            Override the on-chain nonce for this transaction.
        • unsignedTxs array of objects
          unsignedTxs object
          • parsedTx object required
            parsedTx object
            • inputs array of objects required
              inputs object
              • valueString string required
              • _id string
              • address string
              • chain number
              • derivationIndex number
              • index number
              • value number
            • minerFee string or number required
            • outputs array of objects required
              outputs object
              • valueString string required
              • address string
              • change boolean
              • coinName string
              • data string
              • isPayGo boolean
              • value number
              • wallet string
              • walletV1 string
              • baseAddress string
              • enterprise string
            • spendAmount string or number required
            • gasPrice number
            • hasUnvalidatedData boolean
            • payGoFee string or number
            • spendAmounts array of objects
              spendAmounts object
              • <key> object
            • type string
          • serializedTxHex string required
            The unsigned transaction as a hex string.
          • signableHex string required
            The portion of a transaction used to generate a signature (may or may not be the same as serializedTxHex) as a hex string.
          • derivationPath string
            A bip32 path.
          • coinSpecific object
            Coin specific information.
            coinSpecific object
            • nonceAddress string
            • stakingAddress string
            • signature string
            • <key> object
          • feeInfo object
            feeInfo object
            • fee string or number required
            • feeString string required
        • signatureShares array of objects
          signatureShares object
          • vssProof string
            The VSS proof of the signature share
          • privateShareProof string
            The private share proof
          • publicShare string
            The public share
          • from string enum required
            The source of the signature share.
            userbackupbitgo
          • to string enum required
            The recipient of the signature share.
            userbackupbitgo
          • share string required
            The signature share
        • commitmentShares array of objects
          commitmentShares object
          • type string enum required
            The type of the commitment share
            commitment
          • from string enum required
            The source of the commitment share
            userbackupbitgo
          • to string enum required
            The recipient of the commitment share.
            userbackupbitgo
          • share string required
            The commitment share.
        • txHashes array of strings
        • apiVersion string enum
          The API version of the transaction request
          litefull
        • txRequestId string uuid required
          A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique.
        • idempotencyKey string
          The idempotency key of the transaction request
        • walletId string required
          The id of the Wallet the TxRequest is for.
        • walletType string enum
          The type describes who owns the keys to the wallet associated to the TxRequest.
          backingcoldcustodialcustodialPairedhotadvancedtrading
        • version number required
          The version of the transaction request
        • enterpriseId string
          If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise.

          matches ^[0-9a-f]{32}$

        • state string enum required
          pendingApprovalcanceledrejectedinitializedpendingDeliverydeliveredpendingUserSignaturependingUserCommitmentpendingUserRSharependingUserGSharereadyToSendsignedfailed
        • date string date-time required
          The date and time this version of the TxRequest document was created.
        • createdDate string date-time required
          The date and time the version 1 TxRequest document was created.
        • userId string required
          The Id of the User that produced this version of the TxRequest document. Could have created a new document or updated an existing document.
        • initiatedBy string required
          The Id of the User that originally created the TxRequest document (initiated the TxRequest).
        • updatedBy string required
          The Id of the User that last updated the TxRequest document. This is an alias for the userId field.
        • intent object
          The intent of the transaction request
        • intents array of objects required
        • pendingApprovalId string
          The id of the Pending Approval that was created for the TxRequest if one was required.
        • policiesChecked boolean
        • latest boolean required
          Indicates if this is the latest transaction request
        • isCanceled boolean
          True, if the transaction request is canceled.
        • initiatedByDAppClient boolean
          True when the txRequest was initiated by a dApp OAuth client (e.g. Narval).
        • txChannel object
          Immutable DeFi / marketplace channel classification (DEFI-300).
          txChannel object
          • clientId string
            OAuth dApp client id (Narval).
          • connector string enum
            External entry connector (narval, walletconnect). Omitted for internal BitGo flows.
            narvalwalletconnect
          • defiAction string enum
            approvedepositwithdraw
          • protocol string enum
            DeFi protocol (morpho, aave, concrete).
            morphoaaveconcrete
          • source string enum required
            internalexternal
          • type string enum required
            defi
          • vaultId string
          • walletConnectRequestId string
            defi-service walletconnect_requests.id when supplied on the intent.
      • txRequestId string uuid required
        The ID of the transaction request
      • verificationItems array of strings
      • verificationRuleId string
        The ID of the verification rule
      • videoApprovers array of strings
      • walletRebalanceEventId string
        The ID of the wallet rebalance event
    • policyRuleRequest object
      policyRuleRequest object
      • action string
        The action of the policy rule request
      • update object
        The update details of the policy rule request (single-wallet)
        update object
        • action object
          The action of the policy rule
          action object
          • type string enum required
            The type of the action
            denygetApprovalgetEnterpriseUserApprovalgetUserRoleApprovalgetAnyApprovalgetFinalApprovalgetVideoApprovalgetIdVerificationverifyWalletRebalancegetCustodianApprovalgetCustodialSignaturetriggerWebhookNotificationperformLivenessVerificationrecommendBackingWalletRoutinggetManualTrustReviewgetManualSupportReviewgetSupportManagerApprovalgetVideoApprovalFromSupport
          • userIds array of strings
        • coin string
          A cryptocurrency symbol or token ticker symbol
        • condition object
          The condition of the policy rule

          ONE OF

          • add string
          • remove string
          • metaData map of objects
            metaData object
            • <key> map of objects
              value object
              • <key> object
        • generatePolicy boolean
          Should generate new whitelist policy when generatePolicy is undefined *
        • id string
          The ID of the policy rule
        • lockDate string date
        • type string enum
          The type of the API rule
          advancedWhitelistcoinAddressWhitelistcoinAddressBlacklist
        • walletId string
          Optional walletId field for multi-wallet updates
      • updates array of objects
        updates object
        • action object
          The action of the policy rule
          action object
          • type string enum required
            The type of the action
            denygetApprovalgetEnterpriseUserApprovalgetUserRoleApprovalgetAnyApprovalgetFinalApprovalgetVideoApprovalgetIdVerificationverifyWalletRebalancegetCustodianApprovalgetCustodialSignaturetriggerWebhookNotificationperformLivenessVerificationrecommendBackingWalletRoutinggetManualTrustReviewgetManualSupportReviewgetSupportManagerApprovalgetVideoApprovalFromSupport
          • userIds array of strings
        • coin string
          A cryptocurrency symbol or token ticker symbol
        • condition object
          The condition of the policy rule

          ONE OF

          • add string
          • remove string
          • metaData map of objects
            metaData object
            • <key> map of objects
              value object
              • <key> object
        • generatePolicy boolean
          Should generate new whitelist policy when generatePolicy is undefined *
        • id string
          The ID of the policy rule
        • lockDate string date
        • type string enum
          The type of the API rule
          advancedWhitelistcoinAddressWhitelistcoinAddressBlacklist
        • walletId string
          Optional walletId field for multi-wallet updates
    • updateApprovalsRequiredRequest object
      updateApprovalsRequiredRequest object
      • requestedApprovalsRequired number
        The number of requested approvals required
    • updateEnterpriseRequest object
      updateEnterpriseRequest object
      • action string enum
        addupdateremove
      • email string
        The email of the user
      • isVideoIdUser boolean
        Indicates if the user is a video ID user
      • permissions string enum
        The permissions associated with the update
        adminauditorwallet.create
      • userId string
        The ID of the user
    • updateOrganizationRequest object
      updateOrganizationRequest object
      • action string enum
        addupdateremove
      • email string
        The email of the user
      • inviterInfo object
        CaaS org add-invite only (POST /api/v2/organization/{orgId}/user); UMS org user changes use genericRequest.
        inviterInfo object
        • email string required
        • fullName string required
        • id string required
      • role string enum
        The role of the user in the organization
        serviceUseradminmembercustomer
      • userId string
        The ID of the user
    • genericRequest object
      genericRequest object
      • anchors array of objects
        anchors object
        • anchorType string enum required
          The type of the anchor
          policyRuleIdsettlementIdcrossChainRecoveryId
        • key string required
          The key of the anchor
        • value string required
          The value of the anchor
      • changeType string enum
        The type of change requested
        createupdatedeleteunlockbulkUnlockbulkArchiveduplicate
      • currentId string
        The current ID associated with the request
      • description string
        The description of the request
      • metadata map of objects
        The metadata of the request
        metadata object
        • <key> string or number or boolean or array of strings
      • proposedId string
        The proposed ID associated with the request
      • resources array of objects
        resources object
        • currentId string
        • metadata map of objects
          metadata object
          • <key> string or number or boolean or array of strings
        • proposedId string
      • resourceType string
        The resource type of the request
    • enterpriseInviteRequest object
      enterpriseInviteRequest object
      • action string enum
        addupdateremove
      • email string
        The email of the user
      • enterpriseInfo object
        Additional info used by the client accepting the invite
        enterpriseInfo object
        • id string required
        • invitedBy object required
          Inviter snapshot on CaaS org add-invite inviterInfo and enterprise invite invitedBy. Not used for UMS genericRequest.
          invitedBy object
          • id string required
          • email string required
          • fullName string required
        • name string required
        • requiredVerificationStep string required
        • userKycState string
      • isVideoIdUser boolean
        Indicates if the user is a video ID user
      • permissions string enum
        The permissions associated with the invite
        adminauditorwallet.create
      • userId string
        The ID of the user
    • updateWalletSettingRequest object
      updateWalletSettingRequest object
      • userKeySigningRequired object
        userKeySigningRequired object
        • newValue boolean required
        • oldValue boolean required
    • updateWalletTagsRequest object
      updateWalletTagsRequest object
      • action string enum required
        Whether to add or remove the specified tags
        addremove
      • customTags array of strings required
  • state string required
    The state of the pending approval

    ONE OF

    string enum

  • scope string enum required
    What kind of entity the Pending Approval is tied to
    enterprisewalletorganizationglobal
  • userIds array of strings
  • approvalsRequired number

    >= 1

  • walletLabel string
    Label for the wallet
  • addressLabels array of objects
    addressLabels object
    • address string required

      up to 250 characters

    • label string required
      The label
    • walletLabel string
      The wallet label
  • resolvers array of objects
    resolvers object
    • autoApproved boolean
      Whether the resolution was auto approved
    • date string date-time
      The date of resolution
    • resolutionAction string enum
      Action taken during resolution
      approverejectskipfail
    • resolutionMemo string
      Memo regarding the resolution
    • resolutionType string enum required
      The type of resolution
      pendingawaitingSignaturependingFinalApprovalpendingCustodianApprovalpendingVideoApprovalpendingIdVerificationpendingLivenessVerificationpendingManualTrustReviewpendingManualSupportReviewpendingVideoApprovalFromSupport
    • user string
      The user who resolved the approval
    • videoApprover string
      The approver of the video resolution
    • videoException string
      Exception details for the video
    • videoLink string
      Link to the resolution video
  • approvers array of strings
  • singleRunResults array of objects
    singleRunResults object
    • ruleId string
      The rule ID
    • triggered boolean
      Whether the rule was triggered
  • txRequestId string uuid
    Transaction request ID
  • videoId object
    ID for the video related to the approval
    videoId object
    • date string date-time
      The date of the video ID
    • user string
      The user associated with the video ID
    • videoApprover string
      The approver of the video
    • videoException string
      The exception related to the video
    • videoLink string
      The link to the video
  • version number
    Version of the pending approval
  • policyEvaluationId string
    ID for the policy evaluation
  • actions array of objects
    actions object
    • approvers array of strings
    • excludedApprovers array of strings
    • id string required
      The ID of the action
    • name string required
      The name of the action
    • operator string enum
      The operator of the action
      ANDOR
    • parameters object required
      The parameters of the action
      parameters object
      • minRequired string or number
      • userIds array of strings
      • initiatorIsAllowedToApprove boolean
      • webhookURL string

        at least 1 characters

      • livenessCheckUser string enum
        transactionInitiatorwalletAdminsvideoIdUsersenterpriseAdmin
      • isFallback boolean
      • walletSubtype string enum
        custodialColdcustodialHotlightningCustody
      • userRoleIds array of strings
    • resolvers array of objects
      resolvers object
      • autoApproved boolean
        Whether the resolution was auto approved
      • date string date-time
        The date of resolution
      • resolutionAction string enum
        Action taken during resolution
        approverejectskipfail
      • resolutionMemo string
        Memo regarding the resolution
      • resolutionType string enum required
        The type of resolution
        pendingawaitingSignaturependingFinalApprovalpendingCustodianApprovalpendingVideoApprovalpendingIdVerificationpendingLivenessVerificationpendingManualTrustReviewpendingManualSupportReviewpendingVideoApprovalFromSupport
      • user string
        The user who resolved the approval
      • videoApprover string
        The approver of the video resolution
      • videoException string
        Exception details for the video
      • videoLink string
        Link to the resolution video
    • status string enum required
      The status of the action
      SKIPPEDPENDINGNOT_NEEDEDCOMPLETECANCELLEDFAILEDAUTO_CANCELLED
  • resolutionOrder array of objects
    resolutionOrder object
    • actions array of strings required
  • useLegacyPolicyEngine boolean
    Flag to use legacy policy engine
  • videoCallId string
    ID for the video call
  • lastUpdated string date-time
    The last date the approval was processing
  • freeze object
    The freeze state
    freeze object
    • actions array of objects
      actions object
      • reason string
      • state string enum
        frozenunFrozen
      • time string date-time
      • userId string
      • username string
    • state string enum
      frozenunFrozen
  • memo array of objects
    memo object
    • text string required
      The text of the memo
    • time string date-time required
      The time the memo was created
    • userId string required
      The user ID of the admin who created the memo
    • username string required
      The username of the admin who created the memo
  • associatedInquiries array of objects
    associatedInquiries object
    • inquiryId string required
    • inquiryStatus string enum required
      completedfailed
    • inquirySubType string enum required
      withdrawalLivenessCheckmanagePolicyLivenessCheckgovIdSelfie
    • inquiryType string enum required
      livenessCheck
  • securityControlEvents array of objects
    securityControlEvents object
    • control string
      The security control that was evaluated
    • date string date-time required
      The date the event was recorded
    • ip string
      The IP address of the user
    • message string
      Message from the security control
    • result string enum required
      Whether the user was allowed or blocked
      allowedblocked
    • user string required
      The user who triggered the security control check
400
Bad Request

Response Body

ONE OF

  • name string
    Error code
  • context map of objects required
    Properties that apply to a specific error name
    context object
    • <key> object
  • error string required
    Human-readable error message
  • requestId string required
    Client request id
423
Locked

Response Body

object

  • error string required
    Human-readable error message
  • requestId string required
    Client request id