REST APIWallet & TransactWallet

GET

Lists all child wallets derived from an EVM keyring parent wallet. This endpoint accepts either a parent wallet ID or a child wallet ID:

  • If given a parent wallet ID (wallet with isParent=true), returns all child wallets
  • If given a child wallet ID (wallet with evmKeyRingReferenceWalletId), returns all sibling child wallets that share the same parent

Child wallets are identified by having the evmKeyRingReferenceWalletId field set to the parent wallet's ID. Child wallets can be on different chains (e.g., BSC, Polygon, Arbitrum) but share the same key material from the parent wallet.

Returns wallets with the same structure as the normal list wallet API, including:

  • Balance information (balance, confirmedBalance, spendableBalance)
  • Token balances for all tokens on each chain
  • Staking balances (if includeStakingBalances is set)
  • Receive addresses (unless skipReceiveAddress is set)
  • Policy information (if expandPolicy is set)
  • All other wallet properties

Path Params

  • walletId string required
    The wallet ID - can be either a parent wallet ID or a child wallet ID

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

Query Params

  • id array of strings
    Filter by ID
  • coin array of strings
    Filter by coin
  • enterprise array of strings
    Filter by enterprise.
  • type array of strings
    Filter by wallet type
  • subType array of strings
    Filter by wallet sub-type
  • deleted boolean
    Filter by deleted state
  • prevId string
    Return the next batch of results, based on the "nextBatchPrevId" value from the previous batch.

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

  • labelContains string
    Filter by label substring.
  • expandBalance boolean
    Add "balanceString", "confirmedBalanceString" and "spendableBalanceString" to each wallet

    Defaults to false

  • excludeSpendableBalance boolean
  • expandPolicy boolean
  • expandCustodialWallet boolean
    Whether linked custodial wallets should be expanded inline
  • ignoreErrors boolean
  • includeStakingBalances boolean
    Include stakingBalanceString and rewardBalanceString properties for each staking wallet. Requires expandBalance to be set to true.

    Defaults to false

  • limit string number
    Maximum number of results to return. If the result set is truncated, use the "nextBatchPrevId" value to get the next batch.

    Defaults to 25

  • offset string number
    Number of documents to skip for offset-based pagination.

    Defaults to 0

  • skipReceiveAddress boolean
    Do not add "receiveAddress" to each wallet

    Defaults to false

  • permission string enum
    Return only wallets for which the user has the given permission
    adminviewspend
  • pinnedWallets string enum
    Return only pinned wallets ("pinnedOnly") or only unpinned wallets ("pinnedExcluded"), exclude to return both
    pinnedOnlypinnedExcluded
  • bitgoOrg string enum
    Return only wallets belong to the BitGo trust org
    BitGo TrustBitGo New YorkBitGo GermanyBitGo SwitzerlandBitGo Europe ApSFrankfurt DE TrustBitGo SingaporeBitGo KoreaBitGo Custody MENA FZEBitGo IndiaBitGo Sister Trust 1
  • skipUnsupportedCoins boolean
    Skip unsupported coins instead of returning an error

    Defaults to false

  • customTags array of strings
    Filter wallets by applied tags (OR semantics). Provide one or more tag values; returns wallets that match any of the supplied tags. Tag matching is case-insensitive — ?customTags=Warm matches stored "warm".
  • frozen boolean

    Filter derived wallets by freeze status.

    • true: Return only frozen wallets (freeze.expires >= current time)
    • false: Return only non-frozen wallets (no freeze or freeze expired) If not specified, returns all derived wallets regardless of freeze status.
  • hasSendManyTokens boolean
    When true, return only derived wallets that have at least one token in the sendManyTokens array on at least one chain (includes both pending and active token states). When false or not specified, returns all derived wallets.
  • coinContains string
    Filter by coin or display name (case-insensitive substring). E.g. "bsc", "Polygon", "Arbitrum".
  • sendManyTokenContains string
    Filter to wallets that have a sendMany token matching this string (case-insensitive). E.g. "usdc", "busd", "link".

Responses

200
OK

Response Body

object

  • coin array of strings or string
  • wallets array of objects required
    wallets object
    • allowBackupKeySigning boolean required
    • approvalsRequired number required

      >= 1

    • coin string required
      A cryptocurrency symbol or token ticker symbol
    • coinSpecific object required

      ONE OF

      • rootAddress string required
      • addressCount string required
      • pendingChainInitialization boolean required
      • rewardAddress string required
      • lastChainIndex map of numbers
        lastChainIndex object
        • <key> number
    • deleted boolean required
    • disableTransactionNotifications boolean required
    • hasLargeNumberOfAddresses boolean nullable required
    • id string required

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

    • isCold boolean required
    • label string required
    • startDate string date-time required
      Wallet creation time
    • admin object
      admin object
      • policy object
        policy object
        • date string date-time required
        • id string required

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

        • latest boolean required
        • version number required
        • enterpriseId string
        • label string
        • rules array of objects
          rules object
          • id string required
          • type string enum required
            advancedWhitelistcoinAddressWhitelistcoinAddressBlacklist
          • action object required
            What happens when this rule is triggered
            action object
            • type string enum required
              The type of the action
              denygetApprovalgetEnterpriseUserApprovalgetUserRoleApprovalgetAnyApprovalgetFinalApprovalgetVideoApprovalgetIdVerificationverifyWalletRebalancegetCustodianApprovalgetCustodialSignaturetriggerWebhookNotificationperformLivenessVerificationrecommendBackingWalletRoutinggetManualTrustReviewgetManualSupportReviewgetSupportManagerApprovalgetVideoApprovalFromSupport
            • userIds array of strings
          • latest boolean
          • version number
          • lockDate string date-time
            The time at which this rule becomes immutable
          • mutabilityConstraint string enum
            Specifies whether a BitGo admin can change "lockDate" * "managed" - Not locked, but requires approval from a BitGo admin to change * "permanent" - "lockDate" cannot be changed * "sticky" - Not included in bulk unlock, but "lockDate" can be individually changed
            permanentmanaged
          • coin string
            A cryptocurrency symbol or token ticker symbol
          • condition object
            Parameters for the type

            ONE OF

          • walletId string
            The ID of the wallet this rule originates from. Populated only when the rule is returned as part of an EVM keyring aggregated response (includeEvmKeyringWhitelist=true) for rules that belong to a derived wallet. Absent for rules on the main wallet itself.
        • walletId string

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

    • billingEnterprise string
    • buildDefaults object
      buildDefaults object
      • minFeeRate number
        (UTXO only) Wallet-level minimum fee rate that must be greater than or equal to the default of 1000 satoshis/kvByte. Per transaction, you can override "minFeeRate" with the "feeRate" parameter.

        >= 1000

      • maxFeeRate number
      • feeMultiplier number nullable
      • changeAddressType string nullable
      • autoReserveUnspentsOnBuildMins number nullable
    • clientFlags array of objects
      clientFlags object
      • name string
      • value boolean
    • config object
      config object
      • nodeId object
    • custodialWalletId string

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

    • customChangeKeySignatures object
      customChangeKeySignatures object
      • user string
      • backup string
      • bitgo string
    • customerWalletId string
    • enterprise string

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

    • evmKeyRingReferenceWalletId string
      Reference wallet ID for EVM keyring wallets (child wallets only)

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

    • isParent boolean
      Indicates if this wallet is a parent wallet in an EVM keyring setup
    • enabledChildChains array of strings
    • archivedChildChains array of strings
    • organization string
    • bitgoOrg string
    • freeze object
      freeze object
      • time string date-time
      • expires string date-time
      • reason string enum
        Why a wallet was frozen
        TxIntentMismatchTxIntentMismatchRecipientTxIntentMismatchContractTxIntentMismatchApprovalUserRequestAdminRequest
      • referenceId string
        An optional reference ID for tracking purposes
      • adminOrUserId string
        The user who froze the wallet (could be a regular user or an admin)
    • instantProvider string
    • keys array of strings
    • keySignatures object
      keySignatures object
      • backupPub string
      • bitgoPub string
    • m number
      Number of signatures required. This value must be 2 for hot wallets, 1 for ofc wallets, and not specified for custodial wallets.
    • migratedFrom string
    • multisigType string enum
      onchaintss
    • multisigTypeVersion string enum
      MPCv2
    • n number
      Number of keys provided. This value must be 3 for hot wallets, 1 for ofc wallets, and not specified for custodial wallets.
    • recoverable boolean
    • tags array of strings
    • type string enum
      The type describes who owns the keys to the wallet and how they are stored. "cold" wallets are wallets where the private key of the user key is stored exclusively outside of BitGo's system. "custodial" means that this wallet is a cold wallet where BitGo owns the keys. Only customers of the BitGo Trust can create this kind of wallet. "custodialPaired" means that this is a hot wallet that is owned by the customer but it will be linked to a cold (custodial) wallet where BitGo owns the keys. This option is only available to customers of BitGo Inc. BitGo stores an encrypted private key for the user key of "hot" wallets. "trading" wallets are trading accounts where the coin is "ofc". "distributedCustody" means You manage one key and another key agent manages the second key. BitGo manages the third key
      backingcoldcustodialcustodialPairedhotadvancedtrading
    • subType string enum
      distributedCustodypairedCustodialcustodialHotcustodialColdlightningCustodylightningSelfCustodyonPrem
    • balanceString string
      The cleared balance of the address in base units (e.g. Satoshis). Guaranteed to not lose precision. The is only returned if the expandBalance query parameter is set to true.
    • balance number
      The cleared balance of the address in base units (e.g. Satoshis). The is only returned if the expandBalance query parameter is set to true.
    • confirmedBalanceString string
      The total balance of confirmed transactions in base units (e.g. Satoshis). The is only returned if the expandBalance query parameter is set to true. Guaranteed to not lose precision.
    • confirmedBalance number
      The total balance of confirmed transactions in base units (e.g. Satoshis). The is only returned if the expandBalance query parameter is set to true.
    • spendableBalanceString string
      The total balance in base units (e.g. Satoshis) which may be used as inputs for creating new transactions in string representation. Guaranteed to not lose precision. The is only returned if the expandBalance query parameter is set to true.
    • spendableBalance number
      The total balance in base units (e.g. Satoshis) which may be used as inputs for creating new transactions in string representation. The is only returned if the expandBalance query parameter is set to true.
    • stakingBalanceString string
      The staked balance in base units. Guaranteed to not lose precision. The is only returned if the includeStakingBalances query parameter is set to true.
    • rewardBalanceString string
      The staking reward balance in base units. Guaranteed to not lose precision. The is only returned if the includeStakingBalances query parameter is set to true.
    • withdrawHoldAmountUsdString string
      Total USD value (in cents) of active ACH-deposit related withdraw holds on this wallet. Only present for OFC wallets when allTokens=true is passed.
    • offchain object
      Lightning Balances
      offchain object
      • inboundBalance string required
        Inbound balance in millisatoshis (remote balance)
      • inboundPendingBalance string required
        Pending inbound balance in millisatoshis (pending open remote balance)
      • inboundUnsettledBalance string required
        Unsettled inbound balance in millisatoshis (unsettled remote balance)
      • outboundBalance string required
        Outbound balance in millisatoshis (local balance)
      • outboundPendingBalance string required
        Pending outbound balance in millisatoshis (pending open local balance)
      • outboundUnsettledBalance string required
        Unsettled outbound balance in millisatoshis (unsettled local balance)
      • outboundLockedBalance string required
        Locked (from pending force closed channels) outbound balance in millisatoshis (locked local balance)
      • outboundReservedBalance string required
        Total outbound reserved balance in millisatoshis (reserved local balance)
      • outboundSpendableBalance string required
        Total outbound spendable balance in millisatoshis (spendable local balance)
    • users array of objects
      users object
      • needsRecovery boolean
      • permissions array of string enums required
        adminspendviewfreezetradedapp
      • recoverable boolean
      • user string
    • walletFlags array of objects
      walletFlags object
      • name string enum required
        isStakinglightningambossLightningmusigKptrackingInscriptionsrbfcoldWalletStakingtokenizationTokenoneClickStakingsolOfcStakingsuiOfcStakingenableWalletConnectenableSolCustomTxenableAptCustomTx
      • value string required
    • receiveAddress object
      receiveAddress object
      • coin string required
        A cryptocurrency symbol or token ticker symbol
      • wallet string required
      • chain number enum required
        011011202130314041
      • index number required
      • id string
        Platform public ID for an address

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

      • address string

        up to 250 characters

      • balance object
        balance object
        • balanceString string required
          String representation of the balance. Guaranteed to not lose precision.
        • confirmedBalanceString string required
          The total balance of confirmed transactions for the address (in the chain's base unit). Guaranteed to not lose precision.
        • spendableBalanceString string required
          The 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.
        • updated string
          The last time a transaction affected the balance of this address
        • balance number
        • lockedBalanceString string
        • reservedBalanceString string
        • totalReceived number
          The total amount received on this address (in the chain's base unit)
        • totalSent number
          The total amount sent from this address (in the chain's base unit)
        • transferCount number
        • tokens map of objects
          tokens object
          • <key> object
        • nfts map of objects
          nfts object
          • <key> object
        • unsupportedNfts map of objects
          unsupportedNfts object
          • <key> object
        • type object
        • metadata object
      • coinSpecific object
        Properties specific to certain coin types

        ONE OF

        • rootAddress string required
        • trustedTokens array of objects
          trustedTokens object
          • state string enum
            pendingactive
          • limit string
          • token string
        • addressVersion number
        • threshold number
        • bitgoKey object
        • bitgoPubKey string
      • label string
        A human-readable label for the address

        up to 250 characters

      • lastNonce number

        Defaults to -1

      • token string
      • proof string
      • signature string
      • lastConsolidatedTime string date
      • needsConsolidation boolean
      • tokenConsolidationState object
      • tokenAddress object
    • customTags array of strings
  • nextBatchPrevId string uuid
    When a result set is truncated, this field returns the id of the last object in the previous batch. To get the next batch of results, pass this value via the "prevId" query parameter.
  • totalCount number
400
Bad Request

Response Body

object

  • 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
404
Not Found

Response Body

object

  • 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