---
title: "InitiateTransaction"
method: POST
path: "/v2/vaults/{vault_id}/transactions:initiate"
tags: ["Transactions"]
---

# InitiateTransaction

`POST /v2/vaults/{vault_id}/transactions:initiate`

## Request

- Base URL: `https://api.utila.io`
- URL: `https://api.utila.io/v2/vaults/{vault_id}/transactions:initiate`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/utila/apis/utila-api/docs/v2/vaults/:vault_id/transactions:initiate/post.ts> (a function with typed inputs; its response is checked against the schema)

Initiate a new transaction.

## Path parameters

- `vault_id` string, required

## Request body

- TransactionsInitiateTransactionBody
  - `details` V2InitiateTransactionRequestDetails, required
    - `assetTransfer` V2AssetTransfer
      - `asset` string, required: The asset to transfer. Can be one of the following: 1. A raw asset name `assets/{asset_id}` (example: `assets/e72ff35a5b15`) 2. A native asset name `assets/native.{network_id}` (example: `assets/native.ethereum-mainnet`) 3. An ERC20 asset name `assets/erc20.{network_id}.{contract}` (example: `assets/erc20.ethereum-mainnet.0x6b175474e89094c44da98b954eedeac495271d0f`) 4. A TRC20 asset name `assets/trc20.{network_id}.{contract}` (example: `assets/trc20.tron-mainnet.TKieffkQXtW8Dr1hKXKGPqCqYi1UNMjJw`) 5. A Solana SPL token asset name `assets/spl-token.{network_id}.{contract}` (example: `assets/spl-token.solana-mainnet.Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB`) 6. A Solana SPL token2022 asset name `assets/spl-token-2022.{network_id}.{contract}` (example: `assets/spl-token-2022.solana-mainnet.2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo`) 7. A TON Jetton token asset name `assets/jetton.{network_id}.{contract}` (example: `assets/jetton.ton-mainnet.EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs`)
      - `amount` string, required: The amount of the asset to transfer in asset units. Example: `1.1`.
      - `source` string, required: 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).
      - `destination` string, required: 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}`.
      - `payFeeFromAmount` boolean: If set to true, fees will be paid from transfer amount. Currently only supported for native assets on EVM-compatible networks.
      - `memo` string: An optional "on-chain" memo to attach to the transfer. Implementation may differ between assets. Currently supports: * TON native transfers (`assets/native.ton-mainnet`) * TON jetton transfers (`assets/jetton.ton-mainnet.EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs`) * Solana native transfers (`assets/native.solana-mainnet`) * Solana SPL token transfers (`assets/spl-token.solana-mainnet.*` and `assets/spl-token-2022.solana-mainnet.*`) attached via the SPL Memo Program. Limited to 566 bytes of valid UTF-8.
      - `sponsor` string: Optional sponsor that will pay transaction fees. Can be one of the following: 1. A raw string address (example: `9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g`) 2. A wallet: `vaults/{vault_id}/wallets/{wallet_id}` 3. A specific wallet address: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}` 4. A gas station: `vaults/{vault_id}/gasStations/{gas_station_id}` (TVM transfers only) For TVM transfers, the sponsor must be a gas station in the same vault. For other blockchains, the sponsor must be a Utila-managed wallet or address in the same vault with sufficient balance to pay transaction fees.
      - `stellarOptions` AssetTransferStellarOptions
        - `memo` V2StellarTransactionMemo
          - `type` 'TEXT' | 'ID' | 'HASH' | 'RETURN', required: - TEXT: A text memo. Limited to 28 bytes. - ID: A id memo. An unsigned 64-bit integer. - HASH: A hash memo. A hex string of the hash with a `0x` prefix. - RETURN: A return memo. A hex string of the return hash with a `0x` prefix.
          - `data` string, required: The data of the memo. See documentation on enum values for the exact format. See https://developers.stellar.org/docs/learn/fundamentals/transactions/operations-and-transactions#memo for more information.
      - `xrplOptions` AssetTransferXRPLOptions
        - `destinationTag` string: Destination tag for XRPL (XRP) transfers. Decimal string of a 32-bit unsigned integer in the range 0..4294967295 (XRPL DestinationTag). Empty string is invalid when this field is set; omit the field entirely when no tag applies.
    - `assetBatchTransfer` V2BatchAssetTransfer
      - `asset` string, required: The asset to transfer. Can be one of the following: 1. A raw asset name `assets/{asset_id}` (example: `assets/e72ff35a5b15`) 2. A native asset name `assets/native.{network_id}` (example: `assets/native.ethereum-mainnet`) 3. An ERC20 asset name `assets/erc20.{network_id}.{contract}` (example: `assets/erc20.ethereum-mainnet.0x6b175474e89094c44da98b954eedeac495271d0f`) Supported Assets: The native currency of the network and ERC20 tokens. **Note: For the legacy batch-contract path (no `sponsor`), ERC20 asset transfers require an approval. See [GetLatestBatchContract](#tag/Blockchains/operation/Blockchains_GetLatestBatchContract) for more information. When `sponsor` is set on EVM, transfers use EIP-7702 sponsored multi-call and do not require batch-contract approval.** Supported Networks: Ethereum and Polygon (Sepolia and Mumbai)
      - `source` string, required: 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` BatchAssetTransferBatchTransferDestination[], required: The batch transfer destinations.
        - `destination` string, required: 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` string, required: The amount of the asset to transfer for this entry in asset units. Example: `1.1`.
        - `note` string: The note to attach to the transfer. This note will be visible to all vault members.
    - `evmTransaction` Apiv2EVMTransaction
      - `network` string, required: The resource name of the network of the transaction. Format: `networks/{network_id}`.
      - `fromAddress` string, required: The source of the transaction. Can be one of the following: 1. A `0x`-prefixed hex string address, (example: `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`) 2. An EVM wallet resource name: `vaults/{vault_id}/wallets/{wallet_id}` 3. A specific wallet address: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`
      - `toAddress` string: The destination of the transfer. If empty, the transaction is a contract deployment. Can be one of the following: 1. A `0x`-prefixed hex string address (example: `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`) 2. A wallet: `vaults/{vault_id}/wallets/{wallet_id}`. 3. A specific wallet address: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`.
      - `value` string: The amount to transfer in wei. Can be hex or decimal. Example: `0x32` or `50`.
      - `data` string: Hex encoded transaction data, must be prefixed with `0x`. Example: `0xda82fb4c00000a`.
      - `overrideParams` V2EVMTransactionParams
        - `gasSettings` V2EVMPriority
          - `gasLimit` string, int64: The amount of gas to use for the transaction.
          - `gasPrice` string: A `0x`-prefixed hex string representing the gas price of the transaction. Used for legacy transactions (non EIP-1559).
          - `maxPriorityFeePerGas` string: A `0x`-prefixed hex string representing the maximum prioriy fee per gas unit the transaction can pay. Used for dynamic transactions (EIP-1559).
          - `maxFeePerGas` string: A `0x`-prefixed hex string representing the maximum fee per gas unit the transaction can pay. Used for dynamic transactions (EIP-1559).
        - `nonce` string: Optional nonce for the transaction. If omitted, Utila will determine the nonce automatically.
      - `authorizationDetails` Apiv2EVMTransactionAuthorizationDetails
        - `authorizationList` Apiv2EVMTransactionAuthorization[], required: The list of authorizations.
          - `address` string, required: The address of the authorization. A `0x`-prefixed hex string address, (example: `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`)
          - `chainId` string, required: The chain ID of the authorization.
          - `nonce` string, int64, required: The nonce of the authorization.
          - `signature` string, byte, required: The signature of the authorization.
      - `publish` boolean: Set to true if you wish for Utila to automatically broadcast the transaction after it is signed. If not provided, defaults to `true`.
      - `sponsor` string: Optional sponsor wallet/address that will pay transaction fees. When set, the transaction is submitted as a sponsored EIP-7702 delegated execute call. The network must support EIP-7702. Can be one of the following: 1. A raw string address (example: `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`) 2. A wallet: `vaults/{vault_id}/wallets/{wallet_id}` 3. A specific wallet address: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}` The sponsor must be a Utila-managed wallet or address in the same vault with sufficient balance to pay transaction fees.
    - `evmPersonalSign` V2EVMPersonalSign
      - `fromAddress` string, required: The address to sign the message with. The message is hashed using the EIP-191 `\x19Ethereum Signed Message:\n<length>` prefix. This template also works on Tron networks: pass a Tron wallet address (or a wallet/address resource name that resolves to a Tron address) to produce an EIP-191 signature for that Tron address. Use `TronPersonalSign` instead when you need the Tron-native `\x19TRON Signed Message:\n<length>` prefix. 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 Tron `T`-prefixed base58 address, must be matched by a wallet address in the current vault (example: `TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t`) 3. A wallet resource name: `vaults/{vault_id}/wallets/{wallet_id}` 4. A specific wallet address resource name: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`
      - `message` string: A utf-8 encoded message to sign. One of `message`, `messageHex` is required. Example: `hello`.
      - `messageHex` string: A utf-8 hex encoded message to sign, must start with `0x`. One of `message`, `messageHex` is required. Example: `0x68656c6c6f` (representing `hello`)
    - `evmSignTypedDataV4` V2EVMSignTypedDataV4
      - `fromAddress` string, required: 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` string, required: An EIP-712 json string. See https://eips.ethereum.org/EIPS/eip-712 for more information.
    - `evmAccountDelegation` Apiv2EVMAccountDelegation
      - `fromAddress` string, required: The source of the transaction. A `0x`-prefixed hex string address, (example: `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`)
      - `contractAddress` string, required: The address of the contract the account is delegating to. Delegating to the zero address is equivalent to undelegating and is automatically approved.
      - `chainId` string: The chain ID of the transaction. If not provided, the chain ID will be 0 and apply to all chains.
      - `nonce` string, int64: The nonce of the transaction. If not provided, the nonce will be the next available nonce for signer.
      - `offsetNonce` boolean: If set to true, nonce must not be set, will offset the calculated nonce by +1. This is useful for self-delegation.
    - `evmZamaConfidentialShield` V2EVMZamaConfidentialShield: A shield: converts a public token into the Zama confidential (ERC-7984) token that wraps it.
      - `source` string, required: The source of the shield. Can be one of the following: 1. A wallet containing the asset: `vaults/{vault_id}/wallets/{wallet_id}` 2. A specific wallet address containing the asset: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`
      - `asset` string, required: The confidential token to shield into. The public token it wraps is the one spent. `source` receives the confidential token. Format: `assets/{asset_id}`
      - `amount` string, required: The amount to shield, in units of the public token being spent. The two sides of a pair may declare different decimals. Example: `"1.5"`.
    - `evmZamaConfidentialActivation` V2EVMZamaConfidentialActivation: An activation of a wallet for Zama confidential (ERC-7984) tokens. Also renews an existing activation. Every call issues fresh credentials.
      - `wallet` string, required: The resource name of the wallet to activate. Format: `vaults/{vault_id}/wallets/{wallet_id}`
      - `network` string, required: The resource name of the network to activate on. Format: `networks/{network_id}`
      - `confidentialTokens` string[], required: The confidential tokens to activate the wallet for. All must be on `network`. At least one is required. Activating many tokens at once may require more than one signature. Format: `assets/erc7984.{network_id}.{contract}`
    - `exchangeWithdrawal` Apiv2ExchangeWithdrawal
      - `asset` string, required: The asset to withdraw. Must be an exchange asset. Format: `assets/{exchange}.{symbol}` Example: `assets/binance.USDC`
      - `amount` string, required: The amount of the asset to withdraw in asset units.
      - `source` string, required: The source of the withdrawal. Specifies the exchange connection to withdraw from. The source should be a valid exchange connection resource name in the current vault (shown in the Console). The main account of the exchange connection will be used for the withdrawal. Format: `vaults/{vault_id}/exchangeConnections/{exchange_connection_id}`
      - `destination` string, required: 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}`. **Must be an address managed by the current vault.**
      - `destinationNetwork` string, required: The destination network of the transfer.
      - `payFeeFromAmount` boolean
    - `solanaSerializedTransaction` V2SolanaSerializedTransaction
      - `network` string, required: The resource name of the network of the transaction. Format: `networks/{network_id}`.
      - `rawTransaction` string, byte, required: The full transaction payload serialized. The message and signatures, encoded in base64 format.
      - `publish` boolean: Set to true if you wish for Utila to automatically broadcast the transaction after it is signed. Default: true.
      - `replaceBlockhash` boolean: If set to true, the transaction recent blockhash will be replaced with the most recent blockhash before signing.
      - `tryReplaceBlockhash` boolean: If set to true, Utila will check whether the transaction can have its blockhash replaced automatically. The blockhash will be replaced if the transaction does not use a durable nonce AND all signers of the transaction are wallets in the current vault. If the conditions are met, behaves as if `replace_blockhash` was set to true.
    - `tronTriggerSmartContract` V2TronTriggerSmartContract
      - `network` string, required: The resource name of the network of the transaction. Format: `networks/{network_id}`.
      - `ownerAddress` string, required: The source of the transaction. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
      - `contractAddress` string, required: The smart contract to trigger. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
      - `callValue` string, int64: The amount of SUN passed into the contract (1 TRX = 1,000,000 SUN). Example: `500000`.
      - `data` string: Hex encoded transaction data. Example: `a9059cbb0000000000000000000000002ed5dd8a98aea00ae32517742ea5289761b2710e0000000000000000000000000000000000000000000000000000000ba43b7400`.
    - `tronTransaction` Apiv2TronTransaction
      - `network` string, required: The resource name of the network of the transaction. Format: `networks/{network_id}`.
      - `publish` boolean: Set to true if you wish for Utila to automatically broadcast the transaction after it is signed. Default: true.
      - `triggerSmartContract` Apiv2TronTransactionTriggerSmartContract
        - `ownerAddress` string, required: The source of the transaction. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
        - `contractAddress` string, required: The smart contract to trigger. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
        - `callValue` string, int64: The amount of SUN passed into the contract (1 TRX = 1,000,000 SUN). Example: `500000`.
        - `data` string: Hex encoded transaction data. Example: `a9059cbb0000000000000000000000002ed5dd8a98aea00ae32517742ea5289761b2710e0000000000000000000000000000000000000000000000000000000ba43b7400`.
      - `freezeBalanceV2` Apiv2TronTransactionFreezeBalanceV2
        - `ownerAddress` string, required: The source of the transaction. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
        - `amount` string, required: Amount of TRX to be staked, in SUN. Example: `1500000`.
        - `resource` 'BANDWIDTH' | 'ENERGY', required
      - `unfreezeBalanceV2` Apiv2TronTransactionUnfreezeBalanceV2
        - `ownerAddress` string, required: The source of the transaction. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
        - `amount` string, required: Amount of TRX to be unstaked, in SUN. Example: `1500000`.
        - `resource` 'BANDWIDTH' | 'ENERGY', required
      - `withdrawExpireUnfreeze` Apiv2TronTransactionWithdrawExpireUnfreeze
        - `ownerAddress` string, required: The source of the transaction. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
      - `delegateResource` Apiv2TronTransactionDelegateResource
        - `ownerAddress` string, required: The source of the transaction. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
        - `resource` 'BANDWIDTH' | 'ENERGY', required
        - `amount` string, required: The amount of the resource to delegate, in SUN. Example: `1500000`.
        - `receiverAddress` string, required: The address to delegate the resource to. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
        - `lock` boolean: Whether to lock the delegation. Default: false.
        - `lockPeriod` string: The period to lock the delegation, in block numbers, 1 block ≈ 3 seconds. Example: `1000`.
      - `undelegateResource` Apiv2TronTransactionUnDelegateResource
        - `ownerAddress` string, required: The source of the transaction. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
        - `resource` 'BANDWIDTH' | 'ENERGY', required
        - `amount` string, required: The amount of the delegated resource to undelegate, in SUN. Example: `1500000`.
        - `receiverAddress` string, required: The address to undelegate the resource from. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
      - `cancelAllUnfreezeV2` Apiv2TronTransactionCancelAllUnfreezeV2
        - `ownerAddress` string, required: The source of the transaction. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
      - `voteWitness` Apiv2TronTransactionVoteWitness
        - `ownerAddress` string, required: Voter address. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
        - `votes` Apiv2TronTransactionVoteWitnessVote[], required: The votes to cast. Max 30 votes. Example: `[{"vote_address": "418840E6C55B9ADA326D211D818C34A994AECED808", "vote_count": "1000"}]`
          - `voteAddress` string, required: The address of Super Representatives to vote for. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
          - `voteCount` string, required: Example: `1000`.
      - `withdrawBalance` Apiv2TronTransactionWithdrawBalance
        - `ownerAddress` string, required: The source of the transaction. Can be one of the following: 1. A hex string address, must start with 41 (example: `418840E6C55B9ADA326D211D818C34A994AECED808`) 2. A base58 string address (example: `TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g`)
    - `tronPersonalSign` Apiv2TronPersonalSign
      - `fromAddress` string, required: The Tron address to sign the message with. The message is hashed using the Tron `\x19TRON Signed Message:\n<length>` prefix (the Tron equivalent of EIP-191 personal_sign, as used by TronWeb's `signMessageV2`). To sign a message for a Tron address with the EIP-191 `\x19Ethereum Signed Message:\n<length>` prefix instead, use `EVMPersonalSign`. Can be one of the following: 1. A Tron `T`-prefixed base58 address, must be matched by a wallet address in the current vault (example: `TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t`) 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` string: A utf-8 encoded message to sign. One of `message`, `messageHex` is required. Example: `hello`.
      - `messageHex` string: A utf-8 hex encoded message to sign, must start with `0x`. One of `message`, `messageHex` is required. Example: `0x68656c6c6f` (representing `hello`)
    - `solanaSignMessage` Apiv2SolanaSignMessage
      - `signer` string, required: The address to sign the message with. A Solana address, must be matched by a wallet address in the current vault (example: `Ab86991c6218b36c1d19D4a2e9EbMNqz9Ua2869RfYT`)
      - `message` string, byte: Example: `aGVsbG8=`. (representing `hello`)
    - `suiRawTransaction` V2SuiRawTransaction
      - `network` string, required: The resource name of the network of the transaction. Format: `networks/{network_id}`.
      - `sender` string, required
      - `txBcsBytes` string, byte, required: The Sui transaction payload serialized in BCS format.
      - `publish` boolean: Set to true if you wish for Utila to automatically broadcast the transaction after it is signed. Default: true.
    - `xrplRawTransaction` V2XRPLRawTransaction
      - `network` string, required: The resource name of the network of the transaction. Format: `networks/{network_id}`.
      - `sender` string, required
      - `jsonTransactionData` object, required
      - `publish` boolean: Set to true if you wish for Utila to automatically broadcast the transaction after it is signed. Default: true.
    - `stellarRawTransaction` V2StellarRawTransaction
      - `network` string, required: The resource name of the network of the transaction. Format: `networks/{network_id}`.
      - `sourceAddress` string, required: The source of the transaction. A Stellar address (example: `GAAAAAAAACGC6SEYFBKQ33QJ2FXVEP3EJ6BE2FCVW2SSP6X5TBNQYQ`). The address which will publish the transaction.
      - `xdrEnvelope` string, byte, required: The raw transaction envelope in XDR format.
      - `publish` boolean: Set to true if you wish for Utila to automatically broadcast the transaction after it is signed. Default: true.
      - `useLatestSequenceNumber` boolean: Set to false if you don't want Utila to update the sequence number before signing. If not provided, will default to `true`.
    - `stellarTransaction` Apiv2StellarTransaction
      - `network` string, required: The resource name of the network of the transaction. Format: `networks/{network_id}`.
      - `sourceAddress` string, required: The source of the transaction. A Utila wallet Stellar address (example: `GAAAAAAAACGC6SEYFBKQ33QJ2FXVEP3EJ6BE2FCVW2SSP6X5TBNQYQ`). The address which will publish the transaction.
      - `operations` V2StellarTransactionOperation[], required: The operations to include in the transaction.
        - `sourceAccountAddress` string: The source account address. If not provided, the top-level source account is used. A Stellar address (example: `GAAAAAAAACGC6SEYFBKQ33QJ2FXVEP3EJ6BE2FCVW2SSP6X5TBNQYQ`).
        - `body` OperationBody, required
          - `raw` string, byte
          - `payment` OperationBodyPayment
            - `destinationAddress` string, required: A Stellar address (example: `GAAAAAAAACGC6SEYFBKQ33QJ2FXVEP3EJ6BE2FCVW2SSP6X5TBNQYQ`).
            - `asset` string, required: The asset to transfer. A Stellar asset `{asset_code}-{issuer}` (example: `USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`).
            - `rawAmount` string, required: Example: `10000000` (1 XLM in stroops).
          - `createAccount` OperationBodyCreateAccount
            - `destinationAddress` string, required: A Stellar address (example: `GAAAAAAAACGC6SEYFBKQ33QJ2FXVEP3EJ6BE2FCVW2SSP6X5TBNQYQ`).
            - `rawStartingBalance` string, required: Example: `10000000` (1 XLM in stroops).
          - `changeTrust` OperationBodyChangeTrust
            - `asset` string, required: A Stellar asset `{asset_code}-{issuer}`. Example: `USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`.
            - `limit` string: The limit of the change trust. For unlimited amount, don't provide this field. Example: `10000000` (1 XLM in stroops).
          - `sep41Payment` OperationBodySEP41Payment
            - `spenderAddress` string: The address that will authorize the transfer by consuming its allowance on `source_address`. When set, the transfer is built as a SEP41 `transfer_from` call where `spender_address` must have a sufficient pre-existing allowance on `source_address`'s balance. When unset, the transfer is built as a plain `transfer` call authorized by `source_address` itself. A Stellar address (example: `GAAAAAAAACGC6SEYFBKQ33QJ2FXVEP3EJ6BE2FCVW2SSP6X5TBNQYQ`).
            - `sourceAddress` string, required: A Stellar address (example: `GAAAAAAAACGC6SEYFBKQ33QJ2FXVEP3EJ6BE2FCVW2SSP6X5TBNQYQ`).
            - `destinationAddress` string, required: A Stellar address (example: `GAAAAAAAACGC6SEYFBKQ33QJ2FXVEP3EJ6BE2FCVW2SSP6X5TBNQYQ`).
            - `contractAddress` string, required: The soroban contract address of the token to transfer. A contract address of a SEP41 token (example: `CB3WFHO46J3WGRAIARNT3XD4Z7NR5SZDNG3SVKN27GOTJAQGQFAH2KAJ`).
            - `rawAmount` string, required: Example: `10000000`.
          - `sep41TokenApproval` OperationBodySEP41TokenApproval
            - `sourceAddress` string, required: The address holding the balance of tokens the allowance is drawn from (the SEP41 `from` argument). A Stellar address (example: `GAAAAAAAACGC6SEYFBKQ33QJ2FXVEP3EJ6BE2FCVW2SSP6X5TBNQYQ`).
            - `spenderAddress` string, required: The address being authorized to spend the tokens held by `source_address` (the SEP41 `spender` argument). A Stellar address (example: `GAAAAAAAACGC6SEYFBKQ33QJ2FXVEP3EJ6BE2FCVW2SSP6X5TBNQYQ`).
            - `contractAddress` string, required: The token whose allowance is being set. A contract address of a SEP41 token (example: `CB3WFHO46J3WGRAIARNT3XD4Z7NR5SZDNG3SVKN27GOTJAQGQFAH2KAJ`).
            - `rawAmount` string, required: The amount to be made available to `spender_address`. Example: `10000000`.
            - `liveUntilLedgerNumber` string, int64, required: The ledger number where this allowance expires. Cannot be less than the current ledger number unless the amount is being set to 0.
      - `memo` V2StellarTransactionMemo
        - `type` 'TEXT' | 'ID' | 'HASH' | 'RETURN', required: - TEXT: A text memo. Limited to 28 bytes. - ID: A id memo. An unsigned 64-bit integer. - HASH: A hash memo. A hex string of the hash with a `0x` prefix. - RETURN: A return memo. A hex string of the return hash with a `0x` prefix.
        - `data` string, required: The data of the memo. See documentation on enum values for the exact format. See https://developers.stellar.org/docs/learn/fundamentals/transactions/operations-and-transactions#memo for more information.
      - `fee` string, int64: Optional fee in stroops. If not provided, the network will determine the fee.
      - `timeBounds` Apiv2StellarTimeBounds
        - `minUnixTime` string, int64: Minimum time (Unix timestamp).
        - `maxUnixTime` string, int64, required: Maximum time (Unix timestamp).
      - `publish` boolean: Set to true if you wish for Utila to automatically broadcast the transaction after it is signed. Default: true.
    - `evmUtilaDelegatedCalls` V2EVMUtilaDelegatedCalls: EVM Utila delegated calls transaction using EIP-7702. Allows executing multiple calls from a delegated account with a sponsor paying gas fees.
      - `network` string: The resource name of the network. Required when creating a new submission. Format: `networks/{network_id}`.
      - `fromAddress` string: The address of the sender account (the delegated account). Required when creating a new submission. Format: `0x{address}`
      - `calls` V2EVMUtilaDelegatedCallsCall[]: The calls to execute. Required when creating a new submission.
        - `raw` EVMUtilaDelegatedCallsCallRaw, required: Raw call data.
          - `toAddress` string, required: The destination address of the call. Format: `0x{address}`
          - `value` string: The value to send with the call in wei. Can be hex or decimal. Example: `0xde0b6b3a7640000` or `1000000000000000000` for 1 ETH.
          - `data` string: The calldata to send with the call. Format: `0x{hex_data}`
      - `deadlineUnix` string: The deadline as unix timestamp in seconds. If not provided, there will be no deadline. Format: "1734854400" (unix timestamp in seconds)
      - `submissionDetails` V2EVMUtilaDelegatedCallsSubmissionDetails: Submission details for sponsored transaction.
        - `sponsorAddress` string: The address of the sponsor who will pay gas fees. Format: `0x{address}`
    - `btcPsbt` Apiv2BTCPSBT: Sign an externally-created PSBT (Partially Signed Bitcoin Transaction). By default Utila signs the PSBT and returns it without broadcasting. Set `publish` to true to have Utila automatically broadcast after signing.
      - `network` string, required: The resource name of the network of the transaction. Format: `networks/{network_id}`.
      - `psbt` string, byte, required: The PSBT data to sign, encoded in base64 format per BIP-174.
    - `btcTransfer` V2BTCTransfer: A transfer transaction for Bitcoin and other UTXO-based networks with explicit input control.
      - `network` string, required: The resource name of the network of the transaction. Format: `networks/{network_id}`.
      - `inputs` V2BTCTransferUTXO[]: Inputs used to fund the transaction. You must provide at least one funding source: 1. `inputs` – explicitly specified UTXOs. 2. `input_sources` – sources from which Utila may automatically select UTXOs. Both may be provided. In that case, the specified `inputs` are always included and Utila will automatically select additional UTXOs from `input_sources` if needed to cover the outputs and fees. All UTXOs listed here must belong to the same wallet.
        - `txHash` string, required: The hash of the transaction that created this UTXO.
        - `vout` integer, required: The output index in the transaction.
      - `inputSources` BTCTransferInputSource[]: Sources from which Utila may automatically select additional UTXOs. Currently only a single source is supported, and it must reference the same wallet that owns the UTXOs in `inputs` (when both are provided).
        - `source` string, required: The source to select UTXOs from. Can be one of the following: 1. A raw string address (example: `bc1q3vfght7rln2c3733dl42navt8pslfya7talfns`) 2. A wallet: `vaults/{vault_id}/wallets/{wallet_id}` (selects across all addresses) 3. A specific wallet address: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`
      - `outputs` BTCTransferOutput[], required: The transfer outputs.
        - `destination` string, required: The destination of the transfer. Can be one of the following: 1. A raw string address (example: `bc1q3vfght7rln2c3733dl42navt8pslfya7talfns`) 2. A wallet: `vaults/{vault_id}/wallets/{wallet_id}` (resolves to the wallet's main deposit address) 3. A specific wallet address: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`
        - `amount` string, required: The amount to send, in decimal form. Example: `"0.001"` (0.001 BTC).
        - `payFeeFromAmount` boolean: If set to true, the transaction fee will be deducted from this output's amount. At most one output may have this set to true.
      - `changeOutputs` BTCTransferChangeOutput[]: Change address overrides. At most one per input wallet. When change is needed, Utila will use the specified address instead of auto-generating one.
        - `address` string, required: The change address. Must belong to one of the input wallets. Can be one of the following: 1. A raw string address (example: `bc1q3vfght7rln2c3733dl42navt8pslfya7talfns`) 2. A wallet: `vaults/{vault_id}/wallets/{wallet_id}` (Utila will select an appropriate change address) 3. A specific wallet address: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`
      - `feeSettings` BTCTransferFeeSettings: Custom fee settings for the transaction.
        - `feeRate` string, required: Fee rate in satoshi per virtual byte (sat/vB). Example: `10.5`.
  - `priority` 'LOW' | 'NORMAL' | 'HIGH': Generic priority enum for transactions. Translates to network specific priority values. - LOW: Low priority. - NORMAL: Normal priority. The default value. - HIGH: High priority.
  - `note` string: A note to attach to the transaction. This note will be visible to all vault members.
  - `designatedSigners` string[]: 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"]`
  - `validateOnly` boolean: If set to true, the transaction will be validated but not created.
  - `requestId` string: An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  - `externalId` string: A client-provided identifier for the transaction. Must be unique per vault. Can be used to correlate the transaction with an entity in an external system.
  - `annotations` object: Arbitrary client-defined key/value metadata to attach to the transaction. Utila stores these values but never interprets them. They are surfaced read-only on the resulting Transaction to anyone who can view it (custodians, partners, integrations), so multiple integrations can namespace their own keys without colliding. This field is meant for small, lightweight metadata rather than bulk data: * At most 64 entries. * Keys: at most 256 characters. * Total serialized size (UTF-8): at most 64 KiB (65,536 bytes). Avoid storing secrets or sensitive data here, since the data is visible to other parties who can view the transaction. For anything larger than the size limit, consider keeping it in your own system and referencing it by an ID.
  - `runSimulation` boolean: Run a simulation against a blockchain node to get the estimated execution results of the transaction like balance changes.
  - `skipInitiatorApproval` boolean: If set to true, the initiator's approval is not automatically recorded when the transaction requires approval by policy. The initiator may still approve the transaction later.
  - `expireTime` string, date-time: The expiration time of the transaction. Example: `2025-06-10T12:30:05Z`
  - `includeReferencedResources` boolean: Include referenced resources in the response.

## Response `200`

A successful response.

- V2InitiateTransactionResponse
  - `transaction` V2Transaction
    - `name` string: The resource name of the transaction. Format: `vaults/{vault_id}/transactions/{transaction_id}`.
    - `type` 'TRANSACTION' | 'MESSAGE'
    - `subType` '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' | 'EVM_ZAMA_CONFIDENTIAL_TOKEN_ACTIVATION': - EVM_ZAMA_CONFIDENTIAL_TOKEN_ACTIVATION: The transaction activates a wallet for Zama confidential (ERC-7984) tokens.
    - `state` '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': The state of the transaction. - AWAITING_APPROVAL: Transaction requires approving votes. - AWAITING_AML_POLICY_CHECK: The transaction is waiting for the AML policy check to be completed. Relevant only for outgoing transactions. - DECLINED_BY_AML_POLICY: Transaction was declined by the AML policy Relevant only for outgoing transactions. - AWAITING_POLICY_CHECK: Transaction is waiting for the policy check to be completed. - AWAITING_SIGNATURE: Transaction is approved and ready to be signed. - SIGNED: Transaction is signed but not yet published. - AWAITING_PUBLISH: Transaction has been sent to the publishing queue. - PUBLISHED: Transaction has been published to the blockchain's mem-pool. - MINED: Transaction has been included in a block successfully. - MINED_FAILED: Transaction has entered a block but in a failed state (e.g. a failed smart contract call). - FAILED: Transaction has entered a block but in a failed state and was confirmed as such by multiple blocks - DECLINED: Transaction was declined by a policy check. - REPLACED: Transaction was replaced by a new transaction (same nonce or RBF). - CANCELED: Transaction was canceled by its initiator or by an admin. - DROPPED: Transaction was dropped by the network without being included in a block. - CONFIRMED: Transaction has been confirmed by multiple blocks in the blockchain. - EXPIRED: Transaction was expired after a certain amount of time.
    - `error` GooglerpcStatus: The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
      - `code` integer: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
      - `message` string: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
      - `details` ProtobufAny[]: A list of messages that carry the error details. There is a common set of message types for APIs to use.
        - `@type` string: A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
    - `direction` 'INCOMING' | 'OUTGOING'
    - `note` string: A note to attach to the transaction. This note is visible to all vault members.
    - `network` string: The blockchain network on which the transaction was sent. Not available for connection transactions (e.g., Exchanges) Format: `networks/{network_id}`
    - `hash` string: For on-chain transactions, the hash of the transaction.
    - `blockNumber` string: For on-chain transactions, the block number of the transaction if it was mined.
    - `signingSession` string: Available when the transaction has been prepared for signing / signed.
    - `request` V2TransactionRequest
      - `name` string: The resource name of the transaction request. Format: `vaults/{vault_id}/transactionRequests/{transaction_request_id}`.
      - `externalId` string: A client-provided identifier for the transaction. Unique per vault. Can be used to correlate the transaction with an entity in an external system.
      - `initiator` string: The initiator of the transaction. Format: `users/{user}`
      - `sourceWallet` string: If the transaction was initiated through a wallet, the wallet will be listed here.
      - `cancelTime` string, date-time: The timestamp when the transaction was canceled.
      - `signTime` string, date-time: The timestamp when the transaction was signed.
      - `failTime` string, date-time: The timestamp when the transaction failed.
      - `declineTime` string, date-time: The timestamp when the transaction was declined.
      - `publishTime` string, date-time: The timestamp when the transaction was published.
      - `dropTime` string, date-time: The timestamp when the transaction was dropped.
      - `expireTime` string, date-time: The timestamp when the transaction expires.
      - `approveTime` string, date-time: The timestamp when the transaction was approved.
      - `publish` boolean: Whether the transaction should be automatically published by utila.
      - `signingSessions` string[]: The signing sessions that were used to sign the transaction.
      - `blockingTransaction` string: A transaction that is blocking this transaction from being signed. For example, a transaction from the same wallet and blockchain that has acquired a nonce but is not yet mined. Included only when `FULL` view is requested.
      - `walletconnectSession` string: The wallet connect session that was used to sign the transaction.
      - `transactionBundle` string: The transaction bundle that this transaction belongs to.
      - `evmSubmissionDetails` string: The EVM submission that this transaction is part of. A submission groups the transactions that are broadcast together as a single gas-abstracted (sponsored) EVM submission — for example the EIP-7702 authorization and the user-operation transactions signed by the user. It is only set for transactions that belong to such a submission. Call `Transactions.GetEVMSubmissionDetails` with this resource name to fetch the full submission details. Format: `vaults/{vault_id}/evmSubmissionDetails/{submission_id}`
      - `dappInfo` TransactionRequestDappInfo: Details of the dApp - reported from the transaction initiator, as this cannot be validated by Utila.
        - `url` string: The URL of the dApp.
      - `origin` 'WALLET_CONNECT' | 'EXTENSION': - WALLET_CONNECT: Transaction received via WalletConnect connection. - EXTENSION: Transaction received via Extension - can not be validated by Utila.
      - `gasStationOrder` string: The gas station order created to sponsor this transaction request, if any. Format: `vaults/{vault_id}/gasStations/{gas_station_id}/orders/{order_id}`.
      - `gasStation` string: The gas station that sponsors this transaction request, if any. Format: `vaults/{vault_id}/gasStations/{gas_station_id}`.
      - `sponsorWallet` string: The sponsor wallet for sponsored transactions (e.g., EVM, Solana). Only populated when the sponsor is a Utila-managed wallet in the vault. Format: `vaults/{vault_id}/wallets/{wallet_id}`
      - `initiatorRequestSignature` V2RequestSignature: RequestSignature is a signed API request. The JWT typ is "utila-req-sig+jwt". Method, content type, and body hash are claims inside jwt. kid is the signing key's fingerprint (a service-account key for this release). Verifiers check jwt against raw_request_body and ignore every other field.
        - `rawRequestBody` string, byte: The exact request bytes the client sent.
        - `jwt` string: The compact request-signature JWT, verbatim.
    - `amlDetails` TransactionAMLDetails
      - `screeningState` 'SKIPPED' | 'PENDING' | 'FAILED' | 'READY': The state of the AML report. - SKIPPED: No AML report was requested for the transaction. - PENDING: The AML report is still being processed by the provider. - FAILED: The AML report was not generated due to an error. - READY: The AML report was successfully generated.
      - `screeningPolicyResult` 'DENY' | 'ALLOW' | 'ALERT'
      - `resolved` boolean: Relevant only if transaction assets were freezed by an AML provider. (i.e., screening_policy_result is DENY).
    - `transfers` TransactionTransfer[]: If there one or more transfers in the transaction, they will be listed here.
      - `sourceAddress` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `destinationAddress` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `amount` string: Amount of the transfer.
      - `asset` string: Asset name.
      - `miningPrice` V2ConvertedValue: A message representing a converted value.
        - `amount` string: The amount in USD.
        - `currencyCode` string: The currency code of the amount. Always USD.
      - `note` string: An optional note to attach to the specific transfer (possible for batch transfers).
      - `unknownAmount` boolean: Whether the amount of this transfer is unknown to Utila. Set only for confidential token transfers whose encrypted amount could not be decrypted. When true, `amount` is reported as `0`.
    - `tokenAllowances` TransactionTokenAllowance[]: If there one or more token allowances in the transaction, they will be listed here.
      - `approverAddress` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `spenderAddress` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `asset` string: The asset to approve.
      - `amount` string: The amount to approve (allowance) in asset units. Example: `1.1`.
      - `miningPrice` V2ConvertedValue: A message representing a converted value.
        - `amount` string: The amount in USD.
        - `currencyCode` string: The currency code of the amount. Always USD.
    - `designatedSigners` string[]: 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` V2TransactionEVMTransaction
      - `fromAddress` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `toAddress` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `value` string: The amount to transfer in wei.
      - `data` string: Hex encoded transaction data. Example: `0xda82fb4c00000a` or `da82fb4c00000a`.
      - `fee` V2EVMTransactionGas
        - `gasLimit` string, int64: The amount of gas to use for the transaction.
        - `gasUsed` string: The amount of gas used by the transaction.
        - `gasPrice` string: A `0x`-prefixed hex string representing the gas price of the transaction. Used for legacy transactions (non EIP-1559).
        - `maxPriorityFeePerGas` string: A `0x`-prefixed hex string representing the maximum prioriy fee per gas unit the transaction can pay. Used for dynamic transactions (EIP-1559).
        - `maxFeePerGas` string: A `0x`-prefixed hex string representing the maximum fee per gas unit the transaction can pay. Used for dynamic transactions (EIP-1559).
      - `authorizationDetails` V2TransactionEVMTransactionAuthorizationDetails
        - `authorizationList` V2TransactionEVMTransactionAuthorization[]: The list of authorizations.
          - `signer` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `contractAddress` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `nonce` string, int64: The nonce of the account for the delegation.
          - `chainId` string: The chain ID of the delegation.
          - `signature` string, byte: The signature of the delegation.
      - `signature` string, byte: ECDSA signature (65 bytes) of the transaction. Available when the transaction has been signed. Encoded in standard EVM format: - Bytes [0-31]: R component (32 bytes, big-endian) - Bytes [32-63]: S component (32 bytes, big-endian) - Byte [64]: V component (recovery identifier)
      - `providedNonce` string: The nonce value explicitly provided by the user in the transaction request.
      - `nonce` string: The effective nonce value assigned to the transaction.
      - `chainId` string: The EIP-155 chain ID of the network this transaction targets. Decimal string (e.g. `1`, `11155111`).
    - `evmMessage` TransactionEVMMessage
      - `type` 'PERSONAL_SIGN' | 'SIGN_TYPED_DATA_V4': - PERSONAL_SIGN: A simple personal sign message. - SIGN_TYPED_DATA_V4: A structured message as defined by EIP-712. See https://eips.ethereum.org/EIPS/eip-712 for more information.
      - `message` string: The payload of the message as a plain UTF-8 string.
      - `signature` string, byte: ECDSA signature (65 bytes) of the message.
    - `tronPersonalSign` V2TransactionTronPersonalSign: A Tron (TIP-191) personal-sign message. Distinct from EVMMessage so a Tron personal sign is not represented as an EVM message.
      - `message` string: Best-effort human-readable payload: set only when the signed bytes are valid UTF-8. Empty for binary messages. Use `message_hex` for the exact, unambiguous bytes.
      - `signature` string, byte: ECDSA signature (65 bytes) of the message.
      - `messageHex` string: The exact signed payload as a hex string (e.g. "0xabcd"). Always set. This is authoritative; `message` is only a display convenience and cannot be used to recover the bytes unambiguously.
    - `evmAccountDelegation` V2TransactionEVMAccountDelegation
      - `signerAddress` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `contractAddress` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `chainId` string: The chain ID of the DELEGATION.
      - `nonce` string, int64: The nonce of the account for the delegation.
      - `signature` string, byte: ECDSA signature (65 bytes) of the delegation message.
      - `offsetNonce` boolean: Whether the selection nonce strategy is to offset the signer nonce by one. This is used usually for self delegation
      - `providedNonce` string, int64: The nonce provided by the user.
    - `tronTransaction` V2TransactionTronTransaction
      - `triggerSmartContract` V2TransactionTronTransactionTriggerSmartContract
        - `ownerAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `contractAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `callValue` string, int64: The amount of SUN passed into the contract (1 TRX = 1,000,000 SUN). Example: `500000`.
        - `data` string: Hex encoded transaction data. This field will be returned only in FULL view. Example: `0xa9059cbb0000000000000000000000002ed5dd8a98aea00ae32517742ea5289761b2710e0000000000000000000000000000000000000000000000000000000ba43b7400`.
      - `freezeBalanceV2` V2TransactionTronTransactionFreezeBalanceV2
        - `ownerAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `amount` string: Amount of TRX to be staked, in SUN. Example: `1500000`.
        - `resource` 'BANDWIDTH' | 'ENERGY'
        - `asset` string: The asset that is being staked. Example: `assets/native.tron-mainnet`.
      - `unfreezeBalanceV2` V2TransactionTronTransactionUnfreezeBalanceV2
        - `ownerAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `amount` string: Amount of TRX to be unstaked, in SUN. Example: `1500000`.
        - `resource` 'BANDWIDTH' | 'ENERGY'
        - `asset` string: The asset that is being unstaked. Example: `assets/native.tron-mainnet`.
      - `withdrawExpireUnfreeze` V2TransactionTronTransactionWithdrawExpireUnfreeze
        - `ownerAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `delegateResource` V2TransactionTronTransactionDelegateResource
        - `ownerAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `resource` 'BANDWIDTH' | 'ENERGY'
        - `amount` string: The amount of the resource to delegate, in SUN. Example: `1500000`.
        - `asset` string: The asset that is being delegated. Example: `assets/native.tron-mainnet`.
        - `receiverAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `lock` boolean: Whether to lock the delegation. Default: false.
        - `lockPeriod` string: The period to lock the delegation, in block numbers, 1 block ≈ 3 seconds. Example: `1000`.
      - `undelegateResource` V2TransactionTronTransactionUnDelegateResource
        - `ownerAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `resource` 'BANDWIDTH' | 'ENERGY'
        - `amount` string: The amount of the delegated resource to undelegate, in SUN. Example: `1500000`.
        - `asset` string: The asset that is being undelegated. Example: `assets/native.tron-mainnet`.
        - `receiverAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `cancelAllUnfreezeV2` V2TransactionTronTransactionCancelAllUnfreezeV2
        - `ownerAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `voteWitness` V2TransactionTronTransactionVoteWitness
        - `ownerAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `votes` V2TransactionTronTransactionVoteWitnessVote[], required: The votes to cast. Max 30 votes. Example: `[{"vote_address": "TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g", "vote_count": "1000"}]`
          - `voteAddress` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `voteCount` string: Example: `1000`.
      - `withdrawBalance` V2TransactionTronTransactionWithdrawBalance
        - `ownerAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `transferContract` TronTransactionTransferContract
        - `ownerAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `toAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `amount` string: Amount of TRX to transfer, in SUN (1 TRX = 1,000,000 SUN). Example: `1500000`.
      - `fee` V2TronTransactionFee
        - `usedSun` string: The amount of TRX burned on-chain by the sender wallet, in SUN.
        - `convertedValue` V2ConvertedValue: A message representing a converted value.
          - `amount` string: The amount in USD.
          - `currencyCode` string: The currency code of the amount. Always USD.
        - `bandwidth` V2TronResourceFee: Resource-level fee breakdown for a Tron resource (bandwidth or energy).
          - `consumed` string: The amount of the resource consumed.
          - `burned` string: The amount of TRX burned for this resource.
          - `convertedBurned` V2ConvertedValue: A message representing a converted value.
            - `amount` string: The amount in USD.
            - `currencyCode` string: The currency code of the amount. Always USD.
        - `energy` V2TronResourceFee: Resource-level fee breakdown for a Tron resource (bandwidth or energy).
          - `consumed` string: The amount of the resource consumed.
          - `burned` string: The amount of TRX burned for this resource.
          - `convertedBurned` V2ConvertedValue: A message representing a converted value.
            - `amount` string: The amount in USD.
            - `currencyCode` string: The currency code of the amount. Always USD.
        - `accountActivationFee` V2TronAccountActivationFee
          - `fee` string: The activation fee in SUN.
          - `convertedFee` V2ConvertedValue: A message representing a converted value.
            - `amount` string: The amount in USD.
            - `currencyCode` string: The currency code of the amount. Always USD.
        - `gasStationFee` V2TronGasStationFee
          - `order` string: The gas station order that paid for this transaction's resources. Format: `vaults/{vault}/gasStations/{gas_station}/orders/{order}`
          - `price` string: The price paid for the order, as a decimal string in `asset` units.
          - `asset` string: The asset the price is denominated in. Format: `assets/{asset}`
      - `signature` string, byte: ECDSA signature (65 bytes) of the transaction. Available when the transaction has been signed. Encoded in standard TRON format: - Bytes [0-31]: R component (32 bytes, big-endian) - Bytes [32-63]: S component (32 bytes, big-endian) - Byte [64]: V component (recovery identifier)
      - `expireTime` string, date-time: When the signed transaction expires on the TRON network (raw_data.expiration). Empty until the transaction is prepared for signature, or until raw data already includes expiration (user-supplied raw txs).
      - `refBlockBytes` string, byte: The reference block bytes of the transaction (raw_data.ref_block_bytes). Bytes 6-8 of the reference block number (2 bytes). Empty until the transaction is prepared for signature, or until raw data already includes it (user-supplied raw txs). Example (base64 in JSON): `j1g=`.
      - `refBlockHash` string, byte: The reference block hash of the transaction (raw_data.ref_block_hash). Bytes 8-16 of the reference block hash (8 bytes). Empty until the transaction is prepared for signature, or until raw data already includes it (user-supplied raw txs). Example (base64 in JSON): `7jHKhJbGGlE=`.
      - `timestamp` string, int64: The creation time of the transaction as set in its raw data (raw_data.timestamp), in milliseconds since the Unix epoch. Empty until the transaction is prepared for signature, or until raw data already includes it (user-supplied raw txs). Example: `1759838400000`.
    - `btcTransaction` TransactionBTCTransaction
      - `inputs` BTCTransactionUTXOIn[]: Transaction inputs.
        - `address` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `amount` string: Amount in asset unit (BTC).
        - `signingSession` string: The signing session which was used to sign the input. Available when the transaction has been prepared for signing / signed. Deprecated: Use request.signing_sessions instead.
        - `userSelected` boolean: Whether this input was explicitly selected by the user. When false, the input was automatically chosen by the coin-selection algorithm.
      - `outputs` BTCTransactionUTXOOut[]: Transaction outputs.
        - `address` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `amount` string: Amount in asset unit (BTC).
        - `change` boolean: True when this output is the change output.
        - `changeUserSelected` boolean: True when the change address was supplied by the user; false when auto-generated. Only meaningful when `change` is true.
        - `vout` integer: On-chain output index (vout) of this output within the transaction. Together with the transaction's chain id, `txid:vout` is the stable, canonical identifier of this output (matching QueryWalletUTXOs). Prefer it over the position of this output within `outputs`, which only reflects the vault-relevant outputs Utila retains and is not the on-chain index. Set once the transaction's on-chain identity is known — i.e. its transaction id is assigned: for outgoing transactions from the SIGNED state onward, and for incoming deposits once observed on-chain. Omitted for pending, pre-signing transactions.
      - `fee` string: Transaction fee in asset unit (BTC).
      - `asset` string: Asset name.
    - `btcPsbt` V2TransactionBTCPSBT: Details of a signed PSBT (Partially Signed Bitcoin Transaction). Returned when a PSBT signing request reaches the SIGNED state. The signed PSBT can be used by the dApp to finalize and broadcast.
      - `signedPsbt` string, byte: The signed PSBT data, encoded in base64 format per BIP-174. Only populated after the transaction reaches the SIGNED state. Contains partial signatures that the dApp can use to finalize and broadcast.
      - `inputs` BTCTransactionUTXOIn[]: The PSBT inputs (for display in approval UI). Reuses the existing BTCTransaction.UTXOIn type for consistency.
        - `address` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `amount` string: Amount in asset unit (BTC).
        - `signingSession` string: The signing session which was used to sign the input. Available when the transaction has been prepared for signing / signed. Deprecated: Use request.signing_sessions instead.
        - `userSelected` boolean: Whether this input was explicitly selected by the user. When false, the input was automatically chosen by the coin-selection algorithm.
      - `outputs` BTCTransactionUTXOOut[]: The PSBT outputs (for display in approval UI). Reuses the existing BTCTransaction.UTXOOut type for consistency.
        - `address` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `amount` string: Amount in asset unit (BTC).
        - `change` boolean: True when this output is the change output.
        - `changeUserSelected` boolean: True when the change address was supplied by the user; false when auto-generated. Only meaningful when `change` is true.
        - `vout` integer: On-chain output index (vout) of this output within the transaction. Together with the transaction's chain id, `txid:vout` is the stable, canonical identifier of this output (matching QueryWalletUTXOs). Prefer it over the position of this output within `outputs`, which only reflects the vault-relevant outputs Utila retains and is not the on-chain index. Set once the transaction's on-chain identity is known — i.e. its transaction id is assigned: for outgoing transactions from the SIGNED state onward, and for incoming deposits once observed on-chain. Omitted for pending, pre-signing transactions.
      - `fee` string: The transaction fee in BTC. Calculated from: sum(inputs) - sum(outputs).
    - `aptosTransaction` TransactionAptosTransaction
      - `sender` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `sequenceNumber` string, int64
      - `payloadBytes` string, byte
      - `decodedPayload` V2DecodedAptosTransactionPayload
        - `entryFunction` V2DecodedAptosEntryFunction
          - `function` string, required
          - `typeArguments` string[], required
          - `arguments` string[], required
      - `maxGasAmount` string, int64
      - `gasUnitPrice` string, int64
      - `expirationTime` string, date-time: In seconds.
      - `chainId` string, int64
    - `suiTransaction` TransactionSuiTransaction
      - `sender` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `gasBudget` string
      - `gasPrice` string
      - `expirationEpoch` string
      - `txBcsBytes` string, byte
      - `decodedTransaction` string
    - `suiSignPersonalMessage` V2TransactionSuiSignPersonalMessage
      - `signer` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `message` string, byte: The message to sign.
      - `signature` string, byte: The signature of the message.
    - `xrplTransaction` TransactionXRPLTransaction
      - `jsonTransactionData` object
    - `substrateTransaction` TransactionSubstrateTransaction
      - `fromAddress` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `nonce` string, int64: The nonce of the transaction.
      - `encodedCall` string
      - `call` SubstrateTransactionDecodedCall
        - `pallet` string
        - `palletIndex` integer
        - `method` string
        - `methodIndex` integer
        - `args` DecodedCallArg[]
          - `name` string
          - `type` string
          - `value` string
      - `genesisHash` string
    - `tonTransaction` TransactionTonTransaction
      - `sender` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `seqno` string, int64: The sequence number of the transaction.
      - `messages` TransactionTonTransactionMessage[]
        - `address` string, required: The destination of the call.
        - `amount` string, required: Native Nanoton amount to send.
        - `payload` string
        - `stateInit` string: The initial state of the message.
      - `memo` string: The memo of the transaction.
      - `validUntil` string, int64: The time the transaction is valid until.
      - `amount` string: The native amount passed to the transaction.
    - `tonSignData` V2TransactionTonSignData
      - `schemaCrc` string, int64: Indicates the layout of payload cell that in turn defines domain separation. This is a descriptor of the content of the cell.
      - `cell` string: The payload to sign.
      - `publicKey` string: The public key of the signer.
      - `timestamp` string, int64: The time at which the signature was created.
      - `signature` string: The signature of the typed data.
    - `tonProof` V2TransactionTonProof
      - `address` string: The address of the signer. In Raw address format. Example: `0:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef`.
      - `appDomain` string
      - `payload` string: The payload to sign.
      - `timestamp` string, int64: The time at which the signature was created.
      - `signature` string: The signature of the payload.
    - `solanaSignMessage` V2TransactionSolanaSignMessage
      - `signer` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `message` string, byte: The message to sign.
      - `signature` string: The signature of the message.
    - `solanaTransaction` V2TransactionSolanaTransaction
      - `fee` string: Transaction fee in lamports.
      - `rawTransaction` string, byte: The full transaction payload, serialized. The message and signatures, encoded in base64 format.
      - `utilaSigners` Apiv2Address[]: The utila addresses used to sign the transaction. Must be the same length as request.signing_sessions.
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `replaceBlockhash` boolean: Indicates whether the recent blockhash was or will be replaced with the most recent blockhash before signing.
      - `memo` string: The on-chain memo attached to the transfer via the Memo program, if any.
    - `thetaTransaction` TransactionThetaTransaction: For Theta transaction: Low level transaction details.
      - `sendTransaction` ThetaTransactionSendTransaction: Represents a Theta send transaction with inputs, outputs, and fee.
        - `inputs` ThetaTransactionTxInput[]: The transaction inputs that provide the coins to be transferred.
          - `address` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `coins` ThetaTransactionCoins: Represents the amount of THETA and TFUEL coins in wei units.
            - `thetaWei` string: The amount of THETA in wei.
            - `tfuelWei` string: The amount of TFUEL in wei.
        - `outputs` ThetaTransactionTxOutput[]: The transaction outputs that receive the transferred coins.
          - `address` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `coins` ThetaTransactionCoins: Represents the amount of THETA and TFUEL coins in wei units.
            - `thetaWei` string: The amount of THETA in wei.
            - `tfuelWei` string: The amount of TFUEL in wei.
        - `fee` ThetaTransactionCoins: Represents the amount of THETA and TFUEL coins in wei units.
          - `thetaWei` string: The amount of THETA in wei.
          - `tfuelWei` string: The amount of TFUEL in wei.
    - `stellarTransaction` V2TransactionStellarTransaction
      - `sourceAccountAddress` Apiv2Address
        - `value` string: The actual address.
        - `infoRef` string: 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`.
        - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `sequenceNumber` string: The sequence number of the transaction.
      - `fee` string, int64: The fee paid for the transaction in stroops.
      - `memo` V2StellarMemo
        - `type` 'TEXT' | 'ID' | 'HASH' | 'RETURN', required: - TEXT: A text memo. Limited to 28 bytes. - ID: A id memo. An unsigned 64-bit integer. - HASH: A hash memo. A hex string of the hash with a `0x` prefix. - RETURN: A return memo. A hex string of the return hash with a `0x` prefix.
        - `data` string, required: The data of the memo.
      - `timeBounds` TransactionStellarTransactionStellarTimeBounds
        - `minUnixTime` string, int64
        - `maxUnixTime` string, int64
      - `operations` StellarTransactionStellarOperation[]: The operations in the transaction supported by utila.
        - `sourceAccountAddress` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
        - `rawBody` string, byte
        - `decodedBody` StellarTransactionDecodedOperationBody
          - `payment` StellarTransactionDecodedOperationBodyPayment
            - `destinationAddress` Apiv2Address
              - …
            - `asset` string: The asset of the payment. Example: `USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`.
            - `assetRef` string: A weak reference to the asset. The reference is not guaranteed to be valid. Example: `assets/asset.stellar-mainnet.USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`.
            - `amount` string: The amount of the payment. Example: `10000000` (1 XLM in stroops).
          - `createAccount` StellarTransactionDecodedOperationBodyCreateAccount
            - `destinationAddress` Apiv2Address
              - …
            - `startingBalance` string
          - `changeTrust` StellarTransactionDecodedOperationBodyChangeTrust
            - `asset` string: The asset of the change trust. Example: `assets/asset.stellar-mainnet.USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`.
            - `assetRef` string: A weak reference to the asset. The reference is not guaranteed to be valid. Example: `assets/asset.stellar-mainnet.USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`.
            - `limit` string: The limit of the change trust. For unlimited amount, this field will be empty. Example: `10000000` (1 XLM in stroops).
            - `unlimited` boolean: Whether the limit is considered by utila as unlimited.
          - `sep41Payment` StellarTransactionDecodedOperationBodySEP41Payment
            - `spenderAddress` Apiv2Address
              - …
            - `sourceAddress` Apiv2Address
              - …
            - `destinationAddress` Apiv2Address
              - …
            - `contractAddress` string: Example: `CB3WFHO46J3WGRAIARNT3XD4Z7NR5SZDNG3SVKN27GOTJAQGQFAH2KAJ`.
            - `assetRef` string: A weak reference to the asset. The reference is not guaranteed to be valid. Example: `assets/asset.stellar-mainnet.CB3WFHO46J3WGRAIARNT3XD4Z7NR5SZDNG3SVKN27GOTJAQGQFAH2KAJ`.
            - `rawAmount` string: The raw amount (without decimals) of the payment. Example: `10000000`.
          - `sep41TokenApproval` StellarTransactionDecodedOperationBodySEP41TokenApproval
            - `sourceAddress` Apiv2Address
              - …
            - `spenderAddress` Apiv2Address
              - …
            - `contractAddress` string: The token whose allowance is being set. Example: `CB3WFHO46J3WGRAIARNT3XD4Z7NR5SZDNG3SVKN27GOTJAQGQFAH2KAJ`.
            - `assetRef` string: A weak reference to the asset. The reference is not guaranteed to be valid. Example: `assets/asset.stellar-mainnet.CB3WFHO46J3WGRAIARNT3XD4Z7NR5SZDNG3SVKN27GOTJAQGQFAH2KAJ`.
            - `rawAmount` string: The allowance raw amount (without decimals) made available to the spender. Example: `10000000`.
            - `liveUntilLedgerNumber` string, int64: The ledger number where this allowance expires.
      - `rawXdrEnvelope` string, byte
    - `aleoTransaction` TransactionAleoTransaction
      - `feeMicrocredits` string: Total fee paid in microcredits.
      - `feeOperation` TransactionFeePublic: Public fee transition details.
        - `amountMicrocredits` string
        - `priorityFeeMicrocredits` string
        - `payer` Apiv2Address
          - `value` string: The actual address.
          - `infoRef` string: 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`.
          - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
      - `operations` TransactionAleoOperation[]: One entry per execution transition (fee transition excluded). Ordered as they appear on-chain (root first, then internal children).
        - `program` string: e.g. "credits.aleo", "usad_stablecoin.aleo". This also identifies the asset being operated on in this transition.
        - `function` string: e.g. "transfer_private", "join".
        - `asset` string: The asset identifier for this transition (derived from program_id).
        - `internal` boolean: True for child transitions generated by internal program calls (e.g. credits.aleo/join called inside autojoin_credits_15_16.aleo/join_16).
        - `transferPublic` TransactionTransferPublic
          - `sender` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `recipient` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `amount` string
        - `transferPublicAsSigner` TransactionTransferPublicAsSigner
          - `signer` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `recipient` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `amount` string
        - `transferPrivate` TransactionTransferPrivate
          - `sender` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `recipient` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `sentAmount` string: Amount received by the recipient.
          - `changeAmount` string: Remainder returned to the sender.
        - `transferPrivateToPublic` TransactionTransferPrivateToPublic
          - `sender` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `recipient` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `sentAmount` string: Amount credited to the recipient's public account.
          - `changeAmount` string: Remainder returned to the sender as a record.
        - `transferPublicToPrivate` TransactionTransferPublicToPrivate
          - `sender` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `recipient` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `amount` string
        - `join` TransactionJoinOperation: credits.aleo/join — multiple records merged into one or more outputs.
          - `owner` Apiv2Address
            - `value` string: The actual address.
            - `infoRef` string: 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`.
            - `private` boolean: True when the address is redacted because it belongs to a private Aleo record. When set, `value` is empty.
          - `inputs` TransactionAleoRecord[]
            - `commitment` string
            - `amount` string
          - `outputs` TransactionAleoRecord[]
            - `commitment` string
            - `amount` string
        - `unknown` TransactionUnknownOperation: Catch-all for custom / third-party programs.
          - `inputs` TransactionTransitionValue[]
            - `type` string: "record", "public", "private", or "future".
            - `value` string: Plaintext value (decrypted if private).
          - `outputs` TransactionTransitionValue[]
            - `type` string: "record", "public", "private", or "future".
            - `value` string: Plaintext value (decrypted if private).
    - `createTime` string, date-time: The time at which the transaction was created in the system.
    - `mineTime` string, date-time: The time at which the transaction was mined.
    - `confirmTime` string, date-time: The time at which the transaction was confirmed.
    - `expireTime` string, date-time: The time at which the transaction was expired.
    - `spam` boolean
    - `annotations` object: Client-defined key/value metadata attached at initiation via InitiateTransactionRequest.annotations. Stored but never interpreted by Utila, and visible read-only to every party who can view the transaction. Avoid storing secrets or sensitive data here.
    - `replacementTransaction` string: If the current transaction is dropped, the transaction that replaced it will be listed here.
  - `referencedResources` object: A mapping of the referenced resources in the message. The key is the resource name and the value is the corresponding resource.
  - `referencedAddressesInfo` object: A mapping of the referenced addresses in the message. The key is the address and the value is the corresponding address info.

## Changes

- **2026-11-03** `c4a910d79740`: 3 breaking, 9 warning, 180 info
  - added `#/components/schemas/v2StellarTransactionMemo` to the `details/allOf[#/components/schemas/v2InitiateTransactionRequestDetails]/assetTransfer/allOf[#/components/schemas/v2AssetTransfer]/stellarOptions/allOf[subschema #1: Blockchain specific options for Stellar Asset Transfer]/memo` request property `allOf` list
  - added `#/components/schemas/v2StellarTransactionMemo` to the `details/allOf[#/components/schemas/v2InitiateTransactionRequestDetails]/stellarTransaction/allOf[#/components/schemas/apiv2StellarTransaction]/memo` request property `allOf` list
  - the response property `referencedResources/additionalProperties/addressBookEntry/allOf[#/components/schemas/v2AddressBookEntry]/network` became optional for the status `200`
  - removed `#/components/schemas/apiv2StellarTransactionMemo` from the `details/allOf[#/components/schemas/v2InitiateTransactionRequestDetails]/assetTransfer/allOf[#/components/schemas/v2AssetTransfer]/stellarOptions/allOf[subschema #1: Blockchain specific options for Stellar Asset Transfer]/memo` request property `allOf` list
  - …188 more

[Operation history](https://skmtc.dev/utila/apis/utila-api/changes/v2/vaults/:vault_id/transactions:initiate/post.md)

---

[API](https://skmtc.dev/utila/apis/utila-api.md) - [All operations](https://skmtc.dev/utila/apis/utila-api/llms.txt) - [OpenAPI document](https://skmtc.dev/utila/apis/utila-api/revisions/c4a910d79740?raw)
