---
updatedAt: 2026-05-07T12:29:32.000Z
agentTools:
  projectIndex: https://docs.utila.io/llms.txt
---

# QueryWalletAddressBalances

Retrieve a list of all asset balances in a wallet address. Can be used also to retrieve assets across all wallet adresses of a wallet as per
[AIP-159](https://google.aip.dev/159) by using '-' (the hyphen or dash character) as a wildcard character instead of wallet address ID in the parent.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Utila API",
    "version": "v2"
  },
  "tags": [
    {
      "name": "Balances"
    }
  ],
  "paths": {
    "/v2/vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}:queryBalances": {
      "post": {
        "summary": "QueryWalletAddressBalances",
        "description": "Retrieve a list of all asset balances in a wallet address. Can be used also to retrieve assets across all wallet adresses of a wallet as per\n[AIP-159](https://google.aip.dev/159) by using '-' (the hyphen or dash character) as a wildcard character instead of wallet address ID in the parent.",
        "operationId": "Balances_QueryWalletAddressBalances",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v2QueryWalletAddressBalancesResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "vault_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "wallet_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BalancesQueryWalletAddressBalancesBody"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Balances"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "https://api.utila.io"
    }
  ],
  "components": {
    "schemas": {
      "AssetTokenInfoStandardEnum": {
        "type": "string",
        "enum": [
          "ERC20",
          "ERC721",
          "ERC1155",
          "TRC20",
          "SPL_TOKEN",
          "SPL_TOKEN_2022",
          "ICS20",
          "JETTON",
          "TIP20"
        ],
        "description": " - ERC20: ERC20 is the most common fungible token standard.\n - ERC721: ERC721 is the most common non-fungible token standard.\n - ERC1155: ERC1155 is a newer token standard that allows for multiple tokens to be\nheld in a single contract.\n - TRC20: TRC20 is the most common tron's fungible token standard.\n - SPL_TOKEN: SPL Token - solana's token standard.\n - SPL_TOKEN_2022: Token2020 - solana's new token extension for spl tokens.\n - ICS20: ICS20 cosmos's token standard.\n - JETTON: JETTON TON's token standard.\n - TIP20: TIP20 is the Tempo blockchain token standard (ERC-20 extension with compliance features)."
      },
      "BTCDetailsAddressFormat": {
        "type": "string",
        "enum": [
          "P2PKH",
          "P2WPKH",
          "P2TR"
        ],
        "description": "Address format for a Bitcoin-based network. Subset of\nWalletAddress.Format restricted to Bitcoin-based values."
      },
      "BTCTransactionUTXOIn": {
        "type": "object",
        "properties": {
          "address": {
            "description": "Input address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "amount": {
            "type": "string",
            "description": "Amount in asset unit (BTC)."
          },
          "signingSession": {
            "type": "string",
            "example": "vaults/2d2e40r3/signingSessions/132e40r3",
            "description": "The signing session which was used to sign the input. Available when the transaction has been prepared for signing / signed.\n\nDeprecated: Use request.signing_sessions instead."
          },
          "userSelected": {
            "type": "boolean",
            "description": "Whether this input was explicitly selected by the user.\nWhen false, the input was automatically chosen by the coin-selection algorithm."
          }
        }
      },
      "BTCTransactionUTXOOut": {
        "type": "object",
        "properties": {
          "address": {
            "description": "Output address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "amount": {
            "type": "string",
            "description": "Amount in asset unit (BTC)."
          },
          "change": {
            "type": "boolean",
            "description": "True when this output is the change output."
          },
          "changeUserSelected": {
            "type": "boolean",
            "description": "True when the change address was supplied by the user; false when auto-generated.\nOnly meaningful when `change` is true."
          },
          "vout": {
            "type": "integer",
            "format": "int32",
            "description": "On-chain output index (vout) of this output within the transaction.\n\nTogether with the transaction's chain id, `txid:vout` is the stable,\ncanonical identifier of this output (matching QueryWalletUTXOs). Prefer it\nover the position of this output within `outputs`, which only reflects the\nvault-relevant outputs Utila retains and is not the on-chain index.\n\nSet once the transaction's on-chain identity is known — i.e. its transaction\nid is assigned: for outgoing transactions from the SIGNED state onward, and\nfor incoming deposits once observed on-chain. Omitted for pending,\npre-signing transactions."
          }
        }
      },
      "BalancesQueryWalletAddressBalancesBody": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "description": "Filter results using EBNF syntax.\n\nSupported functions:\n* `asset(asset_name)` (example: `asset(\"assets/native.ethereum-mainnet\")`)\n* `network(network_name)` (example: `network(\"networks/ethereum-mainnet\")`)\n* `wallet_external()` (example: `wallet_external()`)"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32",
            "description": "The maximum number of items to return. The service may return fewer than this value."
          },
          "pageToken": {
            "type": "string",
            "description": "A page token, received from the previous list call as `nextPageToken`."
          },
          "includeReferencedResources": {
            "type": "boolean",
            "description": "Include referenced resources in the response."
          }
        }
      },
      "DecodedCallArg": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "title": "The name of the argument, for example: \"dest\""
          },
          "type": {
            "type": "string",
            "title": "The type of the argument, for example: \"AccountId\""
          },
          "value": {
            "type": "string",
            "title": "The value of the argument as a hex encoded byte array, for example: \"0x1234\""
          }
        }
      },
      "StellarTransactionDecodedOperationBody": {
        "type": "object",
        "properties": {
          "payment": {
            "$ref": "#/components/schemas/StellarTransactionDecodedOperationBodyPayment"
          },
          "createAccount": {
            "$ref": "#/components/schemas/StellarTransactionDecodedOperationBodyCreateAccount"
          },
          "changeTrust": {
            "$ref": "#/components/schemas/StellarTransactionDecodedOperationBodyChangeTrust"
          },
          "sep41Payment": {
            "$ref": "#/components/schemas/StellarTransactionDecodedOperationBodySEP41Payment"
          },
          "sep41TokenApproval": {
            "$ref": "#/components/schemas/StellarTransactionDecodedOperationBodySEP41TokenApproval"
          }
        }
      },
      "StellarTransactionDecodedOperationBodyChangeTrust": {
        "type": "object",
        "properties": {
          "asset": {
            "type": "string",
            "description": "The asset of the change trust.\n\nExample: `assets/asset.stellar-mainnet.USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`."
          },
          "assetRef": {
            "type": "string",
            "description": "A weak reference to the asset. The reference is not guaranteed to be valid.\n\nExample: `assets/asset.stellar-mainnet.USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`."
          },
          "limit": {
            "type": "string",
            "description": "The limit of the change trust.\nFor unlimited amount, this field will be empty.\n\nExample: `10000000` (1 XLM in stroops)."
          },
          "unlimited": {
            "type": "boolean",
            "description": "Whether the limit is considered by utila as unlimited."
          }
        }
      },
      "StellarTransactionDecodedOperationBodyCreateAccount": {
        "type": "object",
        "properties": {
          "destinationAddress": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "startingBalance": {
            "type": "string"
          }
        }
      },
      "StellarTransactionDecodedOperationBodyPayment": {
        "type": "object",
        "properties": {
          "destinationAddress": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "asset": {
            "type": "string",
            "description": "The asset of the payment.\n\nExample: `USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`."
          },
          "assetRef": {
            "type": "string",
            "description": "A weak reference to the asset. The reference is not guaranteed to be valid.\n\nExample: `assets/asset.stellar-mainnet.USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`."
          },
          "amount": {
            "type": "string",
            "description": "The amount of the payment.\n\nExample: `10000000` (1 XLM in stroops)."
          }
        }
      },
      "StellarTransactionDecodedOperationBodySEP41Payment": {
        "type": "object",
        "properties": {
          "spenderAddress": {
            "description": "The address that authorized the transfer by consuming its allowance.\nOnly set when the underlying SEP41 function is `transfer_from`; unset\nfor a plain `transfer` (where the source address authorizes the\ntransfer itself).",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "sourceAddress": {
            "title": "The source of funds for the transfer. This address that authorized the\nin case of a `transfer` call (i.e. the spender_address is empty)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "destinationAddress": {
            "description": "The destination of funds for the transfer.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "contractAddress": {
            "type": "string",
            "description": "Example: `CB3WFHO46J3WGRAIARNT3XD4Z7NR5SZDNG3SVKN27GOTJAQGQFAH2KAJ`.",
            "title": "The soroban contract address of the transferred token"
          },
          "assetRef": {
            "type": "string",
            "description": "A weak reference to the asset. The reference is not guaranteed to be valid.\n\nExample: `assets/asset.stellar-mainnet.CB3WFHO46J3WGRAIARNT3XD4Z7NR5SZDNG3SVKN27GOTJAQGQFAH2KAJ`."
          },
          "rawAmount": {
            "type": "string",
            "description": "The raw amount (without decimals) of the payment.\n\nExample: `10000000`."
          }
        }
      },
      "StellarTransactionDecodedOperationBodySEP41TokenApproval": {
        "type": "object",
        "properties": {
          "sourceAddress": {
            "description": "The address holding the balance the allowance is drawn from (the\nSEP41 `from` argument).",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "spenderAddress": {
            "description": "The address being authorized to spend the tokens held by\n`source_address`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "contractAddress": {
            "type": "string",
            "description": "The token whose allowance is being set.\n\nExample: `CB3WFHO46J3WGRAIARNT3XD4Z7NR5SZDNG3SVKN27GOTJAQGQFAH2KAJ`."
          },
          "assetRef": {
            "type": "string",
            "description": "A weak reference to the asset. The reference is not guaranteed to be valid.\n\nExample: `assets/asset.stellar-mainnet.CB3WFHO46J3WGRAIARNT3XD4Z7NR5SZDNG3SVKN27GOTJAQGQFAH2KAJ`."
          },
          "rawAmount": {
            "type": "string",
            "description": "The allowance raw amount (without decimals) made available to the spender.\n\nExample: `10000000`."
          },
          "liveUntilLedgerNumber": {
            "type": "string",
            "format": "int64",
            "description": "The ledger number where this allowance expires."
          }
        }
      },
      "StellarTransactionStellarOperation": {
        "type": "object",
        "properties": {
          "sourceAccountAddress": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "rawBody": {
            "type": "string",
            "format": "byte"
          },
          "decodedBody": {
            "$ref": "#/components/schemas/StellarTransactionDecodedOperationBody"
          }
        }
      },
      "SubstrateTransactionDecodedCall": {
        "type": "object",
        "properties": {
          "pallet": {
            "type": "string",
            "title": "The pallet to be called, for example: \"Balances\""
          },
          "palletIndex": {
            "type": "integer",
            "format": "int32",
            "title": "The index of the pallet, for example: 2"
          },
          "method": {
            "type": "string",
            "title": "The method to be called, for example: \"transfer_allow_death\""
          },
          "methodIndex": {
            "type": "integer",
            "format": "int32",
            "title": "The index of the method, for example: 4"
          },
          "args": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DecodedCallArg"
            },
            "title": "The arguments of the call"
          }
        }
      },
      "ThetaTransactionCoins": {
        "type": "object",
        "properties": {
          "thetaWei": {
            "type": "string",
            "description": "The amount of THETA in wei."
          },
          "tfuelWei": {
            "type": "string",
            "description": "The amount of TFUEL in wei."
          }
        },
        "description": "Represents the amount of THETA and TFUEL coins in wei units."
      },
      "ThetaTransactionSendTransaction": {
        "type": "object",
        "properties": {
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ThetaTransactionTxInput"
            },
            "description": "The transaction inputs that provide the coins to be transferred."
          },
          "outputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ThetaTransactionTxOutput"
            },
            "description": "The transaction outputs that receive the transferred coins."
          },
          "fee": {
            "description": "The transaction fee in THETA and TFUEL coins.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ThetaTransactionCoins"
              }
            ]
          }
        },
        "description": "Represents a Theta send transaction with inputs, outputs, and fee."
      },
      "ThetaTransactionTxInput": {
        "type": "object",
        "properties": {
          "address": {
            "description": "The address that provides the coins for this input.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "coins": {
            "description": "The amount of THETA and TFUEL coins from this input.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ThetaTransactionCoins"
              }
            ]
          }
        },
        "description": "Represents a transaction input with address and coin amounts."
      },
      "ThetaTransactionTxOutput": {
        "type": "object",
        "properties": {
          "address": {
            "description": "The address that receives the coins for this output.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "coins": {
            "description": "The amount of THETA and TFUEL coins to this output.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ThetaTransactionCoins"
              }
            ]
          }
        },
        "description": "Represents a transaction output with address and coin amounts."
      },
      "TransactionAMLDetails": {
        "type": "object",
        "properties": {
          "screeningState": {
            "$ref": "#/components/schemas/v2ScreeningStateEnum"
          },
          "screeningPolicyResult": {
            "description": "Relevant only if the transaction was screened by an AML provider (i.e., screening_state is READY).",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2AMLActionEnum"
              }
            ]
          },
          "resolved": {
            "type": "boolean",
            "description": "Relevant only if transaction assets were freezed by an AML provider. (i.e., screening_policy_result is DENY)."
          }
        }
      },
      "TransactionAleoOperation": {
        "type": "object",
        "properties": {
          "program": {
            "type": "string",
            "description": "e.g. \"credits.aleo\", \"usad_stablecoin.aleo\".\nThis also identifies the asset being operated on in this transition."
          },
          "function": {
            "type": "string",
            "description": "e.g. \"transfer_private\", \"join\"."
          },
          "asset": {
            "type": "string",
            "description": "The asset identifier for this transition (derived from program_id)."
          },
          "internal": {
            "type": "boolean",
            "description": "True for child transitions generated by internal program calls\n(e.g. credits.aleo/join called inside autojoin_credits_15_16.aleo/join_16)."
          },
          "transferPublic": {
            "$ref": "#/components/schemas/TransactionTransferPublic"
          },
          "transferPublicAsSigner": {
            "$ref": "#/components/schemas/TransactionTransferPublicAsSigner"
          },
          "transferPrivate": {
            "$ref": "#/components/schemas/TransactionTransferPrivate"
          },
          "transferPrivateToPublic": {
            "$ref": "#/components/schemas/TransactionTransferPrivateToPublic"
          },
          "transferPublicToPrivate": {
            "$ref": "#/components/schemas/TransactionTransferPublicToPrivate"
          },
          "join": {
            "$ref": "#/components/schemas/TransactionJoinOperation"
          },
          "unknown": {
            "$ref": "#/components/schemas/TransactionUnknownOperation"
          }
        },
        "description": "AleoOperation represents a single execution transition within a transaction."
      },
      "TransactionAleoRecord": {
        "type": "object",
        "properties": {
          "commitment": {
            "type": "string"
          },
          "amount": {
            "type": "string"
          }
        },
        "description": "A fully decrypted Aleo record.\nAsset is inherited from the parent AleoOperation."
      },
      "TransactionAleoTransaction": {
        "type": "object",
        "properties": {
          "feeMicrocredits": {
            "type": "string",
            "description": "Total fee paid in microcredits."
          },
          "feeOperation": {
            "description": "Optional — absent for fee-exempt transactions\n(single credits.aleo/split or credits.aleo/upgrade).",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionFeePublic"
              }
            ]
          },
          "operations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionAleoOperation"
            },
            "description": "One entry per execution transition (fee transition excluded).\nOrdered as they appear on-chain (root first, then internal children)."
          }
        }
      },
      "TransactionAptosTransaction": {
        "type": "object",
        "properties": {
          "sender": {
            "description": "The source of the transfer. A `0x`-prefixed hex string address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "sequenceNumber": {
            "type": "string",
            "format": "int64"
          },
          "payloadBytes": {
            "type": "string",
            "format": "byte"
          },
          "decodedPayload": {
            "$ref": "#/components/schemas/v2DecodedAptosTransactionPayload"
          },
          "maxGasAmount": {
            "type": "string",
            "format": "int64"
          },
          "gasUnitPrice": {
            "type": "string",
            "format": "int64"
          },
          "expirationTime": {
            "type": "string",
            "format": "date-time",
            "description": "In seconds."
          },
          "chainId": {
            "type": "string",
            "format": "int64"
          }
        }
      },
      "TransactionBTCTransaction": {
        "type": "object",
        "properties": {
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BTCTransactionUTXOIn"
            },
            "description": "Transaction inputs."
          },
          "outputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BTCTransactionUTXOOut"
            },
            "description": "Transaction outputs."
          },
          "fee": {
            "type": "string",
            "description": "Transaction fee in asset unit (BTC)."
          },
          "asset": {
            "type": "string",
            "example": "assets/native.bitcoin-mainnet",
            "description": "Asset name."
          }
        }
      },
      "TransactionEVMMessage": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the message.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionEVMMessageTypeEnum"
              }
            ]
          },
          "message": {
            "type": "string",
            "description": "The payload of the message as a plain UTF-8 string."
          },
          "signature": {
            "type": "string",
            "format": "byte",
            "description": "ECDSA signature (65 bytes) of the message."
          }
        }
      },
      "TransactionEVMMessageTypeEnum": {
        "type": "string",
        "enum": [
          "PERSONAL_SIGN",
          "SIGN_TYPED_DATA_V4"
        ],
        "description": "- PERSONAL_SIGN: A simple personal sign message.\n - SIGN_TYPED_DATA_V4: A structured message as defined by EIP-712. See https://eips.ethereum.org/EIPS/eip-712 for more information.",
        "title": "Enum"
      },
      "TransactionFeePublic": {
        "type": "object",
        "properties": {
          "amountMicrocredits": {
            "type": "string"
          },
          "priorityFeeMicrocredits": {
            "type": "string"
          },
          "payer": {
            "$ref": "#/components/schemas/apiv2Address"
          }
        },
        "description": "Public fee transition details."
      },
      "TransactionJoinOperation": {
        "type": "object",
        "properties": {
          "owner": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionAleoRecord"
            }
          },
          "outputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionAleoRecord"
            }
          }
        },
        "description": "credits.aleo/join — multiple records merged into one or more outputs."
      },
      "TransactionRequestDappInfo": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The URL of the dApp."
          }
        },
        "description": "Details of the dApp - reported from the transaction initiator, as this cannot be validated by Utila."
      },
      "TransactionRequestOriginEnum": {
        "type": "string",
        "enum": [
          "WALLET_CONNECT",
          "EXTENSION"
        ],
        "description": " - WALLET_CONNECT: Transaction received via WalletConnect connection.\n - EXTENSION: Transaction received via Extension - can not be validated by Utila."
      },
      "TransactionStellarTransactionStellarTimeBounds": {
        "type": "object",
        "properties": {
          "minUnixTime": {
            "type": "string",
            "format": "int64"
          },
          "maxUnixTime": {
            "type": "string",
            "format": "int64"
          }
        }
      },
      "TransactionSubstrateTransaction": {
        "type": "object",
        "properties": {
          "fromAddress": {
            "description": "The source of the transfer. A `0x`-prefixed hex string address.\nThe extrinsic dispatcher's address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "nonce": {
            "type": "string",
            "format": "int64",
            "description": "The nonce of the transaction."
          },
          "encodedCall": {
            "type": "string",
            "title": "The hex encoded call"
          },
          "call": {
            "title": "The decoded representation of the call to be made",
            "allOf": [
              {
                "$ref": "#/components/schemas/SubstrateTransactionDecodedCall"
              }
            ]
          },
          "genesisHash": {
            "type": "string",
            "title": "The hex encoded genesis hash of the chain"
          }
        }
      },
      "TransactionSuiTransaction": {
        "type": "object",
        "properties": {
          "sender": {
            "description": "The source of the transfer. A `0x`-prefixed hex string address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "gasBudget": {
            "type": "string"
          },
          "gasPrice": {
            "type": "string"
          },
          "expirationEpoch": {
            "type": "string"
          },
          "txBcsBytes": {
            "type": "string",
            "format": "byte"
          },
          "decodedTransaction": {
            "type": "string",
            "readOnly": true
          }
        }
      },
      "TransactionThetaTransaction": {
        "type": "object",
        "properties": {
          "sendTransaction": {
            "description": "A send transaction that transfers THETA and TFUEL coins between addresses.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ThetaTransactionSendTransaction"
              }
            ]
          }
        },
        "description": "For Theta transaction: Low level transaction details."
      },
      "TransactionTokenAllowance": {
        "type": "object",
        "properties": {
          "approverAddress": {
            "description": "The address of the approver.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "spenderAddress": {
            "description": "The address of the spender.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "asset": {
            "type": "string",
            "example": "assets/native.ethereum-mainnet",
            "description": "The asset to approve."
          },
          "amount": {
            "type": "string",
            "description": "The amount to approve (allowance) in asset units.\n\nExample: `1.1`."
          },
          "miningPrice": {
            "description": "The price of the asset at the time of the mining.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2ConvertedValue"
              }
            ]
          }
        }
      },
      "TransactionTonTransaction": {
        "type": "object",
        "properties": {
          "sender": {
            "description": "Ths source address of the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "seqno": {
            "type": "string",
            "format": "int64",
            "description": "The sequence number of the transaction."
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionTonTransactionMessage"
            },
            "title": "The messages posted to the blockchain"
          },
          "memo": {
            "type": "string",
            "description": "The memo of the transaction."
          },
          "validUntil": {
            "type": "string",
            "format": "int64",
            "description": "The time the transaction is valid until."
          },
          "amount": {
            "type": "string",
            "description": "The native amount passed to the transaction."
          }
        }
      },
      "TransactionTonTransactionMessage": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "The destination of the call."
          },
          "amount": {
            "type": "string",
            "description": "Native Nanoton amount to send."
          },
          "payload": {
            "type": "string",
            "title": "The payload of the message.\nIf not provided - This means this message is a contract deployment or a native transfer"
          },
          "stateInit": {
            "type": "string",
            "description": "The initial state of the message."
          }
        },
        "required": [
          "address",
          "amount"
        ]
      },
      "TransactionTransfer": {
        "type": "object",
        "properties": {
          "sourceAddress": {
            "description": "Transfer source address. Not populated for BTC transactions.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "destinationAddress": {
            "description": "Transfer destination address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "amount": {
            "type": "string",
            "description": "Amount of the transfer."
          },
          "asset": {
            "type": "string",
            "example": "assets/native.ethereum-mainnet",
            "description": "Asset name."
          },
          "miningPrice": {
            "description": "The price of the asset at the time of the mining.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2ConvertedValue"
              }
            ]
          },
          "note": {
            "type": "string",
            "description": "An optional note to attach to the specific transfer (possible for batch transfers)."
          }
        }
      },
      "TransactionTransferPrivate": {
        "type": "object",
        "properties": {
          "sender": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "recipient": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "sentAmount": {
            "type": "string",
            "description": "Amount received by the recipient."
          },
          "changeAmount": {
            "type": "string",
            "description": "Remainder returned to the sender."
          }
        }
      },
      "TransactionTransferPrivateToPublic": {
        "type": "object",
        "properties": {
          "sender": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "recipient": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "sentAmount": {
            "type": "string",
            "description": "Amount credited to the recipient's public account."
          },
          "changeAmount": {
            "type": "string",
            "description": "Remainder returned to the sender as a record."
          }
        }
      },
      "TransactionTransferPublic": {
        "type": "object",
        "properties": {
          "sender": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "recipient": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "amount": {
            "type": "string"
          }
        }
      },
      "TransactionTransferPublicAsSigner": {
        "type": "object",
        "properties": {
          "signer": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "recipient": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "amount": {
            "type": "string"
          }
        }
      },
      "TransactionTransferPublicToPrivate": {
        "type": "object",
        "properties": {
          "sender": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "recipient": {
            "$ref": "#/components/schemas/apiv2Address"
          },
          "amount": {
            "type": "string"
          }
        }
      },
      "TransactionTransitionValue": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "\"record\", \"public\", \"private\", or \"future\"."
          },
          "value": {
            "type": "string",
            "description": "Plaintext value (decrypted if private)."
          }
        }
      },
      "TransactionUnknownOperation": {
        "type": "object",
        "properties": {
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionTransitionValue"
            }
          },
          "outputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionTransitionValue"
            }
          }
        },
        "description": "Catch-all for custom / third-party programs."
      },
      "TransactionXRPLTransaction": {
        "type": "object",
        "properties": {
          "jsonTransactionData": {
            "type": "object",
            "readOnly": true
          }
        }
      },
      "TronTransactionTransferContract": {
        "type": "object",
        "properties": {
          "ownerAddress": {
            "description": "The source of the transaction.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "toAddress": {
            "description": "The recipient address.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "amount": {
            "type": "string",
            "example": "1500000",
            "description": "Amount of TRX to transfer, in SUN (1 TRX = 1,000,000 SUN).\n\nExample: `1500000`."
          }
        }
      },
      "VerificationContextValidationEnum": {
        "type": "string",
        "enum": [
          "UNKNOWN",
          "VALID",
          "INVALID"
        ]
      },
      "WalletAddressFormat": {
        "type": "string",
        "enum": [
          "BITCOIN_P2PKH",
          "BITCOIN_P2WPKH",
          "EVM",
          "TRON_BASE58",
          "BASE58",
          "TON_NON_BOUNCEABLE",
          "SUBSTRATE_58",
          "BITCOIN_P2TR"
        ],
        "description": " - BITCOIN_P2PKH: Bitcoin P2PKH address format.\n - BITCOIN_P2WPKH: Bitcoin P2WPKH address format.\n - EVM: Ethereum address format.\n - TRON_BASE58: Tron base58 address format.\n - BASE58: Solana address format.\n - TON_NON_BOUNCEABLE: Ton address format.\n - SUBSTRATE_58: Substrate address format.\n - BITCOIN_P2TR: Bitcoin P2TR (Taproot, BIP-341) address format."
      },
      "WalletCreateParamsBTCDetailsBTCNetworkDetails": {
        "type": "object",
        "properties": {
          "network": {
            "type": "string",
            "example": "networks/bitcoin-mainnet",
            "description": "The Bitcoin-based network. Must be one of the wallet's `networks`.\n\nFormat: `networks/{network_id}`"
          },
          "format": {
            "example": "P2TR",
            "description": "Address format for the new wallet on this network.\n\nPer-chain support:\n\n| Chain    | Supported    | Default |\n|----------|--------------|---------|\n| Bitcoin  | P2WPKH, P2TR | P2WPKH  |\n| Litecoin | P2WPKH       | P2WPKH  |\n| Dogecoin | P2PKH        | P2PKH   |",
            "allOf": [
              {
                "$ref": "#/components/schemas/BTCDetailsAddressFormat"
              }
            ]
          }
        },
        "description": "Creation parameters for a single Bitcoin-based network in the wallet.",
        "required": [
          "network",
          "format"
        ]
      },
      "WalletSolanaDetails": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "The address of the wallet.",
            "readOnly": true
          }
        }
      },
      "WalletTronDetails": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "The address of the wallet.",
            "readOnly": true
          }
        }
      },
      "WalletXRPLDetails": {
        "type": "object",
        "properties": {
          "signingPubKey": {
            "type": "string",
            "example": "ED5F5AC8B98974A3CA843326D9B88CEBD0560177B973EE0B149F782CFAA06DC66A",
            "description": "The public key of the wallet, hex-encoded as expected by XRPL.\n\nFor ed25519 keys this starts with `ED`.",
            "readOnly": true
          }
        }
      },
      "WalletconnectSessionPeer": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
            "description": "The URI of the peer."
          },
          "name": {
            "type": "string",
            "description": "The name of the peer."
          },
          "description": {
            "type": "string",
            "description": "The description of the peer."
          },
          "icon": {
            "type": "string",
            "description": "The icon of the peer."
          }
        }
      },
      "WalletconnectSessionVerificationContext": {
        "type": "object",
        "properties": {
          "origin": {
            "type": "string",
            "description": "The verified origin of the WalletConnect request."
          },
          "validation": {
            "description": "Whether the peer's verified origin is valid, invalid, or unknown.",
            "allOf": [
              {
                "$ref": "#/components/schemas/VerificationContextValidationEnum"
              }
            ]
          },
          "verifyUrl": {
            "type": "string",
            "description": "The WalletConnect Verify server URL that produced the validation."
          }
        }
      },
      "apiUserRoleEnum": {
        "type": "string",
        "enum": [
          "ADMIN",
          "SIGNER",
          "VIEWER",
          "OWNER",
          "NON_SIGNING_OPERATOR",
          "NON_SIGNING_ADMIN"
        ]
      },
      "apiUserStatusEnum": {
        "type": "string",
        "enum": [
          "PENDING",
          "ACTIVE"
        ]
      },
      "apiUserTypeEnum": {
        "type": "string",
        "enum": [
          "USER_ACCOUNT",
          "SERVICE_ACCOUNT"
        ]
      },
      "apiv2Address": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "The actual address."
          },
          "infoRef": {
            "type": "string",
            "description": "If it's an address in the vault (e.g., a wallet address), a reference to address information will be listed here.\nAddress information can be fetched from `ReferencedAddressesInfo` map with the reference as the key.\n\nWill be populated only if `includeReferencedResources` is set to `true`."
          },
          "private": {
            "type": "boolean",
            "description": "True when the address is redacted because it belongs to a private Aleo record.\nWhen set, `value` is empty.",
            "readOnly": true
          }
        }
      },
      "apiv2VaultContext": {
        "type": "object",
        "properties": {
          "vaultId": {
            "type": "string",
            "readOnly": true
          },
          "role": {
            "title": "The user's role in this vault",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/apiUserRoleEnum"
              }
            ]
          },
          "status": {
            "title": "The user's status in this vault",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/apiUserStatusEnum"
              }
            ]
          }
        }
      },
      "googlerpcStatus": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "The status code, which should be an enum value of\n[google.rpc.Code][google.rpc.Code]."
          },
          "message": {
            "type": "string",
            "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\n[google.rpc.Status.details][google.rpc.Status.details] field, or localized\nby the client."
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/protobufAny"
            },
            "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use."
          }
        },
        "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors)."
      },
      "protobufAny": {
        "type": "object",
        "properties": {
          "@type": {
            "type": "string",
            "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."
          }
        },
        "additionalProperties": {},
        "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"
      },
      "v2AMLActionEnum": {
        "type": "string",
        "enum": [
          "DENY",
          "ALLOW",
          "ALERT"
        ]
      },
      "v2AddressBookEntry": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "vaults/1b25635a5b3f/addressBookEntries/95257c5a522f",
            "description": "The resource name of the address book entry.\n\nFormat: `vaults/{vault_id}/addressBookEntries/{entry_id}`",
            "readOnly": true
          },
          "address": {
            "type": "string",
            "example": "0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6",
            "description": "The blockchain address."
          },
          "displayName": {
            "type": "string",
            "example": "My DeFi Wallet",
            "description": "A human-readable name for the address."
          },
          "network": {
            "type": "string",
            "example": "networks/ethereum-mainnet",
            "description": "The resource name of the network this address belongs to.\n\nFormat: `networks/{network_id}`"
          },
          "note": {
            "type": "string",
            "example": "This is my main trading wallet",
            "description": "Optional note attached to the address."
          },
          "createTime": {
            "type": "string",
            "format": "date-time",
            "example": "2023-01-15T10:30:00Z",
            "description": "Output only. Creation time.",
            "readOnly": true
          },
          "tracked": {
            "type": "boolean",
            "description": "If true, assets of this address should be tracked by Utila."
          },
          "associatedExternalWallet": {
            "type": "string",
            "example": "vaults/1b25635a5b3f/wallets/95257c5a522f",
            "description": "The wallet that is associated with this address.\nOnly set if `tracked` is true.\n\nFormat: `vaults/{vault_id}/wallets/{wallet_id}`",
            "readOnly": true
          },
          "creator": {
            "type": "string",
            "example": "users/1b25635a5b3f/users/95257c5a522f",
            "description": "Output only. The user who issued the address book entry creation.\n\nFormat: `users/{user_id}`",
            "readOnly": true
          },
          "signed": {
            "type": "boolean",
            "description": "Output only.\nWhether the address book entry is cryptographically signed after going through the quorum approval process.",
            "readOnly": true
          }
        },
        "description": "An address book entry.",
        "required": [
          "address",
          "displayName"
        ]
      },
      "v2Asset": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The resource name of the asset.\n\nFormat: `assets/{asset_id}`"
          },
          "displayName": {
            "type": "string",
            "description": "The display name of the asset.\n\nExample: \"Bitcoin\""
          },
          "network": {
            "type": "string",
            "example": "networks/ethereum-mainnet",
            "description": "The resource name of the network.\n\nFormat: `networks/{network_id}`."
          },
          "type": {
            "description": "The type of the asset.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2AssetTypeEnum"
              }
            ]
          },
          "symbol": {
            "type": "string",
            "description": "The symbol of the asset.\n\nShould not be trusted as this is the contract advertised symbol for non-native\nassets."
          },
          "decimals": {
            "type": "integer",
            "format": "int32",
            "description": "The decimals of the asset."
          },
          "convertedValue": {
            "description": "The converted value of the asset.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2ConvertedValue"
              }
            ]
          },
          "tokenInfo": {
            "description": "The token info of the asset.\n\nOnly present if the asset is a token.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2AssetTokenInfo"
              }
            ]
          }
        }
      },
      "v2AssetTokenInfo": {
        "type": "object",
        "properties": {
          "contractAddress": {
            "type": "string",
            "description": "The contract address of the token."
          },
          "standard": {
            "description": "The token standard.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AssetTokenInfoStandardEnum"
              }
            ]
          },
          "denom": {
            "type": "string",
            "description": "The denom of the token on cosmos ecosystem."
          },
          "cantonTokenDetails": {
            "title": "Canton token details",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2CantonTokenDetails"
              }
            ]
          },
          "tip20Currency": {
            "type": "string",
            "description": "ISO 4217 currency code for TIP-20 tokens (e.g. \"USD\", \"EUR\"). Empty for other standards."
          },
          "suiTokenDetails": {
            "description": "Sui token details. Present only for gasless-eligible Sui assets.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2SuiTokenDetails"
              }
            ]
          }
        }
      },
      "v2AssetTypeEnum": {
        "type": "string",
        "enum": [
          "NATIVE_CURRENCY",
          "TOKEN"
        ],
        "description": "The type of the asset.\n\n - NATIVE_CURRENCY: The asset is a native currency.\n - TOKEN: The asset is a token."
      },
      "v2CantonTokenDetails": {
        "type": "object",
        "properties": {
          "instrumentId": {
            "type": "string",
            "description": "The instrument ID."
          },
          "instrumentAdmin": {
            "type": "string",
            "description": "The instrument admin."
          },
          "supportsTransferPreapproval": {
            "type": "boolean",
            "description": "Whether Utila supports creating a standing transfer pre-approval for this asset."
          }
        }
      },
      "v2ConvertedValue": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "description": "The amount in USD.",
            "readOnly": true
          },
          "currencyCode": {
            "type": "string",
            "description": "The currency code of the amount. Always USD.",
            "readOnly": true
          }
        },
        "description": "A message representing a converted value."
      },
      "v2DecodedAptosEntryFunction": {
        "type": "object",
        "properties": {
          "function": {
            "type": "string"
          },
          "typeArguments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "arguments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "function",
          "typeArguments",
          "arguments"
        ]
      },
      "v2DecodedAptosTransactionPayload": {
        "type": "object",
        "properties": {
          "entryFunction": {
            "$ref": "#/components/schemas/v2DecodedAptosEntryFunction"
          }
        }
      },
      "v2EVMTransactionGas": {
        "type": "object",
        "properties": {
          "gasLimit": {
            "type": "string",
            "format": "int64",
            "description": "The amount of gas to use for the transaction."
          },
          "gasUsed": {
            "type": "string",
            "description": "The amount of gas used by the transaction."
          },
          "gasPrice": {
            "type": "string",
            "description": "A `0x`-prefixed hex string representing the gas price of the transaction.\n\nUsed for legacy transactions (non EIP-1559)."
          },
          "maxPriorityFeePerGas": {
            "type": "string",
            "description": "A `0x`-prefixed hex string representing the maximum prioriy fee per gas unit the transaction can pay.\n\nUsed for dynamic transactions (EIP-1559)."
          },
          "maxFeePerGas": {
            "type": "string",
            "description": "A `0x`-prefixed hex string representing the maximum fee per gas unit the transaction can pay.\n\nUsed for dynamic transactions (EIP-1559)."
          }
        }
      },
      "v2LinkAddress": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "title": "Blockchain address for this destination",
            "readOnly": true
          },
          "network": {
            "type": "string",
            "title": "Blockchain network for this destination",
            "readOnly": true
          },
          "connectionId": {
            "type": "string",
            "title": "Connection ID for this destination",
            "readOnly": true
          },
          "verificationStatus": {
            "title": "Verification status of this destination",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2VerificationStatusEnum"
              }
            ]
          },
          "signature": {
            "title": "Signature of the destination",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2SignedData"
              }
            ]
          },
          "createTime": {
            "type": "string",
            "format": "date-time",
            "title": "Time when this destination was created",
            "readOnly": true
          },
          "updateTime": {
            "type": "string",
            "format": "date-time",
            "title": "Time when this destination was last updated",
            "readOnly": true
          },
          "archiveTime": {
            "type": "string",
            "format": "date-time",
            "title": "Time when this destination was archived",
            "readOnly": true
          },
          "connectionDisplayName": {
            "type": "string",
            "readOnly": true
          },
          "targetProfileDisplayName": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The resource name of the Link connection.\n\nFormat: `vaults/{vault}/linkConnections/{link_connection}/addresses/{link_address}`",
            "readOnly": true
          }
        },
        "title": "A link address within a Link connection"
      },
      "v2QueryWalletAddressBalancesResponse": {
        "type": "object",
        "properties": {
          "walletAddressBalances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v2WalletAddressBalance"
            },
            "description": "The balances returned."
          },
          "nextPageToken": {
            "type": "string",
            "description": "A token, which can be sent as `pageToken` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages."
          },
          "totalSize": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of items in the response, regardless of pagination."
          },
          "referencedResources": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/v2ReferencedResource"
            },
            "description": "A mapping of the referenced resources in the message.\nThe key is the resource name and the value is the corresponding resource.\n\nThis field is only populated if the `includeReferencedResources` field is set to `true`."
          }
        }
      },
      "v2ReferencedResource": {
        "type": "object",
        "properties": {
          "asset": {
            "description": "The asset resource.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2Asset"
              }
            ]
          },
          "wallet": {
            "description": "The wallet resource.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2Wallet"
              }
            ]
          },
          "walletAddress": {
            "description": "The wallet address resource.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletAddress"
              }
            ]
          },
          "user": {
            "description": "The user resource.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2User"
              }
            ]
          },
          "walletconnectSession": {
            "description": "The wallet connect session resource.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletconnectSession"
              }
            ]
          },
          "addressBookEntry": {
            "description": "The addressbook entry resource.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2AddressBookEntry"
              }
            ]
          },
          "transaction": {
            "description": "the transaction entry resource.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2Transaction"
              }
            ]
          },
          "linkAddress": {
            "description": "The link address resource.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2LinkAddress"
              }
            ]
          }
        }
      },
      "v2ScreeningStateEnum": {
        "type": "string",
        "enum": [
          "SKIPPED",
          "PENDING",
          "FAILED",
          "READY"
        ],
        "description": "The state of the AML report.\n\n - SKIPPED: No AML report was requested for the transaction.\n - PENDING: The AML report is still being processed by the provider.\n - FAILED: The AML report was not generated due to an error.\n - READY: The AML report was successfully generated."
      },
      "v2SignedData": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the encoded data.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2SignedDataTypeEnum"
              }
            ]
          },
          "data": {
            "type": "string",
            "format": "byte",
            "description": "The encoded data.",
            "readOnly": true
          },
          "signature": {
            "type": "string",
            "format": "byte",
            "description": "The signature on the encoded data.",
            "readOnly": true
          }
        },
        "title": "SignedData represents data that has been cryptographically signed"
      },
      "v2SignedDataTypeEnum": {
        "type": "string",
        "enum": [
          "JSON_V1",
          "LEGACY",
          "MERKLE_ROOT",
          "COINCOVER_V1",
          "STATION70_V1"
        ],
        "title": "- COINCOVER_V1: Coincover signature format\n - STATION70_V1: Station70 signature format"
      },
      "v2StellarMemo": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the memo.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2StellarMemoMemoTypeEnum"
              }
            ]
          },
          "data": {
            "type": "string",
            "description": "The data of the memo."
          }
        },
        "required": [
          "type",
          "data"
        ]
      },
      "v2StellarMemoMemoTypeEnum": {
        "type": "string",
        "enum": [
          "TEXT",
          "ID",
          "HASH",
          "RETURN"
        ],
        "description": " - TEXT: A text memo. Limited to 28 bytes.\n - ID: A id memo. An unsigned 64-bit integer.\n - HASH: A hash memo. A hex string of the hash with a `0x` prefix.\n - RETURN: A return memo. A hex string of the return hash with a `0x` prefix."
      },
      "v2SuiTokenDetails": {
        "type": "object",
        "properties": {
          "gasless": {
            "type": "boolean"
          }
        }
      },
      "v2Transaction": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "vaults/1b25635a5b3f/transactions/95257c5a522f",
            "description": "The resource name of the transaction.\n\nFormat: `vaults/{vault_id}/transactions/{transaction_id}`.",
            "readOnly": true
          },
          "type": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionTypeEnum"
              }
            ]
          },
          "subType": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionSubTypeEnum"
              }
            ]
          },
          "state": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionStateEnum"
              }
            ]
          },
          "error": {
            "description": "The latest error for this transaction, if any.\n\nWhich error is surfaced depends on the transaction's current state.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/googlerpcStatus"
              }
            ]
          },
          "direction": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionDirectionEnum"
              }
            ]
          },
          "note": {
            "type": "string",
            "description": "A note to attach to the transaction.\n\nThis note is visible to all vault members."
          },
          "network": {
            "type": "string",
            "example": "networks/ethereum-mainnet",
            "description": "The blockchain network on which the transaction was sent.\n\nNot available for connection transactions (e.g., Exchanges)\n\nFormat: `networks/{network_id}`"
          },
          "hash": {
            "type": "string",
            "description": "For on-chain transactions, the hash of the transaction."
          },
          "blockNumber": {
            "type": "string",
            "description": "For on-chain transactions, the block number of the transaction if it was mined."
          },
          "signingSession": {
            "type": "string",
            "example": "vaults/2d2e40r3/signingSessions/132e40r3",
            "description": "Available when the transaction has been prepared for signing / signed."
          },
          "request": {
            "description": "The request details of the transaction. Relevant only for transactions initiated through Utila.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionRequest"
              }
            ]
          },
          "amlDetails": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionAMLDetails"
              }
            ]
          },
          "transfers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionTransfer"
            },
            "description": "If there one or more transfers in the transaction, they will be listed here."
          },
          "tokenAllowances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionTokenAllowance"
            },
            "description": "If there one or more token allowances in the transaction, they will be listed here."
          },
          "designatedSigners": {
            "type": "array",
            "example": [
              "users/name@example.com"
            ],
            "items": {
              "type": "string"
            },
            "description": "If the transaction is designated to be signed by a specific signer, this field should be set.\n\nFormat: `users/{email}` or `users/{id}`\n\nExample: `[\"users/name@example.com\"]` or `[\"users/a3e4f5\"]`"
          },
          "allowedSigners": {
            "type": "array",
            "example": [
              "users/name@example.com"
            ],
            "items": {
              "type": "string"
            },
            "description": "The policy-derived users who are allowed to sign the transaction.\n\nUnlike `designated_signers`, this field describes signing eligibility.\n\nFormat: `users/{email}` or `users/{id}`",
            "readOnly": true
          },
          "evmTransaction": {
            "description": "For EVM-Compatible transaction: Low level transaction details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionEVMTransaction"
              }
            ]
          },
          "evmMessage": {
            "description": "If this is an EVM message, the message will be listed here.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionEVMMessage"
              }
            ]
          },
          "tronPersonalSign": {
            "description": "If this is a Tron personal-sign message, the message will be listed here.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionTronPersonalSign"
              }
            ]
          },
          "evmAccountDelegation": {
            "description": "If this is an EVM authorization, the authorization will be listed here.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionEVMAccountDelegation"
              }
            ]
          },
          "tronTransaction": {
            "description": "If this is a TVM transaction, the transaction will be listed here.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionTronTransaction"
              }
            ]
          },
          "btcTransaction": {
            "description": "For BTC transaction: Low level transaction details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionBTCTransaction"
              }
            ]
          },
          "btcPsbt": {
            "description": "For BTC PSBT: Details of the PSBT transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionBTCPSBT"
              }
            ]
          },
          "aptosTransaction": {
            "description": "For APTOS transaction: Low level transaction details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionAptosTransaction"
              }
            ]
          },
          "suiTransaction": {
            "description": "For SUI transaction: Low level transaction details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionSuiTransaction"
              }
            ]
          },
          "suiSignPersonalMessage": {
            "description": "Represents a Sui signPersonalMessage message.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionSuiSignPersonalMessage"
              }
            ]
          },
          "xrplTransaction": {
            "description": "For XRPL transaction: Low level transaction details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionXRPLTransaction"
              }
            ]
          },
          "substrateTransaction": {
            "$ref": "#/components/schemas/TransactionSubstrateTransaction"
          },
          "tonTransaction": {
            "description": "For TON transaction: Low level transaction details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionTonTransaction"
              }
            ]
          },
          "tonSignData": {
            "description": "Represents a TON SignData message.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionTonSignData"
              }
            ]
          },
          "tonProof": {
            "description": "Represents a TON Proof message.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionTonProof"
              }
            ]
          },
          "solanaSignMessage": {
            "description": "Represents a Solana signMessage message.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionSolanaSignMessage"
              }
            ]
          },
          "solanaTransaction": {
            "description": "For Solana transaction: Low level transaction details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionSolanaTransaction"
              }
            ]
          },
          "thetaTransaction": {
            "description": "For Theta transaction: Low level transaction details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionThetaTransaction"
              }
            ]
          },
          "stellarTransaction": {
            "description": "Represents a Stellar transaction.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionStellarTransaction"
              }
            ]
          },
          "aleoTransaction": {
            "description": "Represents an Aleo transaction.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionAleoTransaction"
              }
            ]
          },
          "createTime": {
            "type": "string",
            "format": "date-time",
            "description": "The time at which the transaction was created in the system.",
            "readOnly": true
          },
          "mineTime": {
            "type": "string",
            "format": "date-time",
            "description": "The time at which the transaction was mined.",
            "readOnly": true
          },
          "confirmTime": {
            "type": "string",
            "format": "date-time",
            "description": "The time at which the transaction was confirmed.",
            "readOnly": true
          },
          "expireTime": {
            "type": "string",
            "format": "date-time",
            "description": "The time at which the transaction was expired.",
            "readOnly": true
          },
          "spam": {
            "type": "boolean"
          },
          "annotations": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Client-defined key/value metadata attached at initiation via\nInitiateTransactionRequest.annotations.\n\nStored but never interpreted by Utila, and visible read-only to every party\nwho can view the transaction. Avoid storing secrets or sensitive data here.",
            "readOnly": true
          },
          "replacementTransaction": {
            "type": "string",
            "description": "If the current transaction is dropped, the transaction that replaced it will be listed here.",
            "readOnly": true
          }
        }
      },
      "v2TransactionBTCPSBT": {
        "type": "object",
        "properties": {
          "signedPsbt": {
            "type": "string",
            "format": "byte",
            "description": "The signed PSBT data, encoded in base64 format per BIP-174.\n\nOnly populated after the transaction reaches the SIGNED state.\nContains partial signatures that the dApp can use to finalize and broadcast."
          },
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BTCTransactionUTXOIn"
            },
            "description": "The PSBT inputs (for display in approval UI).\n\nReuses the existing BTCTransaction.UTXOIn type for consistency."
          },
          "outputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BTCTransactionUTXOOut"
            },
            "description": "The PSBT outputs (for display in approval UI).\n\nReuses the existing BTCTransaction.UTXOOut type for consistency."
          },
          "fee": {
            "type": "string",
            "description": "The transaction fee in BTC.\n\nCalculated from: sum(inputs) - sum(outputs)."
          }
        },
        "description": "Details of a signed PSBT (Partially Signed Bitcoin Transaction).\n\nReturned when a PSBT signing request reaches the SIGNED state.\nThe signed PSBT can be used by the dApp to finalize and broadcast."
      },
      "v2TransactionDirectionEnum": {
        "type": "string",
        "enum": [
          "INCOMING",
          "OUTGOING"
        ]
      },
      "v2TransactionEVMAccountDelegation": {
        "type": "object",
        "properties": {
          "signerAddress": {
            "description": "The address of the signer.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "contractAddress": {
            "description": "The address of the contract the account is delegating to.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "chainId": {
            "type": "string",
            "description": "The chain ID of the DELEGATION."
          },
          "nonce": {
            "type": "string",
            "format": "int64",
            "description": "The nonce of the account for the delegation."
          },
          "signature": {
            "type": "string",
            "format": "byte",
            "description": "ECDSA signature (65 bytes) of the delegation message."
          },
          "offsetNonce": {
            "type": "boolean",
            "description": "Whether the selection nonce strategy is to offset the signer nonce by one.\n\nThis is used usually for self delegation"
          },
          "providedNonce": {
            "type": "string",
            "format": "int64",
            "description": "The nonce provided by the user."
          }
        }
      },
      "v2TransactionEVMTransaction": {
        "type": "object",
        "properties": {
          "fromAddress": {
            "description": "The source of the transfer. A `0x`-prefixed hex string address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "toAddress": {
            "description": "The destination of the transfer. A `0x`-prefixed hex string address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "value": {
            "type": "string",
            "description": "The amount to transfer in wei."
          },
          "data": {
            "type": "string",
            "example": "0xda82fb4c00000a",
            "description": "Hex encoded transaction data.\n\nExample: `0xda82fb4c00000a` or `da82fb4c00000a`."
          },
          "fee": {
            "description": "The fee details of the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2EVMTransactionGas"
              }
            ]
          },
          "authorizationDetails": {
            "description": "EIP-7702 Authorization details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionEVMTransactionAuthorizationDetails"
              }
            ]
          },
          "signature": {
            "type": "string",
            "format": "byte",
            "description": "ECDSA signature (65 bytes) of the transaction.\n\nAvailable when the transaction has been signed.\n\nEncoded in standard EVM format:\n  - Bytes [0-31]: R component (32 bytes, big-endian)\n  - Bytes [32-63]: S component (32 bytes, big-endian)\n  - Byte [64]: V component (recovery identifier)",
            "readOnly": true
          },
          "providedNonce": {
            "type": "string",
            "description": "The nonce value explicitly provided by the user in the transaction request.",
            "readOnly": true
          },
          "nonce": {
            "type": "string",
            "description": "The effective nonce value assigned to the transaction.",
            "readOnly": true
          },
          "chainId": {
            "type": "string",
            "description": "The EIP-155 chain ID of the network this transaction targets.\n\nDecimal string (e.g. `1`, `11155111`).",
            "readOnly": true
          }
        }
      },
      "v2TransactionEVMTransactionAuthorization": {
        "type": "object",
        "properties": {
          "signer": {
            "description": "The signer address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "contractAddress": {
            "description": "The address of the contract the account is delegating to.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "nonce": {
            "type": "string",
            "format": "int64",
            "description": "The nonce of the account for the delegation."
          },
          "chainId": {
            "type": "string",
            "description": "The chain ID of the delegation."
          },
          "signature": {
            "type": "string",
            "format": "byte",
            "description": "The signature of the delegation."
          }
        }
      },
      "v2TransactionEVMTransactionAuthorizationDetails": {
        "type": "object",
        "properties": {
          "authorizationList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v2TransactionEVMTransactionAuthorization"
            },
            "description": "The list of authorizations."
          }
        }
      },
      "v2TransactionRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "vaults/1b25635a5b3f/transactionRequests/95257c5a522f",
            "description": "The resource name of the transaction request.\n\nFormat: `vaults/{vault_id}/transactionRequests/{transaction_request_id}`.",
            "readOnly": true
          },
          "externalId": {
            "type": "string",
            "description": "A client-provided identifier for the transaction.\n\nUnique per vault. Can be used to correlate the transaction\nwith an entity in an external system.",
            "readOnly": true
          },
          "initiator": {
            "type": "string",
            "example": "users/2d2e40r3",
            "description": "The initiator of the transaction.\n\nFormat: `users/{user}`"
          },
          "sourceWallet": {
            "type": "string",
            "example": "wallets/2d2e40r3",
            "description": "If the transaction was initiated through a wallet, the wallet will be listed here.",
            "x-protoOneof": "source"
          },
          "cancelTime": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the transaction was canceled."
          },
          "signTime": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the transaction was signed."
          },
          "failTime": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the transaction failed."
          },
          "declineTime": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the transaction was declined."
          },
          "publishTime": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the transaction was published."
          },
          "dropTime": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the transaction was dropped."
          },
          "expireTime": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the transaction expires.",
            "readOnly": true
          },
          "approveTime": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the transaction was approved."
          },
          "publish": {
            "type": "boolean",
            "description": "Whether the transaction should be automatically published by utila."
          },
          "signingSessions": {
            "type": "array",
            "example": "vaults/2d2e40r3/signingSessions/132e40r3",
            "items": {
              "type": "string"
            },
            "description": "The signing sessions that were used to sign the transaction."
          },
          "blockingTransaction": {
            "type": "string",
            "description": "A transaction that is blocking this transaction from being signed.\nFor example, a transaction from the same wallet and blockchain that has acquired a nonce but is not yet mined.\n\nIncluded only when `FULL` view is requested.",
            "readOnly": true
          },
          "walletconnectSession": {
            "type": "string",
            "description": "The wallet connect session that was used to sign the transaction.",
            "readOnly": true
          },
          "transactionBundle": {
            "type": "string",
            "description": "The transaction bundle that this transaction belongs to.",
            "readOnly": true
          },
          "evmSubmissionDetails": {
            "type": "string",
            "description": "The EVM submission that this transaction is part of.\n\nA submission groups the transactions that are broadcast together as a single\ngas-abstracted (sponsored) EVM submission — for example the EIP-7702\nauthorization and the user-operation transactions signed by the user. It is\nonly set for transactions that belong to such a submission.\n\nCall `Transactions.GetEVMSubmissionDetails` with this resource name to fetch\nthe full submission details.\n\nFormat: `vaults/{vault_id}/evmSubmissionDetails/{submission_id}`",
            "readOnly": true
          },
          "dappInfo": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionRequestDappInfo"
              }
            ]
          },
          "origin": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionRequestOriginEnum"
              }
            ]
          },
          "gasStationOrder": {
            "type": "string",
            "example": "vaults/1b2563/gasStations/a4b3df/orders/123456",
            "description": "The gas station order created to sponsor this transaction request, if any.\n\nFormat: `vaults/{vault_id}/gasStations/{gas_station_id}/orders/{order_id}`.",
            "readOnly": true
          },
          "gasStation": {
            "type": "string",
            "example": "vaults/1b2563/gasStations/a4b3df",
            "description": "The gas station that sponsors this transaction request, if any.\n\nFormat: `vaults/{vault_id}/gasStations/{gas_station_id}`.",
            "readOnly": true
          },
          "sponsorWallet": {
            "type": "string",
            "example": "vaults/2d2e40r3/wallets/2d2e40r3",
            "description": "The sponsor wallet for sponsored transactions (e.g., EVM, Solana).\nOnly populated when the sponsor is a Utila-managed wallet in the vault.\n\nFormat: `vaults/{vault_id}/wallets/{wallet_id}`",
            "readOnly": true
          }
        }
      },
      "v2TransactionSolanaSignMessage": {
        "type": "object",
        "properties": {
          "signer": {
            "description": "The address of the signer.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "message": {
            "type": "string",
            "format": "byte",
            "description": "The message to sign."
          },
          "signature": {
            "type": "string",
            "description": "The signature of the message."
          }
        }
      },
      "v2TransactionSolanaTransaction": {
        "type": "object",
        "properties": {
          "fee": {
            "type": "string",
            "description": "Transaction fee in lamports."
          },
          "rawTransaction": {
            "type": "string",
            "format": "byte",
            "description": "The full transaction payload, serialized.\n\nThe message and signatures, encoded in base64 format."
          },
          "utilaSigners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/apiv2Address"
            },
            "description": "The utila addresses used to sign the transaction.\n\nMust be the same length as request.signing_sessions."
          },
          "replaceBlockhash": {
            "type": "boolean",
            "description": "Indicates whether the recent blockhash was or will be replaced with the most recent blockhash before signing."
          },
          "memo": {
            "type": "string",
            "description": "The on-chain memo attached to the transfer via the Memo program, if any."
          }
        }
      },
      "v2TransactionStateEnum": {
        "type": "string",
        "enum": [
          "AWAITING_APPROVAL",
          "AWAITING_AML_POLICY_CHECK",
          "DECLINED_BY_AML_POLICY",
          "AWAITING_POLICY_CHECK",
          "AWAITING_SIGNATURE",
          "SIGNED",
          "AWAITING_PUBLISH",
          "PUBLISHED",
          "MINED",
          "MINED_FAILED",
          "FAILED",
          "DECLINED",
          "REPLACED",
          "CANCELED",
          "DROPPED",
          "CONFIRMED",
          "EXPIRED"
        ],
        "description": "The state of the transaction.\n\n - AWAITING_APPROVAL: Transaction requires approving votes.\n - AWAITING_AML_POLICY_CHECK: The transaction is waiting for the AML policy check to be completed.\nRelevant only for outgoing transactions.\n - DECLINED_BY_AML_POLICY: Transaction was declined by the AML policy Relevant only for outgoing transactions.\n - AWAITING_POLICY_CHECK: Transaction is waiting for the policy check to be completed.\n - AWAITING_SIGNATURE: Transaction is approved and ready to be signed.\n - SIGNED: Transaction is signed but not yet published.\n - AWAITING_PUBLISH: Transaction has been sent to the publishing queue.\n - PUBLISHED: Transaction has been published to the blockchain's mem-pool.\n - MINED: Transaction has been included in a block successfully.\n - MINED_FAILED: Transaction has entered a block but in a failed state (e.g. a failed smart contract call).\n - FAILED: Transaction has entered a block but in a failed state and was confirmed as such by multiple blocks\n - DECLINED: Transaction was declined by a policy check.\n - REPLACED: Transaction was replaced by a new transaction (same nonce or RBF).\n - CANCELED: Transaction was canceled by its initiator or by an admin.\n - DROPPED: Transaction was dropped by the network without being included in a block.\n - CONFIRMED: Transaction has been confirmed by multiple blocks in the blockchain.\n - EXPIRED: Transaction was expired after a certain amount of time."
      },
      "v2TransactionStellarTransaction": {
        "type": "object",
        "properties": {
          "sourceAccountAddress": {
            "description": "The source account of the transaction.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "sequenceNumber": {
            "type": "string",
            "description": "The sequence number of the transaction.",
            "readOnly": true
          },
          "fee": {
            "type": "string",
            "format": "int64",
            "description": "The fee paid for the transaction in stroops.",
            "readOnly": true
          },
          "memo": {
            "description": "The memo attached to the transaction.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2StellarMemo"
              }
            ]
          },
          "timeBounds": {
            "description": "The timebounds of the transaction.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionStellarTransactionStellarTimeBounds"
              }
            ]
          },
          "operations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StellarTransactionStellarOperation"
            },
            "description": "The operations in the transaction supported by utila.",
            "readOnly": true
          },
          "rawXdrEnvelope": {
            "type": "string",
            "format": "byte",
            "title": "The raw transaction payload"
          }
        }
      },
      "v2TransactionSubTypeEnum": {
        "type": "string",
        "enum": [
          "NATIVE_TRANSFER",
          "TOKEN_TRANSFER",
          "NON_FUNGIBLE_TOKEN_TRANSFER",
          "TOKEN_APPROVAL",
          "PERSONAL_SIGN",
          "SIGN_TYPED_DATA",
          "EVM_ACCOUNT_DELEGATION",
          "CONTRACT_CALL",
          "NATIVE_MULTI_TRANSFER",
          "NON_FUNGIBLE_TOKEN_APPROVAL",
          "CONNECTION_TRANSFER",
          "BATCH_TRANSFER",
          "TOKEN_MINT",
          "TOKEN_BURN",
          "PROGRAM_CALL",
          "CONTRACT_DEPLOYMENT",
          "TON_PROOF",
          "TON_SIGN_DATA",
          "SOLANA_SIGN_MESSAGE",
          "GENERIC_TRANSACTION",
          "CHANGE_TRUST",
          "CANTON_TOPOLOGY_TRANSACTION",
          "CANTON_TRANSFER_AUTO_APPROVAL",
          "CANTON_ACCEPT_TRANSFER_OFFER",
          "SUBMITTING_TRANSACTION",
          "BTC_PSBT",
          "BTC_TRANSFER",
          "BTC_SIGN_MESSAGE",
          "SHIELD",
          "UNSHIELD",
          "ALEO_CONSOLIDATE"
        ]
      },
      "v2TransactionSuiSignPersonalMessage": {
        "type": "object",
        "properties": {
          "signer": {
            "description": "The address of the signer.",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "message": {
            "type": "string",
            "format": "byte",
            "description": "The message to sign."
          },
          "signature": {
            "type": "string",
            "format": "byte",
            "description": "The signature of the message."
          }
        }
      },
      "v2TransactionTonProof": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "The address of the signer.\nIn Raw address format.\n\nExample: `0:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef`."
          },
          "appDomain": {
            "type": "string",
            "title": "The domain of the app requested the proof"
          },
          "payload": {
            "type": "string",
            "description": "The payload to sign."
          },
          "timestamp": {
            "type": "string",
            "format": "int64",
            "description": "The time at which the signature was created."
          },
          "signature": {
            "type": "string",
            "description": "The signature of the payload."
          }
        }
      },
      "v2TransactionTonSignData": {
        "type": "object",
        "properties": {
          "schemaCrc": {
            "type": "string",
            "format": "int64",
            "description": "Indicates the layout of payload cell that in turn defines domain separation.\nThis is a descriptor of the content of the cell."
          },
          "cell": {
            "type": "string",
            "description": "The payload to sign."
          },
          "publicKey": {
            "type": "string",
            "description": "The public key of the signer."
          },
          "timestamp": {
            "type": "string",
            "format": "int64",
            "description": "The time at which the signature was created."
          },
          "signature": {
            "type": "string",
            "description": "The signature of the typed data."
          }
        }
      },
      "v2TransactionTronPersonalSign": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Best-effort human-readable payload: set only when the signed bytes are\nvalid UTF-8. Empty for binary messages. Use `message_hex` for the exact,\nunambiguous bytes."
          },
          "signature": {
            "type": "string",
            "format": "byte",
            "description": "ECDSA signature (65 bytes) of the message."
          },
          "messageHex": {
            "type": "string",
            "description": "The exact signed payload as a hex string (e.g. \"0xabcd\"). Always set. This\nis authoritative; `message` is only a display convenience and cannot be\nused to recover the bytes unambiguously."
          }
        },
        "description": "A Tron (TIP-191) personal-sign message. Distinct from EVMMessage so a Tron\npersonal sign is not represented as an EVM message."
      },
      "v2TransactionTronTransaction": {
        "type": "object",
        "properties": {
          "triggerSmartContract": {
            "$ref": "#/components/schemas/v2TransactionTronTransactionTriggerSmartContract"
          },
          "freezeBalanceV2": {
            "$ref": "#/components/schemas/v2TransactionTronTransactionFreezeBalanceV2"
          },
          "unfreezeBalanceV2": {
            "$ref": "#/components/schemas/v2TransactionTronTransactionUnfreezeBalanceV2"
          },
          "withdrawExpireUnfreeze": {
            "$ref": "#/components/schemas/v2TransactionTronTransactionWithdrawExpireUnfreeze"
          },
          "delegateResource": {
            "$ref": "#/components/schemas/v2TransactionTronTransactionDelegateResource"
          },
          "undelegateResource": {
            "$ref": "#/components/schemas/v2TransactionTronTransactionUnDelegateResource"
          },
          "cancelAllUnfreezeV2": {
            "$ref": "#/components/schemas/v2TransactionTronTransactionCancelAllUnfreezeV2"
          },
          "voteWitness": {
            "$ref": "#/components/schemas/v2TransactionTronTransactionVoteWitness"
          },
          "withdrawBalance": {
            "$ref": "#/components/schemas/v2TransactionTronTransactionWithdrawBalance"
          },
          "transferContract": {
            "$ref": "#/components/schemas/TronTransactionTransferContract"
          },
          "fee": {
            "description": "The fee details of the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TronTransactionFee"
              }
            ]
          },
          "signature": {
            "type": "string",
            "format": "byte",
            "description": "ECDSA signature (65 bytes) of the transaction.\n\nAvailable when the transaction has been signed.\n\nEncoded in standard TRON format:\n  - Bytes [0-31]: R component (32 bytes, big-endian)\n  - Bytes [32-63]: S component (32 bytes, big-endian)\n  - Byte [64]: V component (recovery identifier)",
            "readOnly": true
          },
          "expireTime": {
            "type": "string",
            "format": "date-time",
            "description": "When the signed transaction expires on the TRON network (raw_data.expiration).\nEmpty until the transaction is prepared for signature, or until raw data\nalready includes expiration (user-supplied raw txs).",
            "readOnly": true
          }
        }
      },
      "v2TransactionTronTransactionCancelAllUnfreezeV2": {
        "type": "object",
        "properties": {
          "ownerAddress": {
            "description": "The source of the transaction.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          }
        }
      },
      "v2TransactionTronTransactionDelegateResource": {
        "type": "object",
        "properties": {
          "ownerAddress": {
            "description": "The source of the transaction.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "resource": {
            "description": "The resource to delegate.\n\nCan be one of the following:\n1. `BANDWIDTH`\n2. `ENERGY`",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionTronTransactionTronResourceEnum"
              }
            ]
          },
          "amount": {
            "type": "string",
            "example": "1500000",
            "description": "The amount of the resource to delegate, in SUN.\n\nExample: `1500000`."
          },
          "asset": {
            "type": "string",
            "example": "assets/native.tron-mainnet",
            "description": "The asset that is being delegated.\n\nExample: `assets/native.tron-mainnet`."
          },
          "receiverAddress": {
            "description": "The address to delegate the resource to.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "lock": {
            "type": "boolean",
            "description": "Whether to lock the delegation.\n\nDefault: false."
          },
          "lockPeriod": {
            "type": "string",
            "description": "The period to lock the delegation, in block numbers, 1 block ≈ 3 seconds.\n\nExample: `1000`."
          }
        }
      },
      "v2TransactionTronTransactionFreezeBalanceV2": {
        "type": "object",
        "properties": {
          "ownerAddress": {
            "description": "The source of the transaction.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "amount": {
            "type": "string",
            "example": "1500000",
            "description": "Amount of TRX to be staked, in SUN.\n\nExample: `1500000`."
          },
          "resource": {
            "description": "The resource to freeze.\n\nCan be one of the following:\n1. `BANDWIDTH`\n2. `ENERGY`",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionTronTransactionTronResourceEnum"
              }
            ]
          },
          "asset": {
            "type": "string",
            "example": "assets/native.tron-mainnet",
            "description": "The asset that is being staked.\n\nExample: `assets/native.tron-mainnet`."
          }
        }
      },
      "v2TransactionTronTransactionTriggerSmartContract": {
        "type": "object",
        "properties": {
          "ownerAddress": {
            "description": "The source of the transaction.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "contractAddress": {
            "description": "The smart contract address.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "callValue": {
            "type": "string",
            "format": "int64",
            "description": "The amount of SUN passed into the contract (1 TRX = 1,000,000 SUN).\n\nExample: `500000`."
          },
          "data": {
            "type": "string",
            "description": "Hex encoded transaction data. This field will be returned only in FULL view.\n\nExample: `0xa9059cbb0000000000000000000000002ed5dd8a98aea00ae32517742ea5289761b2710e0000000000000000000000000000000000000000000000000000000ba43b7400`."
          }
        }
      },
      "v2TransactionTronTransactionTronResourceEnum": {
        "type": "string",
        "enum": [
          "BANDWIDTH",
          "ENERGY"
        ]
      },
      "v2TransactionTronTransactionUnDelegateResource": {
        "type": "object",
        "properties": {
          "ownerAddress": {
            "description": "The source of the transaction.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "resource": {
            "description": "The resource to undelegate.\n\nCan be one of the following:\n1. `BANDWIDTH`\n2. `ENERGY`",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionTronTransactionTronResourceEnum"
              }
            ]
          },
          "amount": {
            "type": "string",
            "example": "1500000",
            "description": "The amount of the delegated resource to undelegate, in SUN.\n\nExample: `1500000`."
          },
          "asset": {
            "type": "string",
            "example": "assets/native.tron-mainnet",
            "description": "The asset that is being undelegated.\n\nExample: `assets/native.tron-mainnet`."
          },
          "receiverAddress": {
            "description": "The address to undelegate the resource from.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          }
        }
      },
      "v2TransactionTronTransactionUnfreezeBalanceV2": {
        "type": "object",
        "properties": {
          "ownerAddress": {
            "description": "The source of the transaction.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "amount": {
            "type": "string",
            "example": "1500000",
            "description": "Amount of TRX to be unstaked, in SUN.\n\nExample: `1500000`."
          },
          "resource": {
            "description": "The resource to unfreeze.\n\nCan be one of the following:\n1. `BANDWIDTH`\n2. `ENERGY`",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TransactionTronTransactionTronResourceEnum"
              }
            ]
          },
          "asset": {
            "type": "string",
            "example": "assets/native.tron-mainnet",
            "description": "The asset that is being unstaked.\n\nExample: `assets/native.tron-mainnet`."
          }
        }
      },
      "v2TransactionTronTransactionVoteWitness": {
        "type": "object",
        "properties": {
          "ownerAddress": {
            "description": "Voter address.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "votes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v2TransactionTronTransactionVoteWitnessVote"
            },
            "description": "The votes to cast. Max 30 votes.\n\nExample: `[{\"vote_address\": \"TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g\", \"vote_count\": \"1000\"}]`"
          }
        },
        "required": [
          "votes"
        ]
      },
      "v2TransactionTronTransactionVoteWitnessVote": {
        "type": "object",
        "properties": {
          "voteAddress": {
            "description": "The address of Super Representatives to vote for.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          },
          "voteCount": {
            "type": "string",
            "description": "Example: `1000`.",
            "title": "Number of votes, (1 vote = 1 staked TRX)"
          }
        }
      },
      "v2TransactionTronTransactionWithdrawBalance": {
        "type": "object",
        "properties": {
          "ownerAddress": {
            "description": "The source of the transaction.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          }
        }
      },
      "v2TransactionTronTransactionWithdrawExpireUnfreeze": {
        "type": "object",
        "properties": {
          "ownerAddress": {
            "description": "The source of the transaction.\n\nA base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2Address"
              }
            ]
          }
        }
      },
      "v2TransactionTypeEnum": {
        "type": "string",
        "enum": [
          "TRANSACTION",
          "MESSAGE"
        ]
      },
      "v2TronAccountActivationFee": {
        "type": "object",
        "properties": {
          "fee": {
            "type": "string",
            "description": "The activation fee in SUN."
          },
          "convertedFee": {
            "description": "The converted (fiat) value of the activation fee.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2ConvertedValue"
              }
            ]
          }
        }
      },
      "v2TronResourceFee": {
        "type": "object",
        "properties": {
          "consumed": {
            "type": "string",
            "description": "The amount of the resource consumed."
          },
          "burned": {
            "type": "string",
            "description": "The amount of TRX burned for this resource."
          },
          "convertedBurned": {
            "description": "The converted (fiat) value of the TRX burned for this resource.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2ConvertedValue"
              }
            ]
          }
        },
        "description": "Resource-level fee breakdown for a Tron resource (bandwidth or energy)."
      },
      "v2TronTransactionFee": {
        "type": "object",
        "properties": {
          "usedSun": {
            "type": "string",
            "description": "The amount of sun used by the transaction."
          },
          "convertedValue": {
            "description": "The converted amount of sun used by the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2ConvertedValue"
              }
            ]
          },
          "bandwidth": {
            "description": "Bandwidth resource fee breakdown.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TronResourceFee"
              }
            ]
          },
          "energy": {
            "description": "Energy resource fee breakdown.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TronResourceFee"
              }
            ]
          },
          "accountActivationFee": {
            "description": "Account activation fee, present when the transaction activates a new account.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2TronAccountActivationFee"
              }
            ]
          }
        }
      },
      "v2User": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "title": "Resource name of the user in the format \"users/{user_id}\"",
            "readOnly": true
          },
          "fullname": {
            "type": "string",
            "title": "The user's full name"
          },
          "email": {
            "type": "string",
            "title": "The user's email address"
          },
          "pictureUri": {
            "type": "string",
            "title": "URL to the user's profile picture"
          },
          "type": {
            "title": "The user's type (regular user or service account)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiUserTypeEnum"
              }
            ]
          },
          "vaultContext": {
            "title": "The user's vault context (if applicable)",
            "allOf": [
              {
                "$ref": "#/components/schemas/apiv2VaultContext"
              }
            ]
          }
        },
        "title": "User resource represents a user in the Utila platform",
        "required": [
          "email"
        ]
      },
      "v2VerificationStatusEnum": {
        "type": "string",
        "enum": [
          "VERIFIED",
          "PENDING"
        ],
        "description": "- VERIFIED: Address is verified\n - PENDING: Address is pending verification",
        "title": "Verification status enum values"
      },
      "v2Wallet": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "vaults/1b25635a5b3f/wallets/95257c5a522f",
            "description": "The resource name of the wallet.\n\nFormat: `vaults/{vault_id}/wallets/{wallet_id}`",
            "readOnly": true
          },
          "displayName": {
            "type": "string",
            "example": "DeFi wallet",
            "description": "A human-readable name.\n\nMust match the regular expression `[a-zA-Z0-9\\.,:\\-'# _$]+$` and be shorter than 100 characters"
          },
          "external": {
            "type": "boolean",
            "description": "Whether this wallet is external.\n\nExternal wallets are wallets that are not managed by Utila.",
            "readOnly": true
          },
          "archived": {
            "type": "boolean",
            "description": "Whether this wallet is archived.",
            "readOnly": true
          },
          "convertedValue": {
            "description": "The converted value of all assets in this Wallet.\nIncluded only when `FULL` view is requested.\n\nNote: this is an estimate, and may be out of date.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2ConvertedValue"
              }
            ]
          },
          "hasFrozenAssets": {
            "type": "boolean",
            "example": true,
            "description": "Some of the assets in this wallet are frozen due to a AML policy.\nIncluded only when `FULL` view is requested.",
            "readOnly": true
          },
          "networks": {
            "type": "array",
            "example": [
              "networks/ethereum-mainnet"
            ],
            "items": {
              "type": "string"
            },
            "description": "The resource names of the networks of the wallet. Can be set during creation and can be added later\nthrough the `CreateWalletAddress` method."
          },
          "evmDetails": {
            "description": "If this wallet contains an EVM network, this field will be populated.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletEVMDetails"
              }
            ]
          },
          "tronDetails": {
            "description": "If this wallet contains a Tron network, this field will be populated.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/WalletTronDetails"
              }
            ]
          },
          "tonDetails": {
            "description": "If this wallet contains a Ton network, this field will be populated.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletTonDetails"
              }
            ]
          },
          "solanaDetails": {
            "description": "If this wallet contains a Solana network, this field will be populated.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/WalletSolanaDetails"
              }
            ]
          },
          "stellarDetails": {
            "description": "If this wallet contains a Stellar network, this field will be populated.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletStellarDetails"
              }
            ]
          },
          "xrplDetails": {
            "description": "If this wallet contains an XRPL network, this field will be populated.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/WalletXRPLDetails"
              }
            ]
          },
          "createParams": {
            "description": "Parameters only used during wallet creation. Not included in responses.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletCreateParams"
              }
            ]
          },
          "btcDetails": {
            "description": "If this wallet contains a Bitcoin network, this field will be populated.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletBTCDetails"
              }
            ]
          }
        },
        "required": [
          "displayName",
          "networks"
        ]
      },
      "v2WalletAddress": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "vaults/1b25635a5b3f/wallets/67af44031584/addresses/519c67ddae33",
            "description": "The resource name of the WalletAddress.\n\nFormat: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`",
            "readOnly": true
          },
          "displayName": {
            "type": "string",
            "example": "Hal's Address 3",
            "description": "A human-readable name.\nRelevant only for deposit addresses.\n\nMust match the regular expression `[a-zA-Z0-9\\.,:\\-'# _$]+$` and be shorter than 100 characters"
          },
          "network": {
            "type": "string",
            "example": "networks/bitcoin-mainnet",
            "description": "The resource name of the network of the address.\n\nFormat: `networks/{network_id}`"
          },
          "address": {
            "type": "string",
            "example": "bc1q04pum57enmfgcu3tu5gwqlmza5n7tchky0gjvu",
            "description": "The blockchain address.",
            "readOnly": true
          },
          "format": {
            "example": "BITCOIN_P2WPKH",
            "description": "Address format.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/WalletAddressFormat"
              }
            ]
          },
          "key": {
            "type": "string",
            "example": "vaults/1b25635a5b3f/keys/95257c5a522f",
            "description": "The resource name of the MPC key this address was derived from.\n\nFormat: `vaults/{vault_id}/keys/{key_id}`",
            "readOnly": true
          },
          "keyDerivationPath": {
            "type": "array",
            "example": [
              44,
              0,
              0,
              0,
              3
            ],
            "items": {
              "type": "string",
              "format": "int64"
            },
            "description": "Derivation path of the address from the MPC key.",
            "readOnly": true
          },
          "type": {
            "example": "DEPOSIT",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletAddressType"
              }
            ]
          },
          "note": {
            "type": "string",
            "example": "This is a note",
            "title": "note"
          },
          "createParams": {
            "description": "Parameters only used during wallet address creation. Not included in\nresponses.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletAddressCreateParams"
              }
            ]
          }
        },
        "required": [
          "network"
        ]
      },
      "v2WalletAddressBalance": {
        "type": "object",
        "properties": {
          "asset": {
            "type": "string",
            "example": "assets/native.ethereum-mainnet",
            "description": "The resource name of the asset.\n\nFormat: `assets/{asset_id}`"
          },
          "walletAddress": {
            "type": "string",
            "example": "vaults/1b25635a5b3f/wallets/203809def2/addresses/519c67ddae33",
            "description": "The resource name of the wallet address.\n\nFormat: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`"
          },
          "value": {
            "type": "string",
            "example": "1.3",
            "description": "The amount of the asset, in decimal form with precision included."
          },
          "rawValue": {
            "type": "string",
            "example": "13000000",
            "description": "The raw amount of the asset that this balance contains.\n\nSpecified in the smallest unit of the Asset."
          },
          "frozenValue": {
            "type": "string",
            "example": "0.3"
          }
        }
      },
      "v2WalletAddressCreateParams": {
        "type": "object",
        "properties": {
          "btcDetails": {
            "description": "Bitcoin-specific creation parameters.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletAddressCreateParamsBTCDetails"
              }
            ]
          }
        },
        "description": "Parameters only used during wallet address creation."
      },
      "v2WalletAddressCreateParamsBTCDetails": {
        "type": "object",
        "properties": {
          "format": {
            "example": "P2TR",
            "description": "Address format for the new address.\n\nOnly valid when the wallet has no address on this network yet (i.e.\nwhen this request adds the network to the wallet); once a wallet has\nan address on a Bitcoin-based network, every further address uses the\nsame format, and a mismatching value is rejected.\n\nPer-chain supported formats and defaults are listed in the create\nparams of `CreateWallet`.\n\nSetting this for a non-Bitcoin-based network is an error.",
            "allOf": [
              {
                "$ref": "#/components/schemas/BTCDetailsAddressFormat"
              }
            ]
          }
        },
        "description": "Bitcoin-specific creation parameters.",
        "required": [
          "format"
        ]
      },
      "v2WalletAddressType": {
        "type": "string",
        "enum": [
          "MAIN",
          "DEPOSIT",
          "CHANGE"
        ],
        "description": " - MAIN: Main address (main address of the wallet).\n - DEPOSIT: Deposit address.\n - CHANGE: Change address."
      },
      "v2WalletBTCDetails": {
        "type": "object",
        "properties": {
          "btcNetworkDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v2WalletBTCDetailsBTCNetworkDetails"
            },
            "readOnly": true
          }
        }
      },
      "v2WalletBTCDetailsBTCNetworkDetails": {
        "type": "object",
        "properties": {
          "network": {
            "type": "string",
            "example": "networks/bitcoin-mainnet",
            "description": "A specific btc network of the wallet.",
            "readOnly": true
          },
          "mainAddress": {
            "type": "string",
            "description": "The main deposit address of the wallet in the network.",
            "readOnly": true
          },
          "xpub": {
            "type": "string",
            "description": "The xpub of the wallet in the network. Included only when `FULL` view is requested.",
            "readOnly": true
          },
          "format": {
            "example": "P2WPKH",
            "description": "Address format of `main_address`.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/BTCDetailsAddressFormat"
              }
            ]
          }
        }
      },
      "v2WalletCreateParams": {
        "type": "object",
        "properties": {
          "walletGroups": {
            "type": "array",
            "example": [
              "vaults/1b25635a5b3f/walletGroups/95257c5a522f"
            ],
            "items": {
              "type": "string"
            },
            "description": "Wallet will be assigned to these wallet groups upon creation.\nEach group must support assignment of empty wallets on creation in the dedicated group setting.\n\nFormat: `vaults/{vault_id}/walletGroups/{wallet_group_id}`."
          },
          "btcDetails": {
            "description": "Bitcoin-specific creation parameters.",
            "allOf": [
              {
                "$ref": "#/components/schemas/v2WalletCreateParamsBTCDetails"
              }
            ]
          }
        },
        "description": "Parameters only used during wallet creation."
      },
      "v2WalletCreateParamsBTCDetails": {
        "type": "object",
        "properties": {
          "btcNetworkDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WalletCreateParamsBTCDetailsBTCNetworkDetails"
            },
            "description": "Per-network format selections. Bitcoin-based networks in the wallet\nthat are not listed here use their default format. Each `network` must\nappear at most once."
          }
        },
        "description": "Bitcoin-specific creation parameters. Ignored on non-Bitcoin wallets."
      },
      "v2WalletEVMDetails": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "The address of the wallet.",
            "readOnly": true
          }
        }
      },
      "v2WalletStellarDetails": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "The address of the wallet.",
            "readOnly": true
          }
        }
      },
      "v2WalletTonDetails": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "The address of the wallet.",
            "readOnly": true
          }
        }
      },
      "v2WalletconnectSession": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "vaults/1b25635a5b3f/walletconnectSessions/123",
            "description": "The resource name of the walletconnect session.\n\nFormat: `vaults/{vault_id}/walletconnectSessions/{walletconnect_session_id}`.",
            "readOnly": true
          },
          "initiator": {
            "type": "string",
            "description": "The initiator of the walletconnect session.\n\nFormat: `users/{user_id}`.",
            "readOnly": true
          },
          "peer": {
            "description": "The peer of the walletconnect session.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/WalletconnectSessionPeer"
              }
            ]
          },
          "network": {
            "type": "string",
            "description": "The network of the walletconnect session.\n\nFormat: `networks/{network_id}`.",
            "readOnly": true
          },
          "verificationContext": {
            "description": "The WalletConnect verification context for the peer.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/WalletconnectSessionVerificationContext"
              }
            ]
          }
        }
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ]
}
```