Utila Transactions API

The Transactions API from Utila — 11 operation(s) for transactions.

OpenAPI Specification

utila-transactions-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Utila Address Book Transactions API
  version: v2
servers:
- url: https://api.utila.io
security:
- bearerAuth: []
tags:
- name: Transactions
paths:
  /v2/vaults/{vault_id}/transactions/{transaction_id}:
    get:
      summary: GetTransaction
      description: Retrieves a transaction by resource name.
      operationId: Transactions_GetTransaction
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2GetTransactionResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
      - name: includeReferencedResources
        description: Include referenced resources in the response.
        in: query
        required: false
        schema:
          type: boolean
      - name: view
        description: "The view of the transaction.\n\n - BASIC: The default view. Does not include certain fields such as blocking transactions.\n - FULL: Full view, include all fields."
        in: query
        required: false
        schema:
          type: string
          enum:
          - BASIC
          - FULL
      tags:
      - Transactions
  /v2/vaults/{vault_id}/transactions:batchGet:
    get:
      summary: BatchGetTransactions
      description: Retrieves multiple transactions by resource name.
      operationId: Transactions_BatchGetTransactions
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2BatchGetTransactionsResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      - name: names
        description: 'The resource names of the transactions to retrieve.


          Format: `vaults/{vault_id}/transactions/{transaction_id}`'
        in: query
        required: true
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: includeReferencedResources
        description: Include referenced resources in the response.
        in: query
        required: false
        schema:
          type: boolean
      - name: view
        description: "The view of the transaction.\n\n - BASIC: The default view. Does not include certain fields such as blocking transactions.\n - FULL: Full view, include all fields."
        in: query
        required: false
        schema:
          type: string
          enum:
          - BASIC
          - FULL
      tags:
      - Transactions
  /v2/vaults/{vault_id}/transactions:
    get:
      summary: ListTransactions
      description: Retrieve a list of all transactions in a vault.
      operationId: Transactions_ListTransactions
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2ListTransactionsResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      - name: filter
        description: 'A filter string to filter the results.

          More details about filtering can be found in the [Filtering Documentation Page](https://docs.utila.io/reference/filtering).


          Supported fields and functions:

          | Name | Description | Example |

          |------|-------------|---------|

          | `create_time` | Filter by creation time (`string` comparison). | `create_time > "2023-08-29T18:04:00Z"` |

          | `state` | Filter by one or more states (`enum...`). | `state(AWAITING_APPROVAL,AWAITING_SIGNATURE)` |

          | `spam` | Filter by spam status (`bool`). | `spam(false)` |

          | `from_wallet` | Filter by one or more source wallets (`string...`). | `from_wallet("vaults/123456789012/wallets/5a8b8085ccd0")` |

          | `to_wallet` | Filter by one or more destination wallets (`string...`). | `to_wallet("vaults/123456789012/wallets/5a8b8085ccd0")` |

          | `pending_user_approval` | Filter by user for which the transaction is awaiting approval (`string`). | `pending_user_approval("users/name@example.com")` |

          | `asset` | Filter by one or more assets (`string...`). Supports v2 asset aliases. | `asset("assets/erc20.ethereum-mainnet.0x6b175474e89094c44da98b954eedeac495271d0f")` |

          | `external_id` | Filter by client-provided external ID (`string`). | `external_id("order-123")` |'
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'SQL-like ordering specifications.

          Supports the field `create_time`.'
        in: query
        required: false
        schema:
          type: string
      - name: pageSize
        description: 'The maximum number of items to return. The service may return fewer than

          this value.


          If unspecified, at most 50 will be returned.'
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: 'A page token, received from the previous list call as `nextPageToken`.

          Provide this to retrieve the subsequent page.


          When paginating, all other parameters must match the call that provided

          the page token.'
        in: query
        required: false
        schema:
          type: string
      - name: skip
        description: 'How many results to skip.


          Note: may be used alongside token-based pagination (see `pageToken`),

          although this won''t be needed for most use cases.'
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: includeReferencedResources
        description: Include referenced resources in the response.
        in: query
        required: false
        schema:
          type: boolean
      - name: view
        description: "The view of the transaction.\n\n - BASIC: The default view. Does not include certain fields such as blocking transactions.\n - FULL: Full view, include all fields."
        in: query
        required: false
        schema:
          type: string
          enum:
          - BASIC
          - FULL
      tags:
      - Transactions
  /v2/vaults/{vault_id}/transactions:initiate:
    post:
      summary: InitiateTransaction
      description: Initiate a new transaction.
      operationId: Transactions_InitiateTransaction
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2InitiateTransactionResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionsInitiateTransactionBody'
        required: true
      tags:
      - Transactions
  /v2/vaults/{vault_id}/transactionRequests/{transaction_request_id}:vote:
    post:
      summary: VoteOnTransactionRequest
      description: Vote on a transaction request.
      operationId: Transactions_VoteOnTransactionRequest
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2VoteOnTransactionRequestResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      - name: transaction_request_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionsVoteOnTransactionRequestBody'
        required: true
      tags:
      - Transactions
  /v2/vaults/{vault_id}/transactions:estimateFee:
    post:
      summary: EstimateTransactionFee
      description: Estimate the fee for a transaction.
      operationId: Transactions_EstimateTransactionFee
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2EstimateTransactionFeeResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionsEstimateTransactionFeeBody'
        required: true
      tags:
      - Transactions
  /v2/vaults/{vault_id}/transactions/{transaction_id}/simulations/latest:
    get:
      summary: GetLatestTransactionSimulation
      operationId: Transactions_GetLatestTransactionSimulation
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2GetLatestTransactionSimulationResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
      - name: includeReferencedResources
        description: Include referenced resources in the response.
        in: query
        required: false
        schema:
          type: boolean
      tags:
      - Transactions
  /v2/vaults/{vault_id}/transactions/{transaction_id}:cancel:
    post:
      summary: CancelTransaction
      description: 'Cancels a transaction. Used to cancel a transaction before it is signed.


        Only the transaction''s initiator or an admin can cancel a transaction.


        If the transaction has already been signed, use

        [ReplaceTransaction](#tag/Transactions/operation/Transactions_ReplaceTransaction) instead.'
      operationId: Transactions_CancelTransaction
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2CancelTransactionResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
      tags:
      - Transactions
  /v2/vaults/{vault_id}/transactions/{transaction_id}:replace:
    post:
      summary: ReplaceTransaction
      description: 'Creates a new transaction that replaces an existing signed transaction in the system which has not been mined yet.


        Only works for blockchains that support replacement of signed transactions, e.g.

        - Ethereum - which has nonce management.

        - BTC - which has RBF (Replace-By-Fee) and CPFP (Child-Pays-For-Parent) mechanisms.


        Some blockchains do not support transaction replacement, e.g. TRON - which is based on

        transaction expiration time - for these cases, the transaction will be either mined or

        expired after the configured expiration time.


        If the transaction has not been signed yet, and you wish to cancel it, use

        [CancelTransaction](#tag/Transactions/operation/Transactions_CancelTransaction)

        instead.'
      operationId: Transactions_ReplaceTransaction
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2ReplaceTransactionResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionsReplaceTransactionBody'
        required: true
      tags:
      - Transactions
  /v2/vaults/{vault_id}/transactions/{transaction_id}:publish:
    post:
      summary: PublishTransaction
      description: 'Manually publishes a signed transaction to the blockchain. This endpoint synchronously

        broadcasts the transaction to the network and returns the updated transaction details.

        The transaction must be fully signed before publishing.


        **Note:** Currently only available for EVM-compatible blockchains. Support for additional

        blockchains will be added in future releases.'
      operationId: Transactions_PublishTransaction
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2PublishTransactionResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionsPublishTransactionBody'
        required: true
      tags:
      - Transactions
  /v2/vaults/{vault_id}/transactions/{transaction_id}/amlScreening:
    get:
      summary: GetTransactionAMLScreening
      description: If the transaction was screened for AML, this endpoint will return the results. Relevant where screening is configured.
      operationId: Transactions_GetTransactionAMLScreening
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2GetTransactionAMLScreeningResponse'
      parameters:
      - name: vault_id
        in: path
        required: true
        schema:
          type: string
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
      tags:
      - Transactions
components:
  schemas:
    BatchAssetTransferBatchTransferDestination:
      type: object
      properties:
        destination:
          type: string
          description: 'The destination of the transfer.


            Can be one of the following:

            1. A raw string address (example: `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` or `bc1q3vfght7rln2c3733dl42navt8pslfya7talfns`)

            2. A wallet: `vaults/{vault_id}/wallets/{wallet_id}`.

            3. A specific wallet address: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`.'
        amount:
          type: string
          description: 'The amount of the asset to transfer for this entry in asset units.


            Example: `1.1`.'
        note:
          type: string
          description: 'The note to attach to the transfer.


            This note will be visible to all vault members.'
      title: BatchTransferDestination
      required:
      - destination
      - amount
    v2DecodedAptosTransactionPayload:
      type: object
      properties:
        entryFunction:
          $ref: '#/components/schemas/v2DecodedAptosEntryFunction'
    v2CantonTokenDetails:
      type: object
      properties:
        instrumentId:
          type: string
          description: The instrument ID.
        instrumentAdmin:
          type: string
          description: The instrument admin.
    v2DecodedAptosEntryFunction:
      type: object
      properties:
        function:
          type: string
        typeArguments:
          type: array
          items:
            type: string
        arguments:
          type: array
          items:
            type: string
      required:
      - function
      - typeArguments
      - arguments
    v2WalletTonDetails:
      type: object
      properties:
        address:
          type: string
          description: The address of the wallet.
          readOnly: true
    v2EVMSignTypedDataV4:
      type: object
      properties:
        fromAddress:
          type: string
          description: 'The address to sign the message with.


            Can be one of the following:

            1. A `0x`-prefixed hex string address, must be matched by a wallet address in the current vault (example: `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`)

            2. A wallet resource name: `vaults/{vault_id}/wallets/{wallet_id}`

            3. A specific wallet address resource name: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`'
        message:
          type: string
          description: 'An EIP-712 json string.


            See https://eips.ethereum.org/EIPS/eip-712 for more information.'
      required:
      - fromAddress
      - message
    AssetTransferStellarOptions:
      type: object
      properties:
        memo:
          description: 'Optional typed memo for Stellar native and token transfers.


            When set, the type must be explicit (TEXT, ID, HASH, or RETURN).

            See StellarTransaction.Memo for format and validation rules.

            If not set for a Stellar transfer, no memo is attached.'
          allOf:
          - $ref: '#/components/schemas/apiv2StellarTransactionMemo'
      title: Blockchain specific options for Stellar Asset Transfer
    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.

            Only meaningful when `change` is true.'
    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.
    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).
    v2TransactionTonProof:
      type: object
      properties:
        address:
          type: string
          description: 'The address of the signer.

            In Raw address format.


            Example: `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.
    v2AddressBookEntry:
      type: object
      properties:
        name:
          type: string
          example: vaults/1b25635a5b3f/addressBookEntries/95257c5a522f
          description: 'The resource name of the address book entry.


            Format: `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.


            Format: `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.

            Only set if `tracked` is true.


            Format: `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.


            Format: `users/{user_id}`'
          readOnly: true
        signed:
          type: boolean
          description: 'Output only.

            Whether the address book entry is cryptographically signed after going through the quorum approval process.'
          readOnly: true
      description: An address book entry.
      required:
      - address
      - displayName
      - network
    v2CancelTransactionResponse:
      type: object
    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"'
    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
    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.

            Address information can be fetched from `ReferencedAddressesInfo` map with the reference as the key.


            Will be populated only if `includeReferencedResources` is set to `true`.'
    apiUserStatusEnum:
      type: string
      enum:
      - PENDING
      - ACTIVE
    WalletSolanaDetails:
      type: object
      properties:
        address:
          type: string
          description: The address of the wallet.
          readOnly: true
    v2TransactionReplacementTypeEnum:
      type: string
      enum:
      - CANCEL
      - ACCELERATE
      description: "The type of the replacement.\n\n - CANCEL: Cancel the transaction.\n - ACCELERATE: Accelerate the transaction."
    v2BatchAssetTransfer:
      type: object
      properties:
        asset:
          type: string
          example: assets/native.ethereum-mainnet
          description: "The asset to transfer.\n\nCan be one of the following:\n1. A raw asset name `assets/{asset_id}` (example: `assets/e72ff35a5b15`)\n2. A native asset name `assets/native.{network_id}` (example: `assets/native.ethereum-mainnet`)\n3. An ERC20 asset name `assets/erc20.{network_id}.{contract}` (example: `assets/erc20.ethereum-mainnet.0x6b175474e89094c44da98b954eedeac495271d0f`)\n\nSupported Assets: The native currency of the network and ERC20 tokens.\n\n **Note: ERC20 asset transfers require an approval. See [GetLatestBatchContract](#tag/Blockchains/operation/Blockchains_GetLatestBatchContract) for more information.**\n\n\nSupported Networks: Ethereum and Polygon (Sepolia and Mumbai)"
        source:
          type: string
          description: 'The source of the transfer.


            Can be one of the following:

            1. A raw string address, (example: `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`)

            2. A wallet containing the asset: `vaults/{vault_id}/wallets/{wallet_id}`

            3. A specific wallet address containing the asset: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`


            For Bitcoin, only wallet source is supported (the second option).'
        destinations:
          type: array
          items:
            $ref: '#/components/schemas/BatchAssetTransferBatchTransferDestination'
          description: The batch transfer destinations.
      required:
      - asset
      - source
      - destinations
    v2TransactionTronTransactionTriggerSmartContract:
      type: object
      properties:
        ownerAddress:
          description: 'The source of the transaction.


            A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)'
          allOf:
          - $ref: '#/components/schemas/apiv2Address'
        contractAddress:
          description: 'The smart contract address.


            A 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).


            Example: `500000`.'
        data:
          type: string
          description: 'Hex encoded transaction data. This field will be returned only in FULL view.


            Example: `0xa9059cbb0000000000000000000000002ed5dd8a98aea00ae32517742ea5289761b2710e0000000000000000000000000000000000000000000000000000000ba43b7400`.'
    v2Transaction:
      type: object
      properties:
        name:
          type: string
          example: vaults/1b25635a5b3f/transactions/95257c5a522f
          description: 'The resource name of the transaction.


            Format: `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'
        direction:
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/v2TransactionDirectionEnum'
        note:
          type: string
          description: 'A note to attach to the transaction.


            This note is visible to all vault members.'
        network:
          type: string
          example: networks/ethereum-mainnet
          description: 'The blockchain network on which the transaction was sent.


            Not available for connection transactions (e.g., Exchanges)


            Format: `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'
        gasStationOrder:
          type: string
          title: The gas station order name
          readOnly: true
        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.


            Format: `users/{email}` or `users/{id}`


            Example: `["users/name@example.com"]` or `["users/a3e4f5"]`'
        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'
        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

# --- truncated at 32 KB (165 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/utila/refs/heads/main/openapi/utila-transactions-api-openapi.yml