---
title: "Predict Transaction"
method: POST
path: "/api/v1/transactions/predict"
tags: ["Transactions"]
---

# Predict Transaction

`POST /api/v1/transactions/predict`

Simulate the transaction and changes in token
balances, in addition to the fee estimation.

## Request body

- union
  - TransactionPredictAptosMessageRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'aptos_message', required — Aptos message type.
    - `details` AptosPersonalMessageRequest, required
      - `type` 'personal_message_type', required — Personal message standard.
      - `should_include_address` boolean, required — Whether the address should be included in the signed message.
      - `application` string, required — The application that the message is for.
      - `should_include_application` boolean, required — Whether the application should be included in the signed message.
      - `chain` 'aptos_mainnet' | 'aptos_testnet' | 'aptos_movement_mainnet' | 'aptos_movement_testnet', required
      - `should_include_chain` boolean, required — Whether the chain should be included in the signed message.
      - `message_to_sign` string, required — The message to be signed, encoded in base64.
      - `nonce` string, required — The nonce of the message.
  - TransactionPredictAptosTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'aptos_transaction', required — Aptos transaction type.
    - `details` union, required
      - PredictAptosTransferRequest
        - `fee_payer` TransactionFeePayerVault
          - `type` 'vault', required
          - `vault_id` string, uuid, required — The unique identifier of the vault that pays the fee.
        - `type` 'aptos_transfer', required — An Aptos transfer transaction. A transaction of this kind is for transferring native currency or a coin.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `gas_config` AptosGasConfigRequest
          - `max_gas` string — The maximum gas amount payed in the transaction (in Octa).
          - `price` union, required — The price details per gas unit.
            - AptosCustomGasPriceRequest
              - …
            - AptosPriorityGasPriceRequest
              - …
        - `with_external_fee_payer` boolean — If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.
        - `to` union, required
          - AptosRecipientHex
            - `type` 'hex', required — The type of the recipient.
            - `address` string, required — The address of the recipient.
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
          - RecipientContactId
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `value` union, required — The number of units of currency to transfer.
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
        - `asset_identifier` AptosAssetIdentifierRequest, required
          - `type` 'aptos', required — Aptos asset identifier type.
          - `details` union, required
            - AptosNativeAssetIdentifierRequest
              - …
            - AptosCoinAssetIdentifierRequest
              - …
            - AptosNewCoinAssetIdentifierRequest
              - …
      - PredictAptosSerializedRawTransactionRequest
        - `type` 'aptos_serialized_entry_point_payload', required — An Aptos transaction with serialized entry point payload.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `gas_config` AptosGasConfigRequest
          - `max_gas` string — The maximum gas amount payed in the transaction (in Octa).
          - `price` union, required — The price details per gas unit.
            - AptosCustomGasPriceRequest
              - …
            - AptosPriorityGasPriceRequest
              - …
        - `with_external_fee_payer` boolean — If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.
        - `chain` 'aptos_mainnet' | 'aptos_testnet' | 'aptos_movement_mainnet' | 'aptos_movement_testnet', required
        - `serialized_transaction_payload` string, required — The serialized transaction payload in base64 format.
  - TransactionPredictArchTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'arch_transaction', required — The type of the transaction.
    - `details` CreateArchTransferRequest, required
      - `type` 'arch_transfer', required — A Arch transfer transaction is for transferring native currency or a token.
      - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
      - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
      - `push_mode` 'auto' | 'manual' | 'deferred'
      - `to` union, required — The recipient of the transfer. Specify either a general address (a base58 string) or the id of another vault (a UUID string).
        - ArchRecipientBase58Repr
          - `type` 'address', required — The type of the recipient.
          - `address` string, required — The address of the recipient.
        - RecipientVaultId
          - `type` 'vault_id', required — The type of the recipient.
          - `vault_id` string, uuid, required — The id of the recipient vault.
        - RecipientContactId
          - `type` 'contact_id', required — The type of the recipient.
          - `contact_id` string, uuid, required — The id of the address book contact.
      - `value` union, required — The number of units of currency to transfer.
        - CreateRequestExplicitAmount
          - `type` 'value', required
          - `value` string, required — The specific amount to be passed.
        - CreateRequestMaxAmount
          - `type` 'max', required
      - `asset_identifier` ArchAssetIdentifierRequest, required
        - `type` 'arch', required — Arch asset identifier type.
        - `details` union, required
          - ArchNativeAssetIdentifierRequest
            - `type` 'native', required — Arch asset identifier type.
            - `chain` 'arch_mainnet' | 'arch_testnet', required
          - ArchAplTokenAssetIdentifierRequest
            - `type` 'apl_token', required — APL token asset identifier type.
            - `token` ArchAddressRequest, required — Address represents a blockchain address.
              - …
  - TransactionPredictCantonTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'canton_transaction', required — Canton transaction type.
    - `details` union, required
      - CreateCantonTransferRequest
        - `type` 'canton_transfer', required — A Canton transfer transaction for transferring native currency or tokens.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `to` union, required — The recipient of the transfer. Specify either a general address, the ID of another vault, or a contact ID.
          - CantonRecipientAddress
            - `type` 'address', required — The type of the recipient.
            - `address` string, required — The address of the recipient.
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
          - RecipientContactId
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `value` union, required — The number of units of currency to transfer.
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
        - `asset_identifier` CantonAssetIdentifierRequest, required
          - `type` 'canton', required — Canton asset identifier type.
          - `details` union, required
            - CantonNativeAssetIdentifierRequest
              - …
            - CantonCip56TokenAssetIdentifierRequest
              - …
        - `memo` string — Optional memo to include with the transaction.
      - CreateCantonPartyAllocationRequest
        - `type` 'canton_party_allocation', required — A Canton party allocation transaction for registering an external party on a node.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `chain` 'canton_mainnet' | 'canton_testnet', required
      - CreateCantonApproveTransferRequest
        - `type` 'canton_approve_transfer', required — A Canton transaction that approves a specific incoming transfer transaction.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `transaction_id` string, uuid, required — The transaction id to approve.
        - `chain` 'canton_mainnet' | 'canton_testnet', required
      - CreateCantonPreApprovalSetupRequest
        - `type` 'canton_pre_approval_setup', required — A Canton transaction that sets up a transfer pre-approval for auto-accepting incoming transfers.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `asset_identifier` CantonAssetIdentifierRequest, required
          - `type` 'canton', required — Canton asset identifier type.
          - `details` union, required
            - CantonNativeAssetIdentifierRequest
              - …
            - CantonCip56TokenAssetIdentifierRequest
              - …
  - TransactionPredictCosmosTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'cosmos_transaction', required — The type of the transaction.
    - `details` union, required — Transaction details.
      - TypedCosmosRawTransactionRequest
        - `type` 'cosmos_raw_transaction', required — A cosmos raw transaction is for any operation.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `chain` 'cosmos_agoric-3' | 'cosmos_akashnet-2' | 'cosmos_archway-1' | 'cosmos_axelar-dojo-1' | 'cosmos_bbn-1' | 'cosmos_celestia' | 'cosmos_cosmoshub-4' | 'cosmos_dydx-mainnet-1' | 'cosmos_dydx-testnet-4' | 'cosmos_dymension_1100-1' | 'cosmos_injective-1' | 'cosmos_neutron-1' | 'cosmos_nillion-1' | 'cosmos_noble-1' | 'cosmos_osmosis-1' | 'cosmos_provider' | 'cosmos_ssc-1' | 'cosmos_pacific-1' | 'cosmos_stride-1' | 'cosmos_thorchain-1' | 'cosmos_mantra-1', required
        - `request_data` union, required — Request data.
          - AminoRequestData
            - `format` 'amino', required
            - `messages` AminoMessage[], required — List of messages in amino format.
              - …
            - `memo` string — Transaction memo.
            - `std_fee` StdFeeRequest
              - …
            - `timeout_height` integer — Timeout height for this transaction.
          - DirectRequestData
            - `format` 'direct', required
            - `body` string, required — Body bytes, encoded in base64 format.
            - `auth_info` string, required — AuthInfo bytes, encoded in base64 format.
            - `account_number` string — Account number of signer.
      - TypedCosmosTransferRequest
        - `type` 'cosmos_transfer', required — A Cosmos transfer transaction. A transaction of this kind is for transferring Cosmos assets.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `to` union, required — The recipient of the transfer. Specify either a general address, the ID of another vault, or a contact ID.
          - CosmosTransferToAddressRequest
            - `type` 'address', required
            - `address` CosmosBechAddress, required
              - …
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
          - RecipientContactId
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `asset_identifier` CosmosAssetIdentifierRequest, required
          - `type` 'cosmos', required — Cosmos asset identifier type.
          - `details` union, required
            - CosmosNativeAssetIdentifierRequest
              - …
            - CosmosTokenAssetIdentifierRequest
              - …
        - `value` union, required — Specify one of the following: <ul><li>`value`<li>`max`</ul>
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
        - `memo` string — Transaction memo.
  - TransactionPredictCosmosMessageRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'cosmos_message', required — The type of the transaction.
    - `details` CosmosArbitraryMessageRequest, required
      - `type` 'arbitrary_message_type', required — Arbitrary message standard.
      - `chain` 'cosmos_agoric-3' | 'cosmos_akashnet-2' | 'cosmos_archway-1' | 'cosmos_axelar-dojo-1' | 'cosmos_bbn-1' | 'cosmos_celestia' | 'cosmos_cosmoshub-4' | 'cosmos_dydx-mainnet-1' | 'cosmos_dydx-testnet-4' | 'cosmos_dymension_1100-1' | 'cosmos_injective-1' | 'cosmos_neutron-1' | 'cosmos_nillion-1' | 'cosmos_noble-1' | 'cosmos_osmosis-1' | 'cosmos_provider' | 'cosmos_ssc-1' | 'cosmos_pacific-1' | 'cosmos_stride-1' | 'cosmos_thorchain-1' | 'cosmos_mantra-1', required
      - `data` union, required
        - CosmosMessageStrData
          - `type` 'string', required — The type of the Cosmos message data.
          - `data` string, required — The data as plain string.
        - CosmosMessageBase64Data
          - `type` 'base64', required — The type of the Cosmos message data.
          - `data` string, required — The data encoded in base64.
  - TransactionPredictEvmMessageRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'evm_message', required — The type of the transaction.
    - `details` union, required
      - TransactionDetailsEvmTypedMessageRequest
        - `type` 'typed_message_type', required — The type of the EVM message.
        - `chain` union, required — The EVM chain name or ID.
          - 'arbitrum_mainnet' | 'arbitrum_sepolia' | 'aster_mainnet' | 'avalanche_chain' | 'avalanche_fuji' | 'base_mainnet' | 'berachain_mainnet' | 'blast_mainnet' | 'bsc_mainnet' | 'canto_mainnet' | 'clink_mainnet' | 'clink_testnet' | 'conflux_mainnet' | 'dymension_mainnet' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_mainnet' | 'ethereum_sepolia' | 'fantom_mainnet' | 'flare_mainnet' | 'flare_testnet' | 'gnosis_mainnet' | 'hypercore_mainnet' | 'hyperevm_mainnet' | 'ink_mainnet' | 'kava_mainnet' | 'katana_mainnet' | 'linea_mainnet' | 'optimism_mainnet' | 'pharos_mainnet' | 'plasma_mainnet' | 'manta_pacific_mainnet' | 'mantle_mainnet' | 'merlin_mainnet' | 'monad_mainnet' | 'polygon_mainnet' | 'polygon_mumbai' | 'polygon_zkevm_mainnet' | 'reya_mainnet' | 'robinhood_mainnet' | 'rootstock_mainnet' | 'scroll_mainnet' | 'sei_mainnet' | 'sonic_mainnet' | 'tempo_mainnet' | 'unichain_mainnet' | 'xai_mainnet' | 'x_layer_mainnet' | 'zero_gravity_mainnet' | 'zeta_mainnet' | 'zklink_nova_mainnet' | 'zksync_era_mainnet'
          - integer — The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>196=`x_layer_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1337=`hypercore_mainnet`</li><li>1666=`aster_mainnet`</li><li>1672=`pharos_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>4217=`tempo_mainnet`</li><li>4663=`robinhood_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43113=`avalanche_fuji`</li><li>43114=`avalanche_chain`</li><li>57073=`ink_mainnet`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li></ul>
          - string — The unique EVM chain ID. </br>Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_<numeric_chain_id>` if one was added to your organization. <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_30"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_130"`</li><li>`"evm_137"`</li><li>`"evm_143"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_196"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_999"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1337"`</li><li>`"evm_1666"`</li><li>`"evm_1672"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_4217"`</li><li>`"evm_4663"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_8819"`</li><li>`"evm_9745"`</li><li>`"evm_16661"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43113"`</li><li>`"evm_43114"`</li><li>`"evm_57073"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_747474"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_rootstock_mainnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_unichain_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_monad_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_x_layer_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_hyperevm_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_hypercore_mainnet"`</li><li>`"evm_aster_mainnet"`</li><li>`"evm_pharos_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_tempo_mainnet"`</li><li>`"evm_robinhood_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_clink_testnet"`</li><li>`"evm_plasma_mainnet"`</li><li>`"evm_zero_gravity_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_fuji"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_ink_mainnet"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_katana_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li></ul>
        - `raw_data` string, required — The raw data of the message to be signed, provided as a string or hex-encoded.
      - TransactionDetailsEvmTypedV1MessageRequest
        - `type` 'typed_message_type_v1', required — The type of the EVM message.
        - `chain` union, required — The EVM chain name or ID.
          - 'arbitrum_mainnet' | 'arbitrum_sepolia' | 'aster_mainnet' | 'avalanche_chain' | 'avalanche_fuji' | 'base_mainnet' | 'berachain_mainnet' | 'blast_mainnet' | 'bsc_mainnet' | 'canto_mainnet' | 'clink_mainnet' | 'clink_testnet' | 'conflux_mainnet' | 'dymension_mainnet' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_mainnet' | 'ethereum_sepolia' | 'fantom_mainnet' | 'flare_mainnet' | 'flare_testnet' | 'gnosis_mainnet' | 'hypercore_mainnet' | 'hyperevm_mainnet' | 'ink_mainnet' | 'kava_mainnet' | 'katana_mainnet' | 'linea_mainnet' | 'optimism_mainnet' | 'pharos_mainnet' | 'plasma_mainnet' | 'manta_pacific_mainnet' | 'mantle_mainnet' | 'merlin_mainnet' | 'monad_mainnet' | 'polygon_mainnet' | 'polygon_mumbai' | 'polygon_zkevm_mainnet' | 'reya_mainnet' | 'robinhood_mainnet' | 'rootstock_mainnet' | 'scroll_mainnet' | 'sei_mainnet' | 'sonic_mainnet' | 'tempo_mainnet' | 'unichain_mainnet' | 'xai_mainnet' | 'x_layer_mainnet' | 'zero_gravity_mainnet' | 'zeta_mainnet' | 'zklink_nova_mainnet' | 'zksync_era_mainnet'
          - integer — The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>196=`x_layer_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1337=`hypercore_mainnet`</li><li>1666=`aster_mainnet`</li><li>1672=`pharos_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>4217=`tempo_mainnet`</li><li>4663=`robinhood_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43113=`avalanche_fuji`</li><li>43114=`avalanche_chain`</li><li>57073=`ink_mainnet`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li></ul>
          - string — The unique EVM chain ID. </br>Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_<numeric_chain_id>` if one was added to your organization. <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_30"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_130"`</li><li>`"evm_137"`</li><li>`"evm_143"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_196"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_999"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1337"`</li><li>`"evm_1666"`</li><li>`"evm_1672"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_4217"`</li><li>`"evm_4663"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_8819"`</li><li>`"evm_9745"`</li><li>`"evm_16661"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43113"`</li><li>`"evm_43114"`</li><li>`"evm_57073"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_747474"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_rootstock_mainnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_unichain_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_monad_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_x_layer_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_hyperevm_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_hypercore_mainnet"`</li><li>`"evm_aster_mainnet"`</li><li>`"evm_pharos_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_tempo_mainnet"`</li><li>`"evm_robinhood_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_clink_testnet"`</li><li>`"evm_plasma_mainnet"`</li><li>`"evm_zero_gravity_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_fuji"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_ink_mainnet"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_katana_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li></ul>
        - `raw_data` string, required — The raw data of the message to be signed, provided as a string or hex-encoded.
      - TransactionDetailsEvmPersonalMessageRequest
        - `type` 'personal_message_type', required — The type of the EVM message.
        - `chain` union, required — The EVM chain name or ID.
          - 'arbitrum_mainnet' | 'arbitrum_sepolia' | 'aster_mainnet' | 'avalanche_chain' | 'avalanche_fuji' | 'base_mainnet' | 'berachain_mainnet' | 'blast_mainnet' | 'bsc_mainnet' | 'canto_mainnet' | 'clink_mainnet' | 'clink_testnet' | 'conflux_mainnet' | 'dymension_mainnet' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_mainnet' | 'ethereum_sepolia' | 'fantom_mainnet' | 'flare_mainnet' | 'flare_testnet' | 'gnosis_mainnet' | 'hypercore_mainnet' | 'hyperevm_mainnet' | 'ink_mainnet' | 'kava_mainnet' | 'katana_mainnet' | 'linea_mainnet' | 'optimism_mainnet' | 'pharos_mainnet' | 'plasma_mainnet' | 'manta_pacific_mainnet' | 'mantle_mainnet' | 'merlin_mainnet' | 'monad_mainnet' | 'polygon_mainnet' | 'polygon_mumbai' | 'polygon_zkevm_mainnet' | 'reya_mainnet' | 'robinhood_mainnet' | 'rootstock_mainnet' | 'scroll_mainnet' | 'sei_mainnet' | 'sonic_mainnet' | 'tempo_mainnet' | 'unichain_mainnet' | 'xai_mainnet' | 'x_layer_mainnet' | 'zero_gravity_mainnet' | 'zeta_mainnet' | 'zklink_nova_mainnet' | 'zksync_era_mainnet'
          - integer — The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>196=`x_layer_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1337=`hypercore_mainnet`</li><li>1666=`aster_mainnet`</li><li>1672=`pharos_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>4217=`tempo_mainnet`</li><li>4663=`robinhood_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43113=`avalanche_fuji`</li><li>43114=`avalanche_chain`</li><li>57073=`ink_mainnet`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li></ul>
          - string — The unique EVM chain ID. </br>Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_<numeric_chain_id>` if one was added to your organization. <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_30"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_130"`</li><li>`"evm_137"`</li><li>`"evm_143"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_196"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_999"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1337"`</li><li>`"evm_1666"`</li><li>`"evm_1672"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_4217"`</li><li>`"evm_4663"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_8819"`</li><li>`"evm_9745"`</li><li>`"evm_16661"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43113"`</li><li>`"evm_43114"`</li><li>`"evm_57073"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_747474"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_rootstock_mainnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_unichain_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_monad_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_x_layer_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_hyperevm_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_hypercore_mainnet"`</li><li>`"evm_aster_mainnet"`</li><li>`"evm_pharos_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_tempo_mainnet"`</li><li>`"evm_robinhood_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_clink_testnet"`</li><li>`"evm_plasma_mainnet"`</li><li>`"evm_zero_gravity_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_fuji"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_ink_mainnet"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_katana_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li></ul>
        - `raw_data` string, required — The raw data of the message to be signed, provided as a string or hex-encoded.
  - TransactionPredictEvmTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'evm_transaction', required — The type of the transaction.
    - `details` union, required
      - TransactionPredictEvmRawTransactionRequest
        - `fee_payer` TransactionFeePayerVault
          - `type` 'vault', required
          - `vault_id` string, uuid, required — The unique identifier of the vault that pays the fee.
        - `type` 'evm_raw_transaction', required — An EVM raw transaction receives raw data and is for general transactions.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `use_mev_protected_node` boolean — Use a MEV protected node to send the transaction. By using a MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `gas` union — The gas details of the transaction. The details depend on which option you choose:<ul><li>Gas Priority or <li>Custom Gas Request </ul>
          - GasPriorityRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
          - CustomGasRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'custom', required
            - `details` union, required — Using the Custom Gas Request option, you specify `gas_limit`, as well as the following gas details: <ul><li>If you choose `legacy` (meaning a chain where gas price can be specified exactly), you must specify only the `price` of a gas unit. <li>If you choose `dynamic` (meaning a chain where gas price can be determined dynamically), you must specify two additional values: <ul><li>`max_priority_fee_per_gas`, the maximum tip amount for mining your transaction <li>`max_fee_per_gas`, the maximum amount you are willing to pay for the fee (ultimately, either you'll pay this amount, or less, depending on the network base fee). </ul></ul> <br> Note that the Legacy gas price setting is allowed on dynamic (EIP-1559) networks as well. <br> You can get information on gas fees for different chains by examining the response to a call to [List Chains](https://documentation.fordefi.com/redoc/#operation/list_chains_api_v1_blockchains_get). More information is provided in [EVM chains and their fee mechanisms](https://docs.fordefi.com/user-guide/manage-transactions/understand-transaction-fees/evm-chains#evm-chains-and-their-fee-mechanisms).
              - …
        - `chain` union, required — The EVM chain name or ID.
          - 'arbitrum_mainnet' | 'arbitrum_sepolia' | 'aster_mainnet' | 'avalanche_chain' | 'avalanche_fuji' | 'base_mainnet' | 'berachain_mainnet' | 'blast_mainnet' | 'bsc_mainnet' | 'canto_mainnet' | 'clink_mainnet' | 'clink_testnet' | 'conflux_mainnet' | 'dymension_mainnet' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_mainnet' | 'ethereum_sepolia' | 'fantom_mainnet' | 'flare_mainnet' | 'flare_testnet' | 'gnosis_mainnet' | 'hypercore_mainnet' | 'hyperevm_mainnet' | 'ink_mainnet' | 'kava_mainnet' | 'katana_mainnet' | 'linea_mainnet' | 'optimism_mainnet' | 'pharos_mainnet' | 'plasma_mainnet' | 'manta_pacific_mainnet' | 'mantle_mainnet' | 'merlin_mainnet' | 'monad_mainnet' | 'polygon_mainnet' | 'polygon_mumbai' | 'polygon_zkevm_mainnet' | 'reya_mainnet' | 'robinhood_mainnet' | 'rootstock_mainnet' | 'scroll_mainnet' | 'sei_mainnet' | 'sonic_mainnet' | 'tempo_mainnet' | 'unichain_mainnet' | 'xai_mainnet' | 'x_layer_mainnet' | 'zero_gravity_mainnet' | 'zeta_mainnet' | 'zklink_nova_mainnet' | 'zksync_era_mainnet'
          - integer — The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>196=`x_layer_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1337=`hypercore_mainnet`</li><li>1666=`aster_mainnet`</li><li>1672=`pharos_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>4217=`tempo_mainnet`</li><li>4663=`robinhood_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43113=`avalanche_fuji`</li><li>43114=`avalanche_chain`</li><li>57073=`ink_mainnet`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li></ul>
          - string — The unique EVM chain ID. </br>Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_<numeric_chain_id>` if one was added to your organization. <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_30"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_130"`</li><li>`"evm_137"`</li><li>`"evm_143"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_196"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_999"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1337"`</li><li>`"evm_1666"`</li><li>`"evm_1672"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_4217"`</li><li>`"evm_4663"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_8819"`</li><li>`"evm_9745"`</li><li>`"evm_16661"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43113"`</li><li>`"evm_43114"`</li><li>`"evm_57073"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_747474"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_rootstock_mainnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_unichain_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_monad_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_x_layer_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_hyperevm_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_hypercore_mainnet"`</li><li>`"evm_aster_mainnet"`</li><li>`"evm_pharos_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_tempo_mainnet"`</li><li>`"evm_robinhood_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_clink_testnet"`</li><li>`"evm_plasma_mainnet"`</li><li>`"evm_zero_gravity_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_fuji"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_ink_mainnet"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_katana_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li></ul>
        - `to` string — The address of the recipient of the transaction, or null for contract creation.
        - `value` string, required — The value of native currency to send this transaction with.
        - `data` union
          - EvmDataRequestBase64
            - `type` 'base64', required — Base64 raw format.
            - `raw_data` string, required — The raw data of the transaction, as a serialized method-call with its arguments, in Base64 format. See [data field format for transactions on Ethereum](https://ethereum.org/en/developers/docs/transactions/#the-data-field).
          - EvmDataRequestFullDetails
            - `type` 'full_details', required — Method-and-arguments format.
            - `method_name` string, required — The method to call in the smart contract.
            - `method_arguments` object, required — The arguments to pass into the method, as `key:value` pairs.
          - EvmDataRequestHex
            - `type` 'hex', required — Hex raw format.
            - `hex_data` string, required — The contract call data, as a serialized method-call with its arguments, encoded in hex.See [data field format for transactions on Ethereum](https://ethereum.org/en/developers/docs/transactions/#the-data-field).
      - TransactionPredictEvmTransferRequest
        - `fee_payer` TransactionFeePayerVault
          - `type` 'vault', required
          - `vault_id` string, uuid, required — The unique identifier of the vault that pays the fee.
        - `type` 'evm_transfer', required — The type of the transaction.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `use_mev_protected_node` boolean — Use a MEV protected node to send the transaction. By using a MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `gas` union — The gas details of the transaction. The details depend on which option you choose:<ul><li>Gas Priority or <li>Custom Gas Request </ul>
          - GasPriorityRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
          - CustomGasRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'custom', required
            - `details` union, required — Using the Custom Gas Request option, you specify `gas_limit`, as well as the following gas details: <ul><li>If you choose `legacy` (meaning a chain where gas price can be specified exactly), you must specify only the `price` of a gas unit. <li>If you choose `dynamic` (meaning a chain where gas price can be determined dynamically), you must specify two additional values: <ul><li>`max_priority_fee_per_gas`, the maximum tip amount for mining your transaction <li>`max_fee_per_gas`, the maximum amount you are willing to pay for the fee (ultimately, either you'll pay this amount, or less, depending on the network base fee). </ul></ul> <br> Note that the Legacy gas price setting is allowed on dynamic (EIP-1559) networks as well. <br> You can get information on gas fees for different chains by examining the response to a call to [List Chains](https://documentation.fordefi.com/redoc/#operation/list_chains_api_v1_blockchains_get). More information is provided in [EVM chains and their fee mechanisms](https://docs.fordefi.com/user-guide/manage-transactions/understand-transaction-fees/evm-chains#evm-chains-and-their-fee-mechanisms).
              - …
        - `to` union, required — The recipient of the transfer: either an address, a vault ID, or a contact ID.
          - EvmRecipientHex
            - `type` 'hex', required — The type of the recipient.
            - `address` string, required — The address of the recipient.
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
          - RecipientContactId
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `asset_identifier` EvmAssetIdentifierRequest, required
          - `type` 'evm', required — Asset identifier type.
          - `details` union, required
            - EvmNativeAssetIdentifierRequest
              - …
            - EvmErc20AssetIdentifierRequest
              - …
            - EvmErc721AssetIdentifierRequest
              - …
            - EvmErc1155AssetIdentifierRequest
              - …
            - EvmHyperLiquidAssetIdentifierRequest
              - …
        - `value` union, required — The number of units of currency to transfer. If you do not specify a value for `token`, the assumption is that you are transferring units in the native currency of the chain.
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
      - TransactionPredictEvmRevokeAllowanceRequest
        - `fee_payer` TransactionFeePayerVault
          - `type` 'vault', required
          - `vault_id` string, uuid, required — The unique identifier of the vault that pays the fee.
        - `type` 'evm_revoke_allowance', required — The type of the transaction.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `use_mev_protected_node` boolean — Use a MEV protected node to send the transaction. By using a MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `gas` union — The gas details of the transaction. The details depend on which option you choose:<ul><li>Gas Priority or <li>Custom Gas Request </ul>
          - GasPriorityRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
          - CustomGasRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'custom', required
            - `details` union, required — Using the Custom Gas Request option, you specify `gas_limit`, as well as the following gas details: <ul><li>If you choose `legacy` (meaning a chain where gas price can be specified exactly), you must specify only the `price` of a gas unit. <li>If you choose `dynamic` (meaning a chain where gas price can be determined dynamically), you must specify two additional values: <ul><li>`max_priority_fee_per_gas`, the maximum tip amount for mining your transaction <li>`max_fee_per_gas`, the maximum amount you are willing to pay for the fee (ultimately, either you'll pay this amount, or less, depending on the network base fee). </ul></ul> <br> Note that the Legacy gas price setting is allowed on dynamic (EIP-1559) networks as well. <br> You can get information on gas fees for different chains by examining the response to a call to [List Chains](https://documentation.fordefi.com/redoc/#operation/list_chains_api_v1_blockchains_get). More information is provided in [EVM chains and their fee mechanisms](https://docs.fordefi.com/user-guide/manage-transactions/understand-transaction-fees/evm-chains#evm-chains-and-their-fee-mechanisms).
              - …
        - `chain` union, required — The EVM chain name or ID.
          - 'arbitrum_mainnet' | 'arbitrum_sepolia' | 'aster_mainnet' | 'avalanche_chain' | 'avalanche_fuji' | 'base_mainnet' | 'berachain_mainnet' | 'blast_mainnet' | 'bsc_mainnet' | 'canto_mainnet' | 'clink_mainnet' | 'clink_testnet' | 'conflux_mainnet' | 'dymension_mainnet' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_mainnet' | 'ethereum_sepolia' | 'fantom_mainnet' | 'flare_mainnet' | 'flare_testnet' | 'gnosis_mainnet' | 'hypercore_mainnet' | 'hyperevm_mainnet' | 'ink_mainnet' | 'kava_mainnet' | 'katana_mainnet' | 'linea_mainnet' | 'optimism_mainnet' | 'pharos_mainnet' | 'plasma_mainnet' | 'manta_pacific_mainnet' | 'mantle_mainnet' | 'merlin_mainnet' | 'monad_mainnet' | 'polygon_mainnet' | 'polygon_mumbai' | 'polygon_zkevm_mainnet' | 'reya_mainnet' | 'robinhood_mainnet' | 'rootstock_mainnet' | 'scroll_mainnet' | 'sei_mainnet' | 'sonic_mainnet' | 'tempo_mainnet' | 'unichain_mainnet' | 'xai_mainnet' | 'x_layer_mainnet' | 'zero_gravity_mainnet' | 'zeta_mainnet' | 'zklink_nova_mainnet' | 'zksync_era_mainnet'
          - integer — The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>196=`x_layer_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1337=`hypercore_mainnet`</li><li>1666=`aster_mainnet`</li><li>1672=`pharos_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>4217=`tempo_mainnet`</li><li>4663=`robinhood_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43113=`avalanche_fuji`</li><li>43114=`avalanche_chain`</li><li>57073=`ink_mainnet`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li></ul>
          - string — The unique EVM chain ID. </br>Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_<numeric_chain_id>` if one was added to your organization. <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_30"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_130"`</li><li>`"evm_137"`</li><li>`"evm_143"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_196"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_999"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1337"`</li><li>`"evm_1666"`</li><li>`"evm_1672"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_4217"`</li><li>`"evm_4663"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_8819"`</li><li>`"evm_9745"`</li><li>`"evm_16661"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43113"`</li><li>`"evm_43114"`</li><li>`"evm_57073"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_747474"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_rootstock_mainnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_unichain_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_monad_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_x_layer_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_hyperevm_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_hypercore_mainnet"`</li><li>`"evm_aster_mainnet"`</li><li>`"evm_pharos_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_tempo_mainnet"`</li><li>`"evm_robinhood_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_clink_testnet"`</li><li>`"evm_plasma_mainnet"`</li><li>`"evm_zero_gravity_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_fuji"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_ink_mainnet"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_katana_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li></ul>
        - `token` string, required — The address of the token to revoke allowance for.
        - `spender` string, required — The address of the spender to revoke allowance for.
      - TransactionPredictEvmSetCodeRequest
        - `fee_payer` TransactionFeePayerVault
          - `type` 'vault', required
          - `vault_id` string, uuid, required — The unique identifier of the vault that pays the fee.
        - `type` 'evm_set_code', required — An EVM set code transaction is for setting the code of a specific contract.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `use_mev_protected_node` boolean — Use a MEV protected node to send the transaction. By using a MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `gas` union — The gas details of the transaction. The details depend on which option you choose:<ul><li>Gas Priority or <li>Custom Gas Request </ul>
          - GasPriorityRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
          - CustomGasRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'custom', required
            - `details` union, required — Using the Custom Gas Request option, you specify `gas_limit`, as well as the following gas details: <ul><li>If you choose `legacy` (meaning a chain where gas price can be specified exactly), you must specify only the `price` of a gas unit. <li>If you choose `dynamic` (meaning a chain where gas price can be determined dynamically), you must specify two additional values: <ul><li>`max_priority_fee_per_gas`, the maximum tip amount for mining your transaction <li>`max_fee_per_gas`, the maximum amount you are willing to pay for the fee (ultimately, either you'll pay this amount, or less, depending on the network base fee). </ul></ul> <br> Note that the Legacy gas price setting is allowed on dynamic (EIP-1559) networks as well. <br> You can get information on gas fees for different chains by examining the response to a call to [List Chains](https://documentation.fordefi.com/redoc/#operation/list_chains_api_v1_blockchains_get). More information is provided in [EVM chains and their fee mechanisms](https://docs.fordefi.com/user-guide/manage-transactions/understand-transaction-fees/evm-chains#evm-chains-and-their-fee-mechanisms).
              - …
        - `chain` union, required — The EVM chain name or ID.
          - 'arbitrum_mainnet' | 'arbitrum_sepolia' | 'aster_mainnet' | 'avalanche_chain' | 'avalanche_fuji' | 'base_mainnet' | 'berachain_mainnet' | 'blast_mainnet' | 'bsc_mainnet' | 'canto_mainnet' | 'clink_mainnet' | 'clink_testnet' | 'conflux_mainnet' | 'dymension_mainnet' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_mainnet' | 'ethereum_sepolia' | 'fantom_mainnet' | 'flare_mainnet' | 'flare_testnet' | 'gnosis_mainnet' | 'hypercore_mainnet' | 'hyperevm_mainnet' | 'ink_mainnet' | 'kava_mainnet' | 'katana_mainnet' | 'linea_mainnet' | 'optimism_mainnet' | 'pharos_mainnet' | 'plasma_mainnet' | 'manta_pacific_mainnet' | 'mantle_mainnet' | 'merlin_mainnet' | 'monad_mainnet' | 'polygon_mainnet' | 'polygon_mumbai' | 'polygon_zkevm_mainnet' | 'reya_mainnet' | 'robinhood_mainnet' | 'rootstock_mainnet' | 'scroll_mainnet' | 'sei_mainnet' | 'sonic_mainnet' | 'tempo_mainnet' | 'unichain_mainnet' | 'xai_mainnet' | 'x_layer_mainnet' | 'zero_gravity_mainnet' | 'zeta_mainnet' | 'zklink_nova_mainnet' | 'zksync_era_mainnet'
          - integer — The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>196=`x_layer_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1337=`hypercore_mainnet`</li><li>1666=`aster_mainnet`</li><li>1672=`pharos_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>4217=`tempo_mainnet`</li><li>4663=`robinhood_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43113=`avalanche_fuji`</li><li>43114=`avalanche_chain`</li><li>57073=`ink_mainnet`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li></ul>
          - string — The unique EVM chain ID. </br>Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_<numeric_chain_id>` if one was added to your organization. <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_30"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_130"`</li><li>`"evm_137"`</li><li>`"evm_143"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_196"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_999"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1337"`</li><li>`"evm_1666"`</li><li>`"evm_1672"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_4217"`</li><li>`"evm_4663"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_8819"`</li><li>`"evm_9745"`</li><li>`"evm_16661"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43113"`</li><li>`"evm_43114"`</li><li>`"evm_57073"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_747474"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_rootstock_mainnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_unichain_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_monad_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_x_layer_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_hyperevm_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_hypercore_mainnet"`</li><li>`"evm_aster_mainnet"`</li><li>`"evm_pharos_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_tempo_mainnet"`</li><li>`"evm_robinhood_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_clink_testnet"`</li><li>`"evm_plasma_mainnet"`</li><li>`"evm_zero_gravity_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_fuji"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_ink_mainnet"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_katana_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li></ul>
        - `enable` boolean, required — Whether to set the code of the contract, or to clear it.
      - TransactionPredictEvmWrapNativeRequest
        - `fee_payer` TransactionFeePayerVault
          - `type` 'vault', required
          - `vault_id` string, uuid, required — The unique identifier of the vault that pays the fee.
        - `type` 'evm_wrap_native', required — An EVM wrap native transaction is for wrapping the native token.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `use_mev_protected_node` boolean — Use a MEV protected node to send the transaction. By using a MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `gas` union — The gas details of the transaction. The details depend on which option you choose:<ul><li>Gas Priority or <li>Custom Gas Request </ul>
          - GasPriorityRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
          - CustomGasRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'custom', required
            - `details` union, required — Using the Custom Gas Request option, you specify `gas_limit`, as well as the following gas details: <ul><li>If you choose `legacy` (meaning a chain where gas price can be specified exactly), you must specify only the `price` of a gas unit. <li>If you choose `dynamic` (meaning a chain where gas price can be determined dynamically), you must specify two additional values: <ul><li>`max_priority_fee_per_gas`, the maximum tip amount for mining your transaction <li>`max_fee_per_gas`, the maximum amount you are willing to pay for the fee (ultimately, either you'll pay this amount, or less, depending on the network base fee). </ul></ul> <br> Note that the Legacy gas price setting is allowed on dynamic (EIP-1559) networks as well. <br> You can get information on gas fees for different chains by examining the response to a call to [List Chains](https://documentation.fordefi.com/redoc/#operation/list_chains_api_v1_blockchains_get). More information is provided in [EVM chains and their fee mechanisms](https://docs.fordefi.com/user-guide/manage-transactions/understand-transaction-fees/evm-chains#evm-chains-and-their-fee-mechanisms).
              - …
        - `chain` union, required — The EVM chain name or ID.
          - 'arbitrum_mainnet' | 'arbitrum_sepolia' | 'aster_mainnet' | 'avalanche_chain' | 'avalanche_fuji' | 'base_mainnet' | 'berachain_mainnet' | 'blast_mainnet' | 'bsc_mainnet' | 'canto_mainnet' | 'clink_mainnet' | 'clink_testnet' | 'conflux_mainnet' | 'dymension_mainnet' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_mainnet' | 'ethereum_sepolia' | 'fantom_mainnet' | 'flare_mainnet' | 'flare_testnet' | 'gnosis_mainnet' | 'hypercore_mainnet' | 'hyperevm_mainnet' | 'ink_mainnet' | 'kava_mainnet' | 'katana_mainnet' | 'linea_mainnet' | 'optimism_mainnet' | 'pharos_mainnet' | 'plasma_mainnet' | 'manta_pacific_mainnet' | 'mantle_mainnet' | 'merlin_mainnet' | 'monad_mainnet' | 'polygon_mainnet' | 'polygon_mumbai' | 'polygon_zkevm_mainnet' | 'reya_mainnet' | 'robinhood_mainnet' | 'rootstock_mainnet' | 'scroll_mainnet' | 'sei_mainnet' | 'sonic_mainnet' | 'tempo_mainnet' | 'unichain_mainnet' | 'xai_mainnet' | 'x_layer_mainnet' | 'zero_gravity_mainnet' | 'zeta_mainnet' | 'zklink_nova_mainnet' | 'zksync_era_mainnet'
          - integer — The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>196=`x_layer_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1337=`hypercore_mainnet`</li><li>1666=`aster_mainnet`</li><li>1672=`pharos_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>4217=`tempo_mainnet`</li><li>4663=`robinhood_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43113=`avalanche_fuji`</li><li>43114=`avalanche_chain`</li><li>57073=`ink_mainnet`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li></ul>
          - string — The unique EVM chain ID. </br>Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_<numeric_chain_id>` if one was added to your organization. <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_30"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_130"`</li><li>`"evm_137"`</li><li>`"evm_143"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_196"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_999"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1337"`</li><li>`"evm_1666"`</li><li>`"evm_1672"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_4217"`</li><li>`"evm_4663"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_8819"`</li><li>`"evm_9745"`</li><li>`"evm_16661"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43113"`</li><li>`"evm_43114"`</li><li>`"evm_57073"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_747474"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_rootstock_mainnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_unichain_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_monad_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_x_layer_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_hyperevm_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_hypercore_mainnet"`</li><li>`"evm_aster_mainnet"`</li><li>`"evm_pharos_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_tempo_mainnet"`</li><li>`"evm_robinhood_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_clink_testnet"`</li><li>`"evm_plasma_mainnet"`</li><li>`"evm_zero_gravity_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_fuji"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_ink_mainnet"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_katana_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li></ul>
        - `amount` union, required — The amount of native token to wrap. Specify one of the following: <ul><li>`value`<li>`max`</ul>
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
      - TransactionPredictEvmUnwrapNativeRequest
        - `fee_payer` TransactionFeePayerVault
          - `type` 'vault', required
          - `vault_id` string, uuid, required — The unique identifier of the vault that pays the fee.
        - `type` 'evm_unwrap_native', required — An EVM unwrap native transaction is for unwrapping to the native token.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `use_mev_protected_node` boolean — Use a MEV protected node to send the transaction. By using a MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `gas` union — The gas details of the transaction. The details depend on which option you choose:<ul><li>Gas Priority or <li>Custom Gas Request </ul>
          - GasPriorityRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
          - CustomGasRequest
            - `gas_limit` string — Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
            - `type` 'custom', required
            - `details` union, required — Using the Custom Gas Request option, you specify `gas_limit`, as well as the following gas details: <ul><li>If you choose `legacy` (meaning a chain where gas price can be specified exactly), you must specify only the `price` of a gas unit. <li>If you choose `dynamic` (meaning a chain where gas price can be determined dynamically), you must specify two additional values: <ul><li>`max_priority_fee_per_gas`, the maximum tip amount for mining your transaction <li>`max_fee_per_gas`, the maximum amount you are willing to pay for the fee (ultimately, either you'll pay this amount, or less, depending on the network base fee). </ul></ul> <br> Note that the Legacy gas price setting is allowed on dynamic (EIP-1559) networks as well. <br> You can get information on gas fees for different chains by examining the response to a call to [List Chains](https://documentation.fordefi.com/redoc/#operation/list_chains_api_v1_blockchains_get). More information is provided in [EVM chains and their fee mechanisms](https://docs.fordefi.com/user-guide/manage-transactions/understand-transaction-fees/evm-chains#evm-chains-and-their-fee-mechanisms).
              - …
        - `chain` union, required — The EVM chain name or ID.
          - 'arbitrum_mainnet' | 'arbitrum_sepolia' | 'aster_mainnet' | 'avalanche_chain' | 'avalanche_fuji' | 'base_mainnet' | 'berachain_mainnet' | 'blast_mainnet' | 'bsc_mainnet' | 'canto_mainnet' | 'clink_mainnet' | 'clink_testnet' | 'conflux_mainnet' | 'dymension_mainnet' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_mainnet' | 'ethereum_sepolia' | 'fantom_mainnet' | 'flare_mainnet' | 'flare_testnet' | 'gnosis_mainnet' | 'hypercore_mainnet' | 'hyperevm_mainnet' | 'ink_mainnet' | 'kava_mainnet' | 'katana_mainnet' | 'linea_mainnet' | 'optimism_mainnet' | 'pharos_mainnet' | 'plasma_mainnet' | 'manta_pacific_mainnet' | 'mantle_mainnet' | 'merlin_mainnet' | 'monad_mainnet' | 'polygon_mainnet' | 'polygon_mumbai' | 'polygon_zkevm_mainnet' | 'reya_mainnet' | 'robinhood_mainnet' | 'rootstock_mainnet' | 'scroll_mainnet' | 'sei_mainnet' | 'sonic_mainnet' | 'tempo_mainnet' | 'unichain_mainnet' | 'xai_mainnet' | 'x_layer_mainnet' | 'zero_gravity_mainnet' | 'zeta_mainnet' | 'zklink_nova_mainnet' | 'zksync_era_mainnet'
          - integer — The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. <ul><li>1=`ethereum_mainnet`</li><li>5=`ethereum_goerli`</li><li>10=`optimism_mainnet`</li><li>14=`flare_mainnet`</li><li>16=`flare_testnet`</li><li>30=`rootstock_mainnet`</li><li>56=`bsc_mainnet`</li><li>100=`gnosis_mainnet`</li><li>130=`unichain_mainnet`</li><li>137=`polygon_mainnet`</li><li>143=`monad_mainnet`</li><li>146=`sonic_mainnet`</li><li>169=`manta_pacific_mainnet`</li><li>196=`x_layer_mainnet`</li><li>250=`fantom_mainnet`</li><li>324=`zksync_era_mainnet`</li><li>999=`hyperevm_mainnet`</li><li>1030=`conflux_mainnet`</li><li>1100=`dymension_mainnet`</li><li>1101=`polygon_zkevm_mainnet`</li><li>1329=`sei_mainnet`</li><li>1337=`hypercore_mainnet`</li><li>1666=`aster_mainnet`</li><li>1672=`pharos_mainnet`</li><li>1729=`reya_mainnet`</li><li>2222=`kava_mainnet`</li><li>4200=`merlin_mainnet`</li><li>4217=`tempo_mainnet`</li><li>4663=`robinhood_mainnet`</li><li>5000=`mantle_mainnet`</li><li>7000=`zeta_mainnet`</li><li>7700=`canto_mainnet`</li><li>8453=`base_mainnet`</li><li>8818=`clink_mainnet`</li><li>8819=`clink_testnet`</li><li>9745=`plasma_mainnet`</li><li>16661=`zero_gravity_mainnet`</li><li>17000=`ethereum_holesky`</li><li>80001=`polygon_mumbai`</li><li>80094=`berachain_mainnet`</li><li>42161=`arbitrum_mainnet`</li><li>43113=`avalanche_fuji`</li><li>43114=`avalanche_chain`</li><li>57073=`ink_mainnet`</li><li>59144=`linea_mainnet`</li><li>81457=`blast_mainnet`</li><li>421614=`arbitrum_sepolia`</li><li>534352=`scroll_mainnet`</li><li>660279=`xai_mainnet`</li><li>747474=`katana_mainnet`</li><li>810180=`zklink_nova_mainnet`</li><li>11155111=`ethereum_sepolia`</li></ul>
          - string — The unique EVM chain ID. </br>Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_<numeric_chain_id>` if one was added to your organization. <ul><li>`"evm_1"`</li><li>`"evm_5"`</li><li>`"evm_10"`</li><li>`"evm_14"`</li><li>`"evm_16"`</li><li>`"evm_30"`</li><li>`"evm_56"`</li><li>`"evm_100"`</li><li>`"evm_130"`</li><li>`"evm_137"`</li><li>`"evm_143"`</li><li>`"evm_146"`</li><li>`"evm_169"`</li><li>`"evm_196"`</li><li>`"evm_250"`</li><li>`"evm_324"`</li><li>`"evm_999"`</li><li>`"evm_1030"`</li><li>`"evm_1100"`</li><li>`"evm_1101"`</li><li>`"evm_1329"`</li><li>`"evm_1337"`</li><li>`"evm_1666"`</li><li>`"evm_1672"`</li><li>`"evm_1729"`</li><li>`"evm_2222"`</li><li>`"evm_4200"`</li><li>`"evm_4217"`</li><li>`"evm_4663"`</li><li>`"evm_5000"`</li><li>`"evm_7000"`</li><li>`"evm_7700"`</li><li>`"evm_8453"`</li><li>`"evm_8818"`</li><li>`"evm_8819"`</li><li>`"evm_9745"`</li><li>`"evm_16661"`</li><li>`"evm_17000"`</li><li>`"evm_80001"`</li><li>`"evm_80094"`</li><li>`"evm_42161"`</li><li>`"evm_43113"`</li><li>`"evm_43114"`</li><li>`"evm_57073"`</li><li>`"evm_59144"`</li><li>`"evm_81457"`</li><li>`"evm_421614"`</li><li>`"evm_534352"`</li><li>`"evm_660279"`</li><li>`"evm_747474"`</li><li>`"evm_810180"`</li><li>`"evm_11155111"`</li><li>`"evm_ethereum_mainnet"`</li><li>`"evm_ethereum_goerli"`</li><li>`"evm_optimism_mainnet"`</li><li>`"evm_flare_mainnet"`</li><li>`"evm_flare_testnet"`</li><li>`"evm_rootstock_mainnet"`</li><li>`"evm_bsc_mainnet"`</li><li>`"evm_gnosis_mainnet"`</li><li>`"evm_unichain_mainnet"`</li><li>`"evm_polygon_mainnet"`</li><li>`"evm_monad_mainnet"`</li><li>`"evm_sonic_mainnet"`</li><li>`"evm_manta_pacific_mainnet"`</li><li>`"evm_x_layer_mainnet"`</li><li>`"evm_fantom_mainnet"`</li><li>`"evm_zksync_era_mainnet"`</li><li>`"evm_hyperevm_mainnet"`</li><li>`"evm_conflux_mainnet"`</li><li>`"evm_dymension_mainnet"`</li><li>`"evm_polygon_zkevm_mainnet"`</li><li>`"evm_sei_mainnet"`</li><li>`"evm_hypercore_mainnet"`</li><li>`"evm_aster_mainnet"`</li><li>`"evm_pharos_mainnet"`</li><li>`"evm_reya_mainnet"`</li><li>`"evm_kava_mainnet"`</li><li>`"evm_merlin_mainnet"`</li><li>`"evm_tempo_mainnet"`</li><li>`"evm_robinhood_mainnet"`</li><li>`"evm_mantle_mainnet"`</li><li>`"evm_zeta_mainnet"`</li><li>`"evm_canto_mainnet"`</li><li>`"evm_base_mainnet"`</li><li>`"evm_clink_mainnet"`</li><li>`"evm_clink_testnet"`</li><li>`"evm_plasma_mainnet"`</li><li>`"evm_zero_gravity_mainnet"`</li><li>`"evm_ethereum_holesky"`</li><li>`"evm_polygon_mumbai"`</li><li>`"evm_berachain_mainnet"`</li><li>`"evm_arbitrum_mainnet"`</li><li>`"evm_avalanche_fuji"`</li><li>`"evm_avalanche_chain"`</li><li>`"evm_ink_mainnet"`</li><li>`"evm_linea_mainnet"`</li><li>`"evm_blast_mainnet"`</li><li>`"evm_arbitrum_sepolia"`</li><li>`"evm_scroll_mainnet"`</li><li>`"evm_xai_mainnet"`</li><li>`"evm_katana_mainnet"`</li><li>`"evm_zklink_nova_mainnet"`</li><li>`"evm_ethereum_sepolia"`</li></ul>
        - `amount` union, required — The amount of wrapped token to unwrap. Specify one of the following: <ul><li>`value`<li>`max`</ul>
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
  - TransactionPredictExchangeTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'exchange_transaction', required — Exchange transaction type.
    - `details` union, required
      - CreateExchangeExternalWithdrawRequest
        - `type` 'external_withdraw', required
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise.
        - `asset_identifier` ExchangeAssetIdentifierRequest, required
          - `type` 'exchange', required — Asset identifier type.
          - `exchange_type` 'binance' | 'bybit' | 'coinbase_international' | 'coinbase_us' | 'okx' | 'kraken' | 'paxos', required
          - `asset_symbol` string, required — The symbol of the asset on the exchange.
        - `chain` string, required — The chain on which to make the transfer.
        - `to` union, required — The recipient of the transfer.
          - ExchangeTransferExternalRecipientTypeAddress
            - `type` 'address', required — Transfer to external address.
            - `address` string, required — The address of the recipient in plain string.
          - ExchangeTransferExternalRecipientTypeVault
            - `type` 'vault', required — Transfer to an MPC vault or a master account of a different exchange vault.
            - `vault_id` string, uuid, required — The ID of the recipient vault.
          - ExchangeTransferExternalRecipientTypeContact
            - `type` 'contact', required — Transfer to an address book contact.
            - `contact_id` string, uuid, required — The ID of the address book contact.
        - `value` union, required — The number of units of currency to transfer.
          - CreateExchangeExternalWithdrawRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The amount of the transfer.
            - `is_net_amount` boolean — `True` to add fee on top of transfer amount.`False` to include fee in the transfer amount.
          - CreateExchangeTransferRequestMaxAmount
            - `type` 'max', required
        - `memo` string — Transaction memo.
      - CreateExchangeInternalTransferRequest
        - `type` 'internal_transfer', required
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise.
        - `asset_identifier` ExchangeAssetIdentifierRequest, required
          - `type` 'exchange', required — Asset identifier type.
          - `exchange_type` 'binance' | 'bybit' | 'coinbase_international' | 'coinbase_us' | 'okx' | 'kraken' | 'paxos', required
          - `asset_symbol` string, required — The symbol of the asset on the exchange.
        - `to` string, uuid, required — The ID of the recipient vault.
        - `value` union, required — The number of units of currency to transfer.
          - CreateExchangeInternalTransferRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The amount of the transfer.
          - CreateExchangeTransferRequestMaxAmount
            - `type` 'max', required
  - TransactionPredictSolanaMessageRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'solana_message', required — The type of the transaction.
    - `details` SolanaPersonalMessageRequest, required
      - `type` 'personal_message_type', required — Personal message standard.
      - `chain` 'solana_mainnet' | 'solana_devnet' | 'solana_eclipse_mainnet' | 'solana_fogo_mainnet' | 'solana_fogo_testnet', required
      - `raw_data` string, required — Base64 of the message to be signed.
  - TransactionPredictSolanaTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'solana_transaction', required — The type of the transaction.
    - `details` union, required
      - TransactionPredictSolanaTransferRequest
        - `fee_payer` TransactionFeePayerVault
          - `type` 'vault', required
          - `vault_id` string, uuid, required — The unique identifier of the vault that pays the fee.
        - `fee` union — The fee configuration for the transaction.
          - SolanaCustomFeeRequest
            - `type` 'custom', required
            - `priority_fee` string — The priority fee to use in the transaction (In lamports).
            - `unit_price` string — The unit price to use in the transaction (In microlamports).
          - SolanaPriorityFeeRequest
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
        - `type` 'solana_transfer', required — The type of the transaction.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `to` union, required — The recipient of the transfer: either an address, a vault ID, or a contact ID.
          - SolanaRecipientBase58
            - `type` 'address', required — The type of the recipient.
            - `address` string, required — The address of the recipient.
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
          - RecipientContactId
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `value` union, required — The number of units of currency to transfer.
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
        - `asset_identifier` SolanaAssetIdentifierRequest, required
          - `type` 'solana', required — Solana asset identifier type.
          - `details` union, required
            - SolanaNativeAssetIdentifierRequest
              - …
            - SolanaSplTokenAssetIdentifierRequest
              - …
      - TransactionDetailsSolanaRawTransactionRequest
        - `version` 'legacy' | 'v0', required
        - `instructions` SolanaCompiledInstructionRequest[], required — The instructions of the transaction.
          - `program_index` integer, required — The program index.
          - `data` string, required — The instruction data in Base64 format.
          - `account_indexes` integer[], required — The indexes of the instruction accounts in the transaction accounts list.
        - `accounts` SolanaTransactionAccountRequest[], required — Accounts used in the transaction.
          - `address` string, required — The address of the account.
          - `writable` boolean, required — Indicates if this account is writable in the context of the transaction.
          - `signer` boolean, required — Indicates if this account is a signer of the transaction.
          - `ephemeral_key` string — A 64-byte Solana secret key of the account, encoded in base-64.
        - `address_table_lookups` SolanaMessageAddressTableLookupRequest[], required — Lookup tables of accounts used in the transaction.
          - `account_key` string, required — The address of the lookup table.
          - `writable_indexes` integer[], required — Indexes of writable accounts in the lookup table.
          - `readonly_indexes` integer[], required — Indexes of read-only accounts in the lookup table.
        - `signatures` SolanaTransactionSignaturesRequest[] — Any partial signatures on the transaction.
          - `data` string — Signature on the data, encoded in base64 format.
        - `recent_blockhash` string — The transaction nonce (a recently processed blockhash).
        - `fee` union — The fee configuration for the transaction.
          - SolanaCustomFeeRequest
            - `type` 'custom', required
            - `priority_fee` string — The priority fee to use in the transaction (In lamports).
            - `unit_price` string — The unit price to use in the transaction (In microlamports).
          - SolanaPriorityFeeRequest
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
        - `type` 'solana_raw_transaction', required — The type of the transaction.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `chain` 'solana_mainnet' | 'solana_devnet' | 'solana_eclipse_mainnet' | 'solana_fogo_mainnet' | 'solana_fogo_testnet', required
      - TransactionPredictSolanaSerializedTransactionMessageRequest
        - `fee` union — The fee configuration for the transaction.
          - SolanaCustomFeeRequest
            - `type` 'custom', required
            - `priority_fee` string — The priority fee to use in the transaction (In lamports).
            - `unit_price` string — The unit price to use in the transaction (In microlamports).
          - SolanaPriorityFeeRequest
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
        - `type` 'solana_serialized_transaction_message', required — A Solana serialized transaction message request.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `chain` 'solana_mainnet' | 'solana_devnet' | 'solana_eclipse_mainnet' | 'solana_fogo_mainnet' | 'solana_fogo_testnet', required
        - `data` string, required — The base64 encoded binary transaction message. Can be either a serialized legacy Message or a serialized MessageV0. The first account in the serialized transaction message must match theaddress of the vault in the request. If the serialized message contains a recent block hash, the server may override it to prevent the transaction from expiring. Additionally, if the transaction does not include a priority fee (ComputeBudget instruction), the server might add it to increase the chances of the transaction landing on chain.
        - `signatures` SolanaTransactionSignaturesRequest[] — List of Base64 encoded partial signatures. Can be omitted if the transaction requires no partial signatures, or if ephemeral_keys are passed instead. If passed, then the size of this array must match the total number of signers in the transaction, and elements in positions corresponding to vault accounts must be `{data: null}`
          - `data` string — Signature on the data, encoded in base64 format.
        - `ephemeral_keys` SolanaSecretKeyRequest[] — A list of 64-byte Solana secret keys, encoded as base64, for any non-vault signer accounts. Can be omitted if the transaction requires no partial signatures, or if signatures are passed instead. If passed, then the size of this array must match the total number of signers in the transaction, and elements in positions corresponding to vault accounts must be `{data: null}`
          - `data` string — A 64-byte Solana secret key of the account, encoded in base-64.
  - PredictStacksTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'stacks_transaction', required — Stacks transaction type.
    - `details` union, required
      - CreateStacksTransferRequest
        - `type` 'stacks_transfer', required — A Stacks transfer transaction. A transaction of this kind is for transferring native currency or a sip10 token.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `fee` union — The fee configuration for the transaction.
          - StacksCustomFeeRequest
            - `type` 'custom', required
            - `total_fee` string, required — The total fee to use in the transaction (In microSTX).
          - StacksPriorityFeeRequest
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
        - `to` union, required
          - StacksRecipientHex
            - `type` 'hex', required — The type of the recipient.
            - `address` string, required — The address of the recipient.
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
          - RecipientContactId
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `value` union, required — The number of units of currency to transfer.
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
        - `asset_identifier` StacksAssetIdentifierRequest, required
          - `type` 'stacks', required — Stacks asset identifier type.
          - `details` union, required
            - StacksNativeAssetIdentifierRequest
              - …
            - StacksSip10AssetIdentifierRequest
              - …
        - `memo` string — The memo to include in the transaction.
      - CreateStacksTransactionSerializedRequest
        - `type` 'stacks_serialized_transaction', required — A serialized Stacks transaction.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `fee` union — The fee configuration for the transaction.
          - StacksCustomFeeRequest
            - `type` 'custom', required
            - `total_fee` string, required — The total fee to use in the transaction (In microSTX).
          - StacksPriorityFeeRequest
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
        - `serialized_transaction` string, required — The serialized transaction to create in hex-encoded format.
        - `chain` 'stacks_mainnet', required
  - PredictStarknetMessageRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'starknet_message', required — Starknet message type.
    - `details` StarknetTypedMessageRequest, required
      - `type` 'typed_message_type', required — EIP-712 message standard.
      - `chain` 'starknet_mainnet', required
      - `raw_data` string, required — The raw data of the message to be signed, provided as a string or hex-encoded.
  - PredictStarknetTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'starknet_transaction', required — Starknet transaction type.
    - `details` union, required
      - CreateStarknetTransferRequest
        - `type` 'starknet_transfer', required — A Starknet transfer transaction. A transaction of this kind is for transferring native currency or an erc20 token.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `to` union, required
          - StarknetRecipientHex
            - `type` 'hex', required — The type of the recipient.
            - `address` string, required — The address of the recipient.
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
          - RecipientContactId
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `value` union, required — The number of units of currency to transfer.
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
        - `asset_identifier` StarknetAssetIdentifierRequest, required
          - `type` 'starknet', required — Starknet asset identifier type.
          - `details` union, required
            - StarknetNativeAssetIdentifierRequest
              - …
            - StarknetErc20AssetIdentifierRequest
              - …
      - CreateStarknetTransactionInvokeRequest
        - `type` 'starknet_contract_call', required — A Starknet transaction with contract call payload.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `chain` 'starknet_mainnet', required
        - `call_data` StarknetCallDataRequest[], required — The call data of the transaction.
          - `to` string, required — The address of the contract to call.
          - `method_name` string, required — The name of the method to call.
          - `method_arguments` string[], required — The arguments of the method to call.
      - CreateStarknetContractDeploymentRequest
        - `type` 'starknet_contract_deployment', required — A Starknet transaction to deploy a contract account.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `chain` 'starknet_mainnet', required
  - PredictStellarMessageRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'stellar_message', required — Stellar message type.
    - `details` StellarMessageRequest, required
      - `chain` 'stellar_mainnet' | 'stellar_testnet', required
      - `raw_data` string, required — The message to be signed, hex-encoded.
  - TransactionPredictStellarTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'stellar_transaction', required — Stellar transaction type.
    - `details` union, required
      - CreateStellarTransferRequest
        - `type` 'stellar_transfer', required — A Stellar transfer transaction for transferring native XLM, classic assets, or Soroban tokens.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `claim_status` 'claimable' | 'claimed'
        - `to` union, required — The recipient of the transfer: either an address or a vault ID.
          - StellarRecipientAddress
            - `type` 'address', required — The type of the recipient.
            - `address` string, required — The Stellar account address of the recipient.
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
        - `value` union, required — The number of units to transfer.
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
        - `asset_identifier` StellarAssetIdentifierRequest, required
          - `type` 'stellar', required — Stellar asset identifier type.
          - `details` union, required
            - StellarNativeAssetIdentifierRequest
              - …
            - StellarClassicAssetIdentifierRequest
              - …
            - StellarSorobanAssetIdentifierRequest
              - …
        - `memo` string — Optional memo to include with the transaction.
      - CreateStellarChangeTrustRequest
        - `type` 'stellar_change_trust', required — A Stellar ChangeTrust operation to create a trustline for a classic asset with maximum limit.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `claim_status` 'claimable' | 'claimed'
        - `asset_identifier` StellarAssetIdentifierRequest, required
          - `type` 'stellar', required — Stellar asset identifier type.
          - `details` union, required
            - StellarNativeAssetIdentifierRequest
              - …
            - StellarClassicAssetIdentifierRequest
              - …
            - StellarSorobanAssetIdentifierRequest
              - …
      - CreateStellarRawTransactionRequest
        - `type` 'stellar_raw_transaction', required — A raw Stellar transaction containing arbitrary operations as XDR.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `claim_status` 'claimable' | 'claimed'
        - `chain` 'stellar_mainnet' | 'stellar_testnet', required
        - `xdr_data` string, required — Base64-encoded XDR of the unsigned Stellar transaction.
      - CreateStellarClaimClaimableBalanceRequest
        - `type` 'stellar_claim_claimable_balance', required — Claim claimable balances on Stellar. Auto-creates trustline if needed.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `claim_status` 'claimable' | 'claimed'
        - `source` union, required — The source for resolving which claimable balances to claim.
          - ClaimClaimableBalanceByAssetSource
            - `type` 'by_asset', required — Claim by asset identifier.
            - `asset_identifier` StellarAssetIdentifierRequest, required
              - …
          - ClaimClaimableBalanceByTransactionSource
            - `type` 'by_transaction', required — Claim by Fordefi transaction ID.
            - `transaction_id` string, uuid, required — The Fordefi transaction ID of the incoming transaction containing claimable balances.
  - TransactionPredictSuiMessageRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'sui_message', required — Sui message type.
    - `details` SuiPersonalMessageRequest, required
      - `type` 'personal_message_type', required — Personal message standard.
      - `chain` 'sui_mainnet' | 'sui_testnet', required
      - `raw_data` string, required — Base64 of the message to be signed.
  - TransactionPredictSuiTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'sui_transaction', required — Sui transaction type.
    - `details` union, required
      - TransactionPredictSuiTransferRequest
        - `fee_payer` TransactionFeePayerVault
          - `type` 'vault', required
          - `vault_id` string, uuid, required — The unique identifier of the vault that pays the fee.
        - `type` 'sui_transfer', required — A Sui transfer transaction. A transaction of this kind is for transferring native currency or a coin.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `to` union, required
          - SuiRecipientHex
            - `type` 'hex', required — The type of the recipient.
            - `address` string, required — The address of the recipient.
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
          - RecipientContactId
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `value` union, required — The number of units of currency to transfer.
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
        - `asset_identifier` SuiAssetIdentifierRequest, required
          - `type` 'sui', required — Sui asset identifier type.
          - `details` union, required
            - SuiNativeAssetIdentifierRequest
              - …
            - SuiCoinAssetIdentifierRequest
              - …
        - `gas_config` SuiGasConfig
          - `owner` string — The owner of the gas config. Used for sponsored transactions.
          - `budget` string — The budget of the gas in the transaction (in MIST).
          - `price` string — The price per gas unit (in MIST).
          - `payment` SuiObjectRef[], required — The list of SUI coins used to pay for the gas.
            - `digest` string, required — The digest of the object.
            - `object_id` string, required — The id of the object.
            - `version` string, required — The version of the object.
      - TransactionDetailsSuiProgrammableTransactionBlockRequest
        - `type` 'sui_programmable_transaction_block', required — A Sui programmable transaction block transaction. A transaction of this kind is for any operation.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `chain` 'sui_mainnet' | 'sui_testnet', required
        - `gas_config` SuiGasConfig
          - `owner` string — The owner of the gas config. Used for sponsored transactions.
          - `budget` string — The budget of the gas in the transaction (in MIST).
          - `price` string — The price per gas unit (in MIST).
          - `payment` SuiObjectRef[], required — The list of SUI coins used to pay for the gas.
            - `digest` string, required — The digest of the object.
            - `object_id` string, required — The id of the object.
            - `version` string, required — The version of the object.
        - `inputs` SuiInput[], required — The inputs of the transaction.
          - union
            - SuiPureInputArgument
              - …
            - SuiObjectInputArgument
              - …
            - SuiFundsWithdrawalArgument — SIP-58 input that reserves Balance<T> from the sender or sponsor's address-balance accumulator. Paired with `0x2::coin::redeem_funds<T>` to produce a Coin<T>.
              - …
        - `commands` SuiCommand[], required — The commands of the transactions.
          - union
            - SuiTransferObjectsCommand — Transfer objects from one account to another.
              - …
            - SuiSplitCoinsCommand — Split coin into smaller coins.
              - …
            - SuiMergeCoinsCommand — Merge coins into a single coin.
              - …
            - SuiMakeMoveVecCommand — Given n-values of the same type, it constructs a vector.
              - …
            - SuiMoveCallCommand — A call to either an entry or a public Move function.
              - …
            - SuiPublishCommand — Publish a Move module.
              - …
            - SuiUpgradeCommand — Upgrade a Move module.
              - …
  - TransactionPredictTonMessageRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'ton_message', required — TON message type.
    - `details` TonProofMessageRequest, required
      - `type` 'proof_message_type', required — Proof message standard.
      - `manifest_url` string, required — The manifest_url of the Dapp that the message is for.
      - `chain` 'ton_mainnet' | 'ton_testnet', required
      - `message_to_sign` string, required — The message payload to be signed, encoded in base64.
  - TransactionPredictTonTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'ton_transaction', required — TON transaction type.
    - `details` union, required
      - PredictTonTransferRequest
        - `type` 'ton_transfer', required — An TON transfer transaction. A transaction of this kind is for transferring native currency or a jetton.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `to` union, required
          - TonRecipientHex
            - `type` 'hex', required — The type of the recipient.
            - `address` string, required — The address of the recipient in any format.
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
          - RecipientContactId
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `value` union, required — The number of units of currency to transfer.
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
        - `asset_identifier` TonAssetIdentifierRequest, required
          - `type` 'ton', required — TON asset identifier type.
          - `details` union, required
            - TonNativeAssetIdentifierRequest
              - …
            - TonJettonAssetIdentifierRequest
              - …
        - `comment` string — A comment to attach to the transaction.
      - PredictTonSerializedRawTransactionRequest
        - `type` 'ton_raw_transaction', required — An Ton transaction with raw payload.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_simulation` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the `simulation_status` will be `skipped` and the `expected_result` of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `chain` 'ton_mainnet' | 'ton_testnet', required
        - `transaction_payload` TonTransactionPayload, required
          - `valid_until` integer — The expiration time of the transaction.
          - `network` 0 | -239 | -3 | -1
          - `messages` TonTransactionMessage[], required — The messages of the transaction.
            - `address` TonAccountRepr, required
              - …
            - `amount` string, required — The amount of nano tons to send.
            - `payload` string — The payload of the message.
            - `state_init` string — The state_init structure contains all the necessary information required to create the initial state of a smart contract.
            - `comment` string — A comment that is attached to the message.
  - PredictTronMessageRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'tron_message', required — TRON message type.
    - `details` union, required
      - TronTypedMessageV1Request
        - `type` 'typed_message_type_v1', required — V1 message type. Signs an opaque plaintext message (TronWeb signMessageV1). Despite the 'typed_message' name, these are personal message signatures, NOT TIP-712 structured typed data.
        - `chain` 'tron_mainnet' | 'tron_shasta', required
        - `raw_data` string, required — The message to be signed, hex-encoded.
      - TronTypedMessageV2Request
        - `type` 'typed_message_type_v2', required — V2 message type. Signs an opaque plaintext message (TronWeb signMessageV2). Despite the 'typed_message' name, these are personal message signatures, NOT TIP-712 structured typed data.
        - `chain` 'tron_mainnet' | 'tron_shasta', required
        - `raw_data` union, required — The message to be signed.
          - TronTypedMessageV2TextRawData
            - `format` 'text', required — Text format for raw data.
            - `raw_data_text` string, required — The message to be signed as plain text.
          - TronTypedMessageV2Base64RawData
            - `format` 'base64', required — Base64 format for raw data.
            - `raw_data_base64` string, required — The message to be signed, base64-encoded.
  - TransactionPredictTronTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'tron_transaction', required — TRON transaction type.
    - `details` union, required
      - CreateTronTransferRequest
        - `type` 'tron_transfer', required — A TRON transfer transaction for transferring native currency or tokens.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `to` union, required
          - TronRecipientHex
            - `type` 'hex', required — The type of the recipient.
            - `address` string, required — The address of the recipient.
          - RecipientVaultId
            - `type` 'vault_id', required — The type of the recipient.
            - `vault_id` string, uuid, required — The id of the recipient vault.
          - RecipientContactId
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `value` union, required — The number of units to transfer.
          - CreateRequestExplicitAmount
            - `type` 'value', required
            - `value` string, required — The specific amount to be passed.
          - CreateRequestMaxAmount
            - `type` 'max', required
        - `asset_identifier` TronAssetIdentifierRequest, required
          - `type` 'tron', required — TRON asset identifier type.
          - `details` union, required
            - TronNativeAssetIdentifierRequest
              - …
            - TronTrc20AssetIdentifierRequest
              - …
        - `memo` string — Optional memo to include with the transaction
      - CreateTronSerializedRawTransactionRequest
        - `type` 'tron_serialized_raw_transaction', required — A TRON serialized transaction.
        - `fail_on_prediction_failure` boolean — `True` if the request should fail in case simulation failed, `False` otherwise. <br> In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.
        - `skip_prediction` boolean — `True` to create a transaction without prediction, `False` otherwise. <br> In case of skipping simulation, the simulation status will be skipped and the expected result of the transaction will be empty. The policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule. <br> Note, it is recommended to use the default setting for this field and to turn off `fail_on_prediction_failure` instead - unless you wish to save time by omitting the prediction phase entirely.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `chain` 'tron_mainnet' | 'tron_shasta', required
        - `data` string, required — The hex encoded transaction data. This should be the complete raw transaction protobuf message encoded as hex. The transaction must be properly structured with all required fields including reference block information (ref_block_bytes, ref_block_hash) and expiration time. If the serialized transaction contains an expiration time that is too close to the current time, the server may override it to prevent the transaction from expiring. The transaction should include all contract calls, transfers, or staking operations but should NOT be signed - signing will be handled by Fordefi.
  - TransactionPredictUtxoMessageRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'utxo_message', required — The type of the transaction.
    - `details` UtxoMessageDetails, required
      - `type` 'ecdsa' | 'bip322_simple', required
      - `sender` UtxoAddress, required
        - `type` 'utxo', required
        - `address` string, required — The UTXO string address.
        - `address_type` 'legacy' | 'p2sh' | 'segwit' | 'taproot' | 'merkleroot', required
        - `chain` UtxoChain, required
          - `chain_type` 'utxo', required — The type of the chain.
          - `unique_id` 'bitcoin_mainnet' | 'bitcoin_testnet' | 'bitcoin_testnet_v4' | 'dogecoin_mainnet' | 'bitcoin_cash_mainnet' | 'pearl_testnet' | 'pearl_mainnet', required
      - `raw_data` string, required — The raw data of the message, encoded in base64
  - TransactionPredictUtxoTransactionRequest
    - `should_run_policy_check` boolean — Should run a policy check
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `type` 'utxo_transaction', required — The type of the transaction.
    - `details` union, required — Transaction details.
      - TransactionDetailsUtxoTransferRequest
        - `type` 'utxo_transfer', required — A UTXO transfer transaction.
        - `outputs` UtxoOutputRequest[] — The outputs of the transaction.<br>Must be provided and hold at least one output in case 'send_max_to' is not provided.
          - `to` union, required
            - UtxoOutputToAddressRequest
              - …
            - UtxoOutputToVaultAddressIdRequest
              - …
            - UtxoOutputToVaultIdRequest
              - …
            - UtxoOutputToContactIdRequest
              - …
          - `value` string, required
        - `send_max_to` union — The recipient to which to send the maximum amount of funds available, once other outputs are handled.<br>If no other outputs are provided, this recipient will receive the entire balance of the vault.<br>Either this field or a non-empty outputs field must be provided.
          - UtxoOutputToAddressRequest
            - `type` 'address', required
            - `address` string, required
          - UtxoOutputToVaultAddressIdRequest
            - `type` 'vault_address_id', required
            - `vault_address_id` string, uuid, required
          - UtxoOutputToVaultIdRequest
            - `type` 'vault_id', required
            - `vault_id` string, uuid, required
          - UtxoOutputToContactIdRequest
            - `type` 'contact_id', required — The type of the recipient.
            - `contact_id` string, uuid, required — The id of the address book contact.
        - `fee_per_byte` union — The fee details of the transaction. The details depend on which option you choose:<ul><li>Fee Priority or <li>Custom Fee Request </ul>
          - FeePriorityRequest
            - `type` 'priority', required
            - `priority_level` 'low' | 'medium' | 'high', required
          - CustomFeeRequest
            - `type` 'custom', required
            - `fee_per_byte` string, required — The fee per byte.
        - `push_mode` 'auto' | 'manual' | 'deferred'
        - `memos` string[] — List of memos to include in the transaction, provided as strings or hex-encoded.
      - TransactionDetailsUtxoPsbtRequest
        - `type` 'utxo_partially_signed_bitcoin_transaction', required — A partially signed bitcoin transaction (PSBT).
        - `psbt_raw_data` string, required — Partially signed bitcoin transaction data encoded as a hex string.
        - `auto_finalize` boolean — Whether to finalize the transaction or not.
        - `sender` UtxoAddress
          - `type` 'utxo', required
          - `address` string, required — The UTXO string address.
          - `address_type` 'legacy' | 'p2sh' | 'segwit' | 'taproot' | 'merkleroot', required
          - `chain` UtxoChain, required
            - `chain_type` 'utxo', required — The type of the chain.
            - `unique_id` 'bitcoin_mainnet' | 'bitcoin_testnet' | 'bitcoin_testnet_v4' | 'dogecoin_mainnet' | 'bitcoin_cash_mainnet' | 'pearl_testnet' | 'pearl_mainnet', required
        - `signer` string — The signer on the inputs.
        - `inputs` PsbtInput[] — Describes how to sign each input.
          - `index` integer, required — The input index to sign on.
          - `signer_identity` union, required
            - PsbtSignerIdentityAddress
              - …
            - PsbtSignerIdentityPublicKey
              - …
          - `sighash_types` integer[] — Flags that describe how to sign.
          - `disable_tweak_signer` boolean — Disable tweaking of taproot public key.
        - `push_mode` 'auto' | 'manual' | 'deferred'

## Response `200`

Successful Response

- union
  - PredictedAptosMessage
    - `policy_match` PolicyMatch
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval', required
    - `matched_policies` PolicyMatch[], required — List of policies matched by the transactions in the batch.
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval', required
    - `approval_request` ApprovalRequest — Represents an approval request for an action in the Fordefi platform
      - `state` 'created' | 'approved' | 'insufficient_approvers' | 'auto_approved' | 'failed', required — Represents the whole approval request state
      - `required_groups` integer, required — The number of required approval groups.
      - `approval_groups` ApprovalRequestGroup[], required — A list of the possible approvers from different groups.
        - `quorum_size` integer, required — The number of approvers required to approve the transaction.
        - `approvers` RequestApprover[], required — A list of the possible approvers.
          - `user` union, required
            - PersonRef
              - …
            - ApiUserRef
              - …
          - `modified_at` string, date-time, required — The date and time when this approval was modified.
          - `decision` string — The decision of the approver.
          - `state` 'pending' | 'approved' | 'unauthorized' | 'not_participated', required — Represents an approval state of a single approver
      - `error_message` string — The error message if the request failed.
    - `risks` TransactionRisk[], required — The list of risks associated with this transaction.
      - `type` 'transfer_to_erc20_contract' | 'organization_not_interacted_with_address' | 'vault_not_interacted_with_address' | 'allowance_to_eoa' | 'unlimited_allowance' | 'contract_not_verified' | 'bridge_dest_differ_from_sender' | 'nft_approve_for_all' | 'missing_simulation' | 'unsupported_simulation' | 'post_conditions_allow_mode' | 'safe_sensitive_operation', required
      - `severity` 'low' | 'medium' | 'high', required
      - `title` string, required — The title of the risk.
      - `description` string, required — A detailed description of the risk.
    - `note` string — An optional transaction note.
    - `tx_policy_explanation_id` string, uuid — The id of the transaction policy explanation produced for this prediction, if any.
    - `type` 'aptos_message', required — Aptos message type.
    - `chain` EnrichedAptosChain, required
      - `chain_type` 'aptos', required — The type of the chain.
      - `unique_id` 'aptos_mainnet' | 'aptos_testnet' | 'aptos_movement_mainnet' | 'aptos_movement_testnet', required
      - `name` string, required — The full blockchain name.
      - `native_currency_symbol` string, required — The native currency symbol.
      - `native_currency_name` string, required — The native currency name.
      - `blockchain_explorer` BlockchainExplorer — A blockchain explorer entry point.
        - `transaction_url` string, uri, required
        - `address_url` string, uri, required
        - `root_url` string, uri, required
        - `transaction_format_url` string, uri
        - `address_format_url` string, uri
        - `asset_format_url` string, uri
      - `logo_url` string, uri, required — The logo URL of the chain.
      - `is_testnet` boolean, required — Whether the chain is on a testnet.
      - `is_enabled` boolean, required — Whether the chain is enabled.
    - `sender` EnrichedAptosAddress, required
      - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
        - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
        - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
        - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
        - `name` string, required — The name of the vault.
        - `address` string — The address of the vault.
        - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
        - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
        - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
        - `end_user` EndUserRef
          - `id` string, uuid, required — The unique identifier of the user in the Fordefi platform.
          - `user_type` 'end_user', required — The type of the user.
          - `external_id` string, required — External id of the user.
          - `state` 'active' | 'deleted', required — The state of the user.
        - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
      - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
      - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
        - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
        - `name` string, required — The name of the contact.
        - `address_ref` union, required
          - AptosAddressBookContactAddressRef
            - `chain_type` 'aptos', required — The type of the chain.
            - `address` string, required — The address on the Aptos chain.
            - `chains` AptosChain[], required — The chains that the contact belongs to.
              - …
          - ArchAddressBookContactAddressRef
            - `chain_type` 'arch', required — The type of the chain.
            - `address` string, required — The address on the Arch chain.
            - `chains` ArchChain[], required — The chains the contact belongs to.
              - …
          - CantonAddressBookContactAddressRef
            - `chain_type` 'canton', required — The type of the chain.
            - `address` string, required — The party id on the Canton chain.
            - `chains` CantonChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - CosmosAddressBookContactAddressRef
            - `chain_type` 'cosmos', required — The type of the chain.
            - `address` string, required — The address on the cosmos chain.
            - `chain` CosmosChain, required
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - EVMAddressBookContactAddressRef
            - `chain_type` 'evm', required — The type of the chain.
            - `address` string, required — The address of the contact.
            - `chains` EvmChain[], required — The chains the contact belongs to.
              - …
          - SolanaAddressBookContactAddressRef
            - `chain_type` 'solana', required — The type of the chain.
            - `address` string, required — The address on the Solana chain.
            - `chains` SolanaChain[], required — The chains the contact belongs to.
              - …
          - StacksAddressBookContactAddressRef
            - `chain_type` 'stacks', required — The type of the chain.
            - `address` string, required — The address on the Stacks chain.
            - `chains` StacksChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - StarknetAddressBookContactAddressRef
            - `chain_type` 'starknet', required — The type of the chain.
            - `address` string, required — The address on the Starknet chain.
            - `chains` StarknetChain[], required — The chains the contact belongs to.
              - …
          - StellarAddressBookContactAddressRef
            - `chain_type` 'stellar', required — The type of the chain.
            - `address` string, required — The address on the Stellar chain.
            - `chains` StellarChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - SuiAddressBookContactAddressRef
            - `chain_type` 'sui', required — The type of the chain.
            - `address` string, required — The address on the Sui chain.
            - `chains` SuiChain[], required — The chains the contact belongs to.
              - …
          - TonAddressBookContactAddressRef
            - `chain_type` 'ton', required — The type of the chain.
            - `address` string, required — The address on the TON chain.
            - `chains` TonChain[], required — The chains the contact belongs to.
              - …
            - `comment` string — Comment is an additional address feature used for identifying a recipient.
          - TronAddressBookContactAddressRef
            - `chain_type` 'tron', required — The type of the chain.
            - `address` string, required — The address on the TRON chain.
            - `chains` TronChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - UtxoAddressBookContactAddressRef
            - `chain_type` 'utxo', required — The type of the chain.
            - `address` string, required — The address on the utxo chain.
            - `chain` UtxoChain, required
              - …
      - `type` 'aptos', required
      - `address` string, required — The Aptos address represented in hex format.
    - `aptos_message_type` 'personal_message_type', required
    - `message_to_display` string, required — User-friendly formatting of the message to be signed.
  - PredictedAptosTransaction
    - `policy_match` PolicyMatch
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval', required
    - `matched_policies` PolicyMatch[], required — List of policies matched by the transactions in the batch.
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval', required
    - `approval_request` ApprovalRequest — Represents an approval request for an action in the Fordefi platform
      - `state` 'created' | 'approved' | 'insufficient_approvers' | 'auto_approved' | 'failed', required — Represents the whole approval request state
      - `required_groups` integer, required — The number of required approval groups.
      - `approval_groups` ApprovalRequestGroup[], required — A list of the possible approvers from different groups.
        - `quorum_size` integer, required — The number of approvers required to approve the transaction.
        - `approvers` RequestApprover[], required — A list of the possible approvers.
          - `user` union, required
            - PersonRef
              - …
            - ApiUserRef
              - …
          - `modified_at` string, date-time, required — The date and time when this approval was modified.
          - `decision` string — The decision of the approver.
          - `state` 'pending' | 'approved' | 'unauthorized' | 'not_participated', required — Represents an approval state of a single approver
      - `error_message` string — The error message if the request failed.
    - `risks` TransactionRisk[], required — The list of risks associated with this transaction.
      - `type` 'transfer_to_erc20_contract' | 'organization_not_interacted_with_address' | 'vault_not_interacted_with_address' | 'allowance_to_eoa' | 'unlimited_allowance' | 'contract_not_verified' | 'bridge_dest_differ_from_sender' | 'nft_approve_for_all' | 'missing_simulation' | 'unsupported_simulation' | 'post_conditions_allow_mode' | 'safe_sensitive_operation', required
      - `severity` 'low' | 'medium' | 'high', required
      - `title` string, required — The title of the risk.
      - `description` string, required — A detailed description of the risk.
    - `note` string — An optional transaction note.
    - `tx_policy_explanation_id` string, uuid — The id of the transaction policy explanation produced for this prediction, if any.
    - `aml_policy_match` AmlPolicyMatchOutgoing
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval' | 'skip', required
    - `aml_results` AmlResults
      - `scan_status` 'error' | 'timeout' | 'skipped' | 'completed' | 'unsupported_chain' | 'pending', required
      - `error_message` string — The error message if the scan failed.
      - `scan_results` ChainalysisScanResult
        - `type` 'chainalysis', required — The type of the policy.
        - `alerts` ChainalysisAlert[], required — The list of alerts.
          - `category` Category, required
            - `id` integer, required — The category ID.
            - `name` string, required — The category name.
          - `risk_rating` 'low' | 'medium' | 'high' | 'severe', required
          - `exposure_type` 'direct' | 'indirect', required
          - `service` string — The name of the service as defined by Chainalysis. If null returns, Chainalysis has not yet identified the service's name.
        - `external_id` string, uuid, required — A unique identifier of the scan.
    - `simulation_status_result` SimulationStatusResult
      - `simulation_status` 'success' | 'failed' | 'reverted' | 'skipped'
      - `details` string, required — Details about transaction reversion if occurred.
    - `type` 'aptos_transaction', required — Aptos transaction type.
    - `expected_result` AptosTransactionResult, required
      - `reversion` AptosReversion, required
        - `state` 'not_reverted' | 'unknown_revert' | 'contract_asserted' | 'insufficient_funds_gas_and_value', required
        - `reason` string — The reason for the reversion (additional information).
      - `fee_statement` AptosFeeStatement, required
        - `execution_gas_units` string, required
        - `io_gas_units` string, required
        - `storage_fee_octas` string, required
        - `storage_fee_refund_octas` string, required
        - `total_charge_gas_units` string, required
        - `total_gas` string, required — The total gas fee of the transaction (in Octa).
        - `priced_asset` PricedAsset, required
          - `type` 'asset_price', required
          - `asset_info` AssetInfo, required
            - `id` string, uuid, required — The asset ID.
            - `asset_identifier` union, required
              - …
            - `name` string, required — The name of the asset.
            - `symbol` string, required — The symbol (ticker) of the asset.
            - `decimals` integer, required
            - `verified` boolean, required — `True` if this asset is verified by Fordefi, `False` otherwise.
            - `metadata_uri` string — The URI of the asset metadata.
            - `is_spam` boolean, required — `True` if this asset is spam, `False` otherwise.
            - `logo_url` string, uri — The URL of the asset logo.
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the asset.
            - `issuer_name` string — Best-effort display name of the issuer
          - `price` Price — Price represents a price in a given FiatCurrency.
            - `price` string, required — The price in the given fiat currency.
            - `price_float` string, required — The absolute price in the given fiat currency. When is_negative is true the asset's value is the negative of this (e.g. a debt token).
            - `is_negative` boolean — Whether the asset's value is negative (e.g. a debt token). price_float holds the absolute value.
            - `fiat_currency` FiatCurrency, required
              - …
      - `effects` AptosEffects, required
        - `balance_changes` AptosBalanceChangeEffect[], required
          - `priced_asset` PricedAsset, required
            - `type` 'asset_price', required
            - `asset_info` AssetInfo, required
              - …
            - `price` Price — Price represents a price in a given FiatCurrency.
              - …
          - `diff` string, required — The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
          - `address` EnrichedAptosAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'aptos', required
            - `address` string, required — The Aptos address represented in hex format.
        - `transfers` AptosTransferEffect[], required
          - `priced_asset` PricedAsset, required
            - `type` 'asset_price', required
            - `asset_info` AssetInfo, required
              - …
            - `price` Price — Price represents a price in a given FiatCurrency.
              - …
          - `amount` string, required — The amount of the transfer.
          - `from` EnrichedAptosAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'aptos', required
            - `address` string, required — The Aptos address represented in hex format.
          - `to` EnrichedAptosAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'aptos', required
            - `address` string, required — The Aptos address represented in hex format.
      - `raw_result` string — The raw result of the transaction.
    - `chain` EnrichedAptosChain, required
      - `chain_type` 'aptos', required — The type of the chain.
      - `unique_id` 'aptos_mainnet' | 'aptos_testnet' | 'aptos_movement_mainnet' | 'aptos_movement_testnet', required
      - `name` string, required — The full blockchain name.
      - `native_currency_symbol` string, required — The native currency symbol.
      - `native_currency_name` string, required — The native currency name.
      - `blockchain_explorer` BlockchainExplorer — A blockchain explorer entry point.
        - `transaction_url` string, uri, required
        - `address_url` string, uri, required
        - `root_url` string, uri, required
        - `transaction_format_url` string, uri
        - `address_format_url` string, uri
        - `asset_format_url` string, uri
      - `logo_url` string, uri, required — The logo URL of the chain.
      - `is_testnet` boolean, required — Whether the chain is on a testnet.
      - `is_enabled` boolean, required — Whether the chain is enabled.
    - `payload` union, required — The payload of the transaction.
      - AptosEntryFunctionPayload
        - `typed_arguments` string[], required — The typed arguments of the transaction.
        - `arguments` string[], required — The arguments of the transaction.
        - `type` 'entry_point', required
        - `function_id` string, required — The entry function of the transaction.
        - `address` EnrichedAptosAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'aptos', required
          - `address` string, required — The Aptos address represented in hex format.
        - `module` string, required — The module of the entry function.
        - `function_name` string, required — The name of the entry function.
      - ScriptPayload
        - `typed_arguments` string[], required — The typed arguments of the transaction.
        - `arguments` string[], required — The arguments of the transaction.
        - `type` 'script', required
        - `code` string, required — The script code of the transaction.
    - `aptos_transaction_type_details` union, required — Details of the Aptos transaction based on its type.
      - AptosNativeTransferDetails
        - `type` 'native_transfer', required — A transaction involving the transfer of APT coin from one address to another.
        - `sender` EnrichedAptosAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'aptos', required
          - `address` string, required — The Aptos address represented in hex format.
        - `recipient` EnrichedAptosAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'aptos', required
          - `address` string, required — The Aptos address represented in hex format.
        - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
      - AptosCoinTransferDetails
        - `type` 'coin_transfer', required — A transaction involving the transfer of non-APT coin from one address to another.
        - `sender` EnrichedAptosAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'aptos', required
          - `address` string, required — The Aptos address represented in hex format.
        - `recipient` EnrichedAptosAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'aptos', required
          - `address` string, required — The Aptos address represented in hex format.
        - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
      - AptosEntryPointDetails
        - `type` 'entry_point', required — A transaction with an entry point function.
        - `recipient` EnrichedAptosAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'aptos', required
          - `address` string, required — The Aptos address represented in hex format.
      - AptosScriptDetails
        - `type` 'script', required — A transaction with running a move script.
        - `code` string, required — The code of the script.
    - `suggested_fees` AptosSuggestedFees, required
      - `type` 'aptos', required — The type of the chain.
      - `low` string, required — The low suggested fee price.
      - `medium` string, required — The medium suggested fee price.
      - `high` string, required — The high suggested fee price
      - `chain_unique_id` 'aptos_mainnet' | 'aptos_testnet' | 'aptos_movement_mainnet' | 'aptos_movement_testnet', required
    - `gas_submitted` AptosGasData, required
      - `gas_limit` string, required — The gas limit of the transaction.
      - `price` AptosGasPrice, required
        - `priority_level` 'custom' | 'low' | 'medium' | 'high', required
        - `price` string, required — The price per gas unit (in Octa).
        - `fiat_price` Price — Price represents a price in a given FiatCurrency.
          - `price` string, required — The price in the given fiat currency.
          - `price_float` string, required — The absolute price in the given fiat currency. When is_negative is true the asset's value is the negative of this (e.g. a debt token).
          - `is_negative` boolean — Whether the asset's value is negative (e.g. a debt token). price_float holds the absolute value.
          - `fiat_currency` FiatCurrency, required
            - `currency_symbol` 'usd', required — FiatCurrencySymbol
            - `decimals` integer, required — The number of decimals in the fiat currency.
    - `with_external_fee_payer` boolean — If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.
    - `fee_payer` EnrichedAptosAddress
      - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
        - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
        - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
        - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
        - `name` string, required — The name of the vault.
        - `address` string — The address of the vault.
        - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
        - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
        - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
        - `end_user` EndUserRef
          - `id` string, uuid, required — The unique identifier of the user in the Fordefi platform.
          - `user_type` 'end_user', required — The type of the user.
          - `external_id` string, required — External id of the user.
          - `state` 'active' | 'deleted', required — The state of the user.
        - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
      - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
      - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
        - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
        - `name` string, required — The name of the contact.
        - `address_ref` union, required
          - AptosAddressBookContactAddressRef
            - `chain_type` 'aptos', required — The type of the chain.
            - `address` string, required — The address on the Aptos chain.
            - `chains` AptosChain[], required — The chains that the contact belongs to.
              - …
          - ArchAddressBookContactAddressRef
            - `chain_type` 'arch', required — The type of the chain.
            - `address` string, required — The address on the Arch chain.
            - `chains` ArchChain[], required — The chains the contact belongs to.
              - …
          - CantonAddressBookContactAddressRef
            - `chain_type` 'canton', required — The type of the chain.
            - `address` string, required — The party id on the Canton chain.
            - `chains` CantonChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - CosmosAddressBookContactAddressRef
            - `chain_type` 'cosmos', required — The type of the chain.
            - `address` string, required — The address on the cosmos chain.
            - `chain` CosmosChain, required
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - EVMAddressBookContactAddressRef
            - `chain_type` 'evm', required — The type of the chain.
            - `address` string, required — The address of the contact.
            - `chains` EvmChain[], required — The chains the contact belongs to.
              - …
          - SolanaAddressBookContactAddressRef
            - `chain_type` 'solana', required — The type of the chain.
            - `address` string, required — The address on the Solana chain.
            - `chains` SolanaChain[], required — The chains the contact belongs to.
              - …
          - StacksAddressBookContactAddressRef
            - `chain_type` 'stacks', required — The type of the chain.
            - `address` string, required — The address on the Stacks chain.
            - `chains` StacksChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - StarknetAddressBookContactAddressRef
            - `chain_type` 'starknet', required — The type of the chain.
            - `address` string, required — The address on the Starknet chain.
            - `chains` StarknetChain[], required — The chains the contact belongs to.
              - …
          - StellarAddressBookContactAddressRef
            - `chain_type` 'stellar', required — The type of the chain.
            - `address` string, required — The address on the Stellar chain.
            - `chains` StellarChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - SuiAddressBookContactAddressRef
            - `chain_type` 'sui', required — The type of the chain.
            - `address` string, required — The address on the Sui chain.
            - `chains` SuiChain[], required — The chains the contact belongs to.
              - …
          - TonAddressBookContactAddressRef
            - `chain_type` 'ton', required — The type of the chain.
            - `address` string, required — The address on the TON chain.
            - `chains` TonChain[], required — The chains the contact belongs to.
              - …
            - `comment` string — Comment is an additional address feature used for identifying a recipient.
          - TronAddressBookContactAddressRef
            - `chain_type` 'tron', required — The type of the chain.
            - `address` string, required — The address on the TRON chain.
            - `chains` TronChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - UtxoAddressBookContactAddressRef
            - `chain_type` 'utxo', required — The type of the chain.
            - `address` string, required — The address on the utxo chain.
            - `chain` UtxoChain, required
              - …
      - `type` 'aptos', required
      - `address` string, required — The Aptos address represented in hex format.
    - `sender` EnrichedAptosAddress, required
      - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
        - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
        - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
        - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
        - `name` string, required — The name of the vault.
        - `address` string — The address of the vault.
        - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
        - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
        - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
        - `end_user` EndUserRef
          - `id` string, uuid, required — The unique identifier of the user in the Fordefi platform.
          - `user_type` 'end_user', required — The type of the user.
          - `external_id` string, required — External id of the user.
          - `state` 'active' | 'deleted', required — The state of the user.
        - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
      - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
      - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
        - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
        - `name` string, required — The name of the contact.
        - `address_ref` union, required
          - AptosAddressBookContactAddressRef
            - `chain_type` 'aptos', required — The type of the chain.
            - `address` string, required — The address on the Aptos chain.
            - `chains` AptosChain[], required — The chains that the contact belongs to.
              - …
          - ArchAddressBookContactAddressRef
            - `chain_type` 'arch', required — The type of the chain.
            - `address` string, required — The address on the Arch chain.
            - `chains` ArchChain[], required — The chains the contact belongs to.
              - …
          - CantonAddressBookContactAddressRef
            - `chain_type` 'canton', required — The type of the chain.
            - `address` string, required — The party id on the Canton chain.
            - `chains` CantonChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - CosmosAddressBookContactAddressRef
            - `chain_type` 'cosmos', required — The type of the chain.
            - `address` string, required — The address on the cosmos chain.
            - `chain` CosmosChain, required
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - EVMAddressBookContactAddressRef
            - `chain_type` 'evm', required — The type of the chain.
            - `address` string, required — The address of the contact.
            - `chains` EvmChain[], required — The chains the contact belongs to.
              - …
          - SolanaAddressBookContactAddressRef
            - `chain_type` 'solana', required — The type of the chain.
            - `address` string, required — The address on the Solana chain.
            - `chains` SolanaChain[], required — The chains the contact belongs to.
              - …
          - StacksAddressBookContactAddressRef
            - `chain_type` 'stacks', required — The type of the chain.
            - `address` string, required — The address on the Stacks chain.
            - `chains` StacksChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - StarknetAddressBookContactAddressRef
            - `chain_type` 'starknet', required — The type of the chain.
            - `address` string, required — The address on the Starknet chain.
            - `chains` StarknetChain[], required — The chains the contact belongs to.
              - …
          - StellarAddressBookContactAddressRef
            - `chain_type` 'stellar', required — The type of the chain.
            - `address` string, required — The address on the Stellar chain.
            - `chains` StellarChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - SuiAddressBookContactAddressRef
            - `chain_type` 'sui', required — The type of the chain.
            - `address` string, required — The address on the Sui chain.
            - `chains` SuiChain[], required — The chains the contact belongs to.
              - …
          - TonAddressBookContactAddressRef
            - `chain_type` 'ton', required — The type of the chain.
            - `address` string, required — The address on the TON chain.
            - `chains` TonChain[], required — The chains the contact belongs to.
              - …
            - `comment` string — Comment is an additional address feature used for identifying a recipient.
          - TronAddressBookContactAddressRef
            - `chain_type` 'tron', required — The type of the chain.
            - `address` string, required — The address on the TRON chain.
            - `chains` TronChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - UtxoAddressBookContactAddressRef
            - `chain_type` 'utxo', required — The type of the chain.
            - `address` string, required — The address on the utxo chain.
            - `chain` UtxoChain, required
              - …
      - `type` 'aptos', required
      - `address` string, required — The Aptos address represented in hex format.
  - PredictedArchTransaction
    - `policy_match` PolicyMatch
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval', required
    - `matched_policies` PolicyMatch[], required — List of policies matched by the transactions in the batch.
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval', required
    - `approval_request` ApprovalRequest — Represents an approval request for an action in the Fordefi platform
      - `state` 'created' | 'approved' | 'insufficient_approvers' | 'auto_approved' | 'failed', required — Represents the whole approval request state
      - `required_groups` integer, required — The number of required approval groups.
      - `approval_groups` ApprovalRequestGroup[], required — A list of the possible approvers from different groups.
        - `quorum_size` integer, required — The number of approvers required to approve the transaction.
        - `approvers` RequestApprover[], required — A list of the possible approvers.
          - `user` union, required
            - PersonRef
              - …
            - ApiUserRef
              - …
          - `modified_at` string, date-time, required — The date and time when this approval was modified.
          - `decision` string — The decision of the approver.
          - `state` 'pending' | 'approved' | 'unauthorized' | 'not_participated', required — Represents an approval state of a single approver
      - `error_message` string — The error message if the request failed.
    - `risks` TransactionRisk[], required — The list of risks associated with this transaction.
      - `type` 'transfer_to_erc20_contract' | 'organization_not_interacted_with_address' | 'vault_not_interacted_with_address' | 'allowance_to_eoa' | 'unlimited_allowance' | 'contract_not_verified' | 'bridge_dest_differ_from_sender' | 'nft_approve_for_all' | 'missing_simulation' | 'unsupported_simulation' | 'post_conditions_allow_mode' | 'safe_sensitive_operation', required
      - `severity` 'low' | 'medium' | 'high', required
      - `title` string, required — The title of the risk.
      - `description` string, required — A detailed description of the risk.
    - `note` string — An optional transaction note.
    - `tx_policy_explanation_id` string, uuid — The id of the transaction policy explanation produced for this prediction, if any.
    - `aml_policy_match` AmlPolicyMatchOutgoing
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval' | 'skip', required
    - `aml_results` AmlResults
      - `scan_status` 'error' | 'timeout' | 'skipped' | 'completed' | 'unsupported_chain' | 'pending', required
      - `error_message` string — The error message if the scan failed.
      - `scan_results` ChainalysisScanResult
        - `type` 'chainalysis', required — The type of the policy.
        - `alerts` ChainalysisAlert[], required — The list of alerts.
          - `category` Category, required
            - `id` integer, required — The category ID.
            - `name` string, required — The category name.
          - `risk_rating` 'low' | 'medium' | 'high' | 'severe', required
          - `exposure_type` 'direct' | 'indirect', required
          - `service` string — The name of the service as defined by Chainalysis. If null returns, Chainalysis has not yet identified the service's name.
        - `external_id` string, uuid, required — A unique identifier of the scan.
    - `simulation_status_result` SimulationStatusResult
      - `simulation_status` 'success' | 'failed' | 'reverted' | 'skipped'
      - `details` string, required — Details about transaction reversion if occurred.
    - `type` 'arch_transaction', required — ARCH transaction type.
    - `expected_result` ArchTransactionResult, required
      - `reversion` ArchReversion, required
        - `state` 'not_reverted' | 'unknown_revert' | 'contract_asserted' | 'insufficient_funds_gas_and_value' | 'insufficient_funds_for_rent', required
        - `reason` string — The reason for the reversion (additional information).
      - `transaction_error` string — The description of the error of the transaction.
      - `fee` ArchFee, required
        - `base_fee` string, required — The base fee of the transaction (in lamports).
        - `total_fee` string, required — The total fee of the transaction (in lamports).
        - `priced_asset` PricedAsset, required
          - `type` 'asset_price', required
          - `asset_info` AssetInfo, required
            - `id` string, uuid, required — The asset ID.
            - `asset_identifier` union, required
              - …
            - `name` string, required — The name of the asset.
            - `symbol` string, required — The symbol (ticker) of the asset.
            - `decimals` integer, required
            - `verified` boolean, required — `True` if this asset is verified by Fordefi, `False` otherwise.
            - `metadata_uri` string — The URI of the asset metadata.
            - `is_spam` boolean, required — `True` if this asset is spam, `False` otherwise.
            - `logo_url` string, uri — The URL of the asset logo.
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the asset.
            - `issuer_name` string — Best-effort display name of the issuer
          - `price` Price — Price represents a price in a given FiatCurrency.
            - `price` string, required — The price in the given fiat currency.
            - `price_float` string, required — The absolute price in the given fiat currency. When is_negative is true the asset's value is the negative of this (e.g. a debt token).
            - `is_negative` boolean — Whether the asset's value is negative (e.g. a debt token). price_float holds the absolute value.
            - `fiat_currency` FiatCurrency, required
              - …
      - `effects` ArchEffects, required
        - `balance_changes` ArchBalanceChangeEffect[], required — The aggregated balance changes of addresses.
          - `priced_asset` PricedAsset, required
            - `type` 'asset_price', required
            - `asset_info` AssetInfo, required
              - …
            - `price` Price — Price represents a price in a given FiatCurrency.
              - …
          - `diff` string, required — The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
          - `address` EnrichedArchAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'arch', required
            - `address` string, required — The Arch address represented in Base58 format.
        - `transfers` ArchTransferEffect[], required — The transfer events of the transaction.
          - `priced_asset` PricedAsset, required
            - `type` 'asset_price', required
            - `asset_info` AssetInfo, required
              - …
            - `price` Price — Price represents a price in a given FiatCurrency.
              - …
          - `amount` string, required — The amount of the transfer.
          - `from` EnrichedArchAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'arch', required
            - `address` string, required — The Arch address represented in Base58 format.
          - `to` EnrichedArchAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'arch', required
            - `address` string, required — The Arch address represented in Base58 format.
    - `chain` EnrichedArchChain, required
      - `chain_type` 'arch', required — The type of the chain.
      - `unique_id` 'arch_mainnet' | 'arch_testnet', required
      - `name` string, required — The full blockchain name.
      - `native_currency_symbol` string, required — The native currency symbol.
      - `native_currency_name` string, required — The native currency name.
      - `blockchain_explorer` BlockchainExplorer — A blockchain explorer entry point.
        - `transaction_url` string, uri, required
        - `address_url` string, uri, required
        - `root_url` string, uri, required
        - `transaction_format_url` string, uri
        - `address_format_url` string, uri
        - `asset_format_url` string, uri
      - `logo_url` string, uri, required — The logo URL of the chain.
      - `is_testnet` boolean, required — Whether the chain is on a testnet.
      - `is_enabled` boolean, required — Whether the chain is enabled.
    - `arch_transaction_type_details` union, required — Details of the Arch transaction based on its type.
      - ArchNativeTransferDetails
        - `type` 'native_transfer', required — A transaction involving the transfer of native currency from one address to another.
        - `recipient` EnrichedArchAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'arch', required
          - `address` string, required — The Arch address represented in Base58 format.
        - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
      - ArchTokenTransferDetails
        - `type` 'token_transfer', required — A transaction involving the transfer of native currency from one address to another.
        - `recipient` EnrichedArchAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'arch', required
          - `address` string, required — The Arch address represented in Base58 format.
        - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
      - ArchRawTransactionDetails
        - `type` 'raw_transaction', required — A transaction capable of any operation.
        - `recipients` EnrichedArchAddress[], required — The recipients of the tokens.
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'arch', required
          - `address` string, required — The Arch address represented in Base58 format.
    - `sender` EnrichedArchAddress, required
      - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
        - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
        - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
        - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
        - `name` string, required — The name of the vault.
        - `address` string — The address of the vault.
        - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
        - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
        - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
        - `end_user` EndUserRef
          - `id` string, uuid, required — The unique identifier of the user in the Fordefi platform.
          - `user_type` 'end_user', required — The type of the user.
          - `external_id` string, required — External id of the user.
          - `state` 'active' | 'deleted', required — The state of the user.
        - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
      - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
      - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
        - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
        - `name` string, required — The name of the contact.
        - `address_ref` union, required
          - AptosAddressBookContactAddressRef
            - `chain_type` 'aptos', required — The type of the chain.
            - `address` string, required — The address on the Aptos chain.
            - `chains` AptosChain[], required — The chains that the contact belongs to.
              - …
          - ArchAddressBookContactAddressRef
            - `chain_type` 'arch', required — The type of the chain.
            - `address` string, required — The address on the Arch chain.
            - `chains` ArchChain[], required — The chains the contact belongs to.
              - …
          - CantonAddressBookContactAddressRef
            - `chain_type` 'canton', required — The type of the chain.
            - `address` string, required — The party id on the Canton chain.
            - `chains` CantonChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - CosmosAddressBookContactAddressRef
            - `chain_type` 'cosmos', required — The type of the chain.
            - `address` string, required — The address on the cosmos chain.
            - `chain` CosmosChain, required
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - EVMAddressBookContactAddressRef
            - `chain_type` 'evm', required — The type of the chain.
            - `address` string, required — The address of the contact.
            - `chains` EvmChain[], required — The chains the contact belongs to.
              - …
          - SolanaAddressBookContactAddressRef
            - `chain_type` 'solana', required — The type of the chain.
            - `address` string, required — The address on the Solana chain.
            - `chains` SolanaChain[], required — The chains the contact belongs to.
              - …
          - StacksAddressBookContactAddressRef
            - `chain_type` 'stacks', required — The type of the chain.
            - `address` string, required — The address on the Stacks chain.
            - `chains` StacksChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - StarknetAddressBookContactAddressRef
            - `chain_type` 'starknet', required — The type of the chain.
            - `address` string, required — The address on the Starknet chain.
            - `chains` StarknetChain[], required — The chains the contact belongs to.
              - …
          - StellarAddressBookContactAddressRef
            - `chain_type` 'stellar', required — The type of the chain.
            - `address` string, required — The address on the Stellar chain.
            - `chains` StellarChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - SuiAddressBookContactAddressRef
            - `chain_type` 'sui', required — The type of the chain.
            - `address` string, required — The address on the Sui chain.
            - `chains` SuiChain[], required — The chains the contact belongs to.
              - …
          - TonAddressBookContactAddressRef
            - `chain_type` 'ton', required — The type of the chain.
            - `address` string, required — The address on the TON chain.
            - `chains` TonChain[], required — The chains the contact belongs to.
              - …
            - `comment` string — Comment is an additional address feature used for identifying a recipient.
          - TronAddressBookContactAddressRef
            - `chain_type` 'tron', required — The type of the chain.
            - `address` string, required — The address on the TRON chain.
            - `chains` TronChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - UtxoAddressBookContactAddressRef
            - `chain_type` 'utxo', required — The type of the chain.
            - `address` string, required — The address on the utxo chain.
            - `chain` UtxoChain, required
              - …
      - `type` 'arch', required
      - `address` string, required — The Arch address represented in Base58 format.
    - `instructions` ArchCompiledInstruction[], required — The instructions of the transaction.
      - `program_index` integer, required — The program index.
      - `data` string, required — The instruction data in Base64 format.
      - `account_indexes` integer[], required — The indexes of the instruction accounts in the transaction accounts list.
      - `program` EnrichedArchAddress, required
        - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
          - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
          - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
          - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
          - `name` string, required — The name of the vault.
          - `address` string — The address of the vault.
          - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
          - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
          - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
          - `end_user` EndUserRef
            - `id` string, uuid, required — The unique identifier of the user in the Fordefi platform.
            - `user_type` 'end_user', required — The type of the user.
            - `external_id` string, required — External id of the user.
            - `state` 'active' | 'deleted', required — The state of the user.
          - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
        - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
        - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
          - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
          - `name` string, required — The name of the contact.
          - `address_ref` union, required
            - AptosAddressBookContactAddressRef
              - …
            - ArchAddressBookContactAddressRef
              - …
            - CantonAddressBookContactAddressRef
              - …
            - CosmosAddressBookContactAddressRef
              - …
            - EVMAddressBookContactAddressRef
              - …
            - SolanaAddressBookContactAddressRef
              - …
            - StacksAddressBookContactAddressRef
              - …
            - StarknetAddressBookContactAddressRef
              - …
            - StellarAddressBookContactAddressRef
              - …
            - SuiAddressBookContactAddressRef
              - …
            - TonAddressBookContactAddressRef
              - …
            - TronAddressBookContactAddressRef
              - …
            - UtxoAddressBookContactAddressRef
              - …
        - `type` 'arch', required
        - `address` string, required — The Arch address represented in Base58 format.
      - `base58_data` string — The instruction data encoded in Base58 format.
    - `raw_transaction` string — The serialized transaction encoded as a base64 string
  - PredictedCantonTransaction
    - `policy_match` PolicyMatch
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval', required
    - `matched_policies` PolicyMatch[], required — List of policies matched by the transactions in the batch.
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval', required
    - `approval_request` ApprovalRequest — Represents an approval request for an action in the Fordefi platform
      - `state` 'created' | 'approved' | 'insufficient_approvers' | 'auto_approved' | 'failed', required — Represents the whole approval request state
      - `required_groups` integer, required — The number of required approval groups.
      - `approval_groups` ApprovalRequestGroup[], required — A list of the possible approvers from different groups.
        - `quorum_size` integer, required — The number of approvers required to approve the transaction.
        - `approvers` RequestApprover[], required — A list of the possible approvers.
          - `user` union, required
            - PersonRef
              - …
            - ApiUserRef
              - …
          - `modified_at` string, date-time, required — The date and time when this approval was modified.
          - `decision` string — The decision of the approver.
          - `state` 'pending' | 'approved' | 'unauthorized' | 'not_participated', required — Represents an approval state of a single approver
      - `error_message` string — The error message if the request failed.
    - `risks` TransactionRisk[], required — The list of risks associated with this transaction.
      - `type` 'transfer_to_erc20_contract' | 'organization_not_interacted_with_address' | 'vault_not_interacted_with_address' | 'allowance_to_eoa' | 'unlimited_allowance' | 'contract_not_verified' | 'bridge_dest_differ_from_sender' | 'nft_approve_for_all' | 'missing_simulation' | 'unsupported_simulation' | 'post_conditions_allow_mode' | 'safe_sensitive_operation', required
      - `severity` 'low' | 'medium' | 'high', required
      - `title` string, required — The title of the risk.
      - `description` string, required — A detailed description of the risk.
    - `note` string — An optional transaction note.
    - `tx_policy_explanation_id` string, uuid — The id of the transaction policy explanation produced for this prediction, if any.
    - `aml_policy_match` AmlPolicyMatchOutgoing
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval' | 'skip', required
    - `aml_results` AmlResults
      - `scan_status` 'error' | 'timeout' | 'skipped' | 'completed' | 'unsupported_chain' | 'pending', required
      - `error_message` string — The error message if the scan failed.
      - `scan_results` ChainalysisScanResult
        - `type` 'chainalysis', required — The type of the policy.
        - `alerts` ChainalysisAlert[], required — The list of alerts.
          - `category` Category, required
            - `id` integer, required — The category ID.
            - `name` string, required — The category name.
          - `risk_rating` 'low' | 'medium' | 'high' | 'severe', required
          - `exposure_type` 'direct' | 'indirect', required
          - `service` string — The name of the service as defined by Chainalysis. If null returns, Chainalysis has not yet identified the service's name.
        - `external_id` string, uuid, required — A unique identifier of the scan.
    - `simulation_status_result` SimulationStatusResult
      - `simulation_status` 'success' | 'failed' | 'reverted' | 'skipped'
      - `details` string, required — Details about transaction reversion if occurred.
    - `type` 'canton_transaction', required — Canton transaction type.
    - `canton_transaction_type_details` union, required — Details of the Canton transaction based on its type.
      - CantonNativeTransferDetails
        - `type` 'native_transfer', required — A transaction involving the transfer of native Canton currency from one address to another.
        - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the recipient is unknown.
      - CantonTokenTransferDetails
        - `type` 'token_transfer', required — A transaction involving the transfer of a CIP-56 token from one address to another.
        - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the recipient is unknown.
      - CantonPartyAllocationDetails
        - `type` 'party_allocation', required — A transaction that allocates an external party on a Canton node.
      - CantonApproveTransferDetails
        - `type` 'approve_transfer', required — A transaction that approves pending incoming transfers.
      - CantonPreApprovalSetupDetails
        - `type` 'pre_approval_setup', required — A transaction that sets up a transfer pre-approval for auto-accepting incoming transfers.
        - `asset` PricedAsset, required
          - `type` 'asset_price', required
          - `asset_info` AssetInfo, required
            - `id` string, uuid, required — The asset ID.
            - `asset_identifier` union, required
              - …
            - `name` string, required — The name of the asset.
            - `symbol` string, required — The symbol (ticker) of the asset.
            - `decimals` integer, required
            - `verified` boolean, required — `True` if this asset is verified by Fordefi, `False` otherwise.
            - `metadata_uri` string — The URI of the asset metadata.
            - `is_spam` boolean, required — `True` if this asset is spam, `False` otherwise.
            - `logo_url` string, uri — The URL of the asset logo.
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the asset.
            - `issuer_name` string — Best-effort display name of the issuer
          - `price` Price — Price represents a price in a given FiatCurrency.
            - `price` string, required — The price in the given fiat currency.
            - `price_float` string, required — The absolute price in the given fiat currency. When is_negative is true the asset's value is the negative of this (e.g. a debt token).
            - `is_negative` boolean — Whether the asset's value is negative (e.g. a debt token). price_float holds the absolute value.
            - `fiat_currency` FiatCurrency, required
              - …
    - `chain` EnrichedCantonChain, required
      - `chain_type` 'canton', required — The type of the chain.
      - `unique_id` 'canton_mainnet' | 'canton_testnet', required
      - `name` string, required — The full blockchain name.
      - `native_currency_symbol` string, required — The native currency symbol.
      - `native_currency_name` string, required — The native currency name.
      - `blockchain_explorer` BlockchainExplorer — A blockchain explorer entry point.
        - `transaction_url` string, uri, required
        - `address_url` string, uri, required
        - `root_url` string, uri, required
        - `transaction_format_url` string, uri
        - `address_format_url` string, uri
        - `asset_format_url` string, uri
      - `logo_url` string, uri, required — The logo URL of the chain.
      - `is_testnet` boolean, required — Whether the chain is on a testnet.
      - `is_enabled` boolean, required — Whether the chain is enabled.
    - `sender` EnrichedCantonAddress, required
      - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
        - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
        - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
        - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
        - `name` string, required — The name of the vault.
        - `address` string — The address of the vault.
        - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
        - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
        - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
        - `end_user` EndUserRef
          - `id` string, uuid, required — The unique identifier of the user in the Fordefi platform.
          - `user_type` 'end_user', required — The type of the user.
          - `external_id` string, required — External id of the user.
          - `state` 'active' | 'deleted', required — The state of the user.
        - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
      - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
      - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
        - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
        - `name` string, required — The name of the contact.
        - `address_ref` union, required
          - AptosAddressBookContactAddressRef
            - `chain_type` 'aptos', required — The type of the chain.
            - `address` string, required — The address on the Aptos chain.
            - `chains` AptosChain[], required — The chains that the contact belongs to.
              - …
          - ArchAddressBookContactAddressRef
            - `chain_type` 'arch', required — The type of the chain.
            - `address` string, required — The address on the Arch chain.
            - `chains` ArchChain[], required — The chains the contact belongs to.
              - …
          - CantonAddressBookContactAddressRef
            - `chain_type` 'canton', required — The type of the chain.
            - `address` string, required — The party id on the Canton chain.
            - `chains` CantonChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - CosmosAddressBookContactAddressRef
            - `chain_type` 'cosmos', required — The type of the chain.
            - `address` string, required — The address on the cosmos chain.
            - `chain` CosmosChain, required
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - EVMAddressBookContactAddressRef
            - `chain_type` 'evm', required — The type of the chain.
            - `address` string, required — The address of the contact.
            - `chains` EvmChain[], required — The chains the contact belongs to.
              - …
          - SolanaAddressBookContactAddressRef
            - `chain_type` 'solana', required — The type of the chain.
            - `address` string, required — The address on the Solana chain.
            - `chains` SolanaChain[], required — The chains the contact belongs to.
              - …
          - StacksAddressBookContactAddressRef
            - `chain_type` 'stacks', required — The type of the chain.
            - `address` string, required — The address on the Stacks chain.
            - `chains` StacksChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - StarknetAddressBookContactAddressRef
            - `chain_type` 'starknet', required — The type of the chain.
            - `address` string, required — The address on the Starknet chain.
            - `chains` StarknetChain[], required — The chains the contact belongs to.
              - …
          - StellarAddressBookContactAddressRef
            - `chain_type` 'stellar', required — The type of the chain.
            - `address` string, required — The address on the Stellar chain.
            - `chains` StellarChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - SuiAddressBookContactAddressRef
            - `chain_type` 'sui', required — The type of the chain.
            - `address` string, required — The address on the Sui chain.
            - `chains` SuiChain[], required — The chains the contact belongs to.
              - …
          - TonAddressBookContactAddressRef
            - `chain_type` 'ton', required — The type of the chain.
            - `address` string, required — The address on the TON chain.
            - `chains` TonChain[], required — The chains the contact belongs to.
              - …
            - `comment` string — Comment is an additional address feature used for identifying a recipient.
          - TronAddressBookContactAddressRef
            - `chain_type` 'tron', required — The type of the chain.
            - `address` string, required — The address on the TRON chain.
            - `chains` TronChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - UtxoAddressBookContactAddressRef
            - `chain_type` 'utxo', required — The type of the chain.
            - `address` string, required — The address on the utxo chain.
            - `chain` UtxoChain, required
              - …
      - `type` 'canton', required
      - `address` string, required — The Canton address.
    - `recipient` EnrichedCantonAddress
      - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
        - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
        - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
        - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
        - `name` string, required — The name of the vault.
        - `address` string — The address of the vault.
        - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
        - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
        - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
        - `end_user` EndUserRef
          - `id` string, uuid, required — The unique identifier of the user in the Fordefi platform.
          - `user_type` 'end_user', required — The type of the user.
          - `external_id` string, required — External id of the user.
          - `state` 'active' | 'deleted', required — The state of the user.
        - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
      - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
      - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
        - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
        - `name` string, required — The name of the contact.
        - `address_ref` union, required
          - AptosAddressBookContactAddressRef
            - `chain_type` 'aptos', required — The type of the chain.
            - `address` string, required — The address on the Aptos chain.
            - `chains` AptosChain[], required — The chains that the contact belongs to.
              - …
          - ArchAddressBookContactAddressRef
            - `chain_type` 'arch', required — The type of the chain.
            - `address` string, required — The address on the Arch chain.
            - `chains` ArchChain[], required — The chains the contact belongs to.
              - …
          - CantonAddressBookContactAddressRef
            - `chain_type` 'canton', required — The type of the chain.
            - `address` string, required — The party id on the Canton chain.
            - `chains` CantonChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - CosmosAddressBookContactAddressRef
            - `chain_type` 'cosmos', required — The type of the chain.
            - `address` string, required — The address on the cosmos chain.
            - `chain` CosmosChain, required
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - EVMAddressBookContactAddressRef
            - `chain_type` 'evm', required — The type of the chain.
            - `address` string, required — The address of the contact.
            - `chains` EvmChain[], required — The chains the contact belongs to.
              - …
          - SolanaAddressBookContactAddressRef
            - `chain_type` 'solana', required — The type of the chain.
            - `address` string, required — The address on the Solana chain.
            - `chains` SolanaChain[], required — The chains the contact belongs to.
              - …
          - StacksAddressBookContactAddressRef
            - `chain_type` 'stacks', required — The type of the chain.
            - `address` string, required — The address on the Stacks chain.
            - `chains` StacksChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - StarknetAddressBookContactAddressRef
            - `chain_type` 'starknet', required — The type of the chain.
            - `address` string, required — The address on the Starknet chain.
            - `chains` StarknetChain[], required — The chains the contact belongs to.
              - …
          - StellarAddressBookContactAddressRef
            - `chain_type` 'stellar', required — The type of the chain.
            - `address` string, required — The address on the Stellar chain.
            - `chains` StellarChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - SuiAddressBookContactAddressRef
            - `chain_type` 'sui', required — The type of the chain.
            - `address` string, required — The address on the Sui chain.
            - `chains` SuiChain[], required — The chains the contact belongs to.
              - …
          - TonAddressBookContactAddressRef
            - `chain_type` 'ton', required — The type of the chain.
            - `address` string, required — The address on the TON chain.
            - `chains` TonChain[], required — The chains the contact belongs to.
              - …
            - `comment` string — Comment is an additional address feature used for identifying a recipient.
          - TronAddressBookContactAddressRef
            - `chain_type` 'tron', required — The type of the chain.
            - `address` string, required — The address on the TRON chain.
            - `chains` TronChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - UtxoAddressBookContactAddressRef
            - `chain_type` 'utxo', required — The type of the chain.
            - `address` string, required — The address on the utxo chain.
            - `chain` UtxoChain, required
              - …
      - `type` 'canton', required
      - `address` string, required — The Canton address.
    - `expected_result` CantonTransactionResult, required
      - `reversion` CantonReversion, required
        - `state` 'not_reverted' | 'unknown_revert' | 'insufficient_funds_gas_and_value' | 'unknown_recipient' | 'already_pre_approved', required
        - `reason` string — The reason for the reversion (additional information).
      - `effects` CantonEffects, required
        - `balance_changes` CantonBalanceChangeEffect[], required
          - `priced_asset` PricedAsset, required
            - `type` 'asset_price', required
            - `asset_info` AssetInfo, required
              - …
            - `price` Price — Price represents a price in a given FiatCurrency.
              - …
          - `diff` string, required — The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
          - `address` EnrichedCantonAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'canton', required
            - `address` string, required — The Canton address.
        - `transfers` CantonTransferEffect[], required
          - `priced_asset` PricedAsset, required
            - `type` 'asset_price', required
            - `asset_info` AssetInfo, required
              - …
            - `price` Price — Price represents a price in a given FiatCurrency.
              - …
          - `amount` string, required — The amount of the transfer.
          - `from` EnrichedCantonAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'canton', required
            - `address` string, required — The Canton address.
          - `to` EnrichedCantonAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'canton', required
            - `address` string, required — The Canton address.
    - `memo` string — The memo attached to this Canton transaction, if any.
  - PredictedCosmosTransaction
    - `policy_match` PolicyMatch
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval', required
    - `matched_policies` PolicyMatch[], required — List of policies matched by the transactions in the batch.
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval', required
    - `approval_request` ApprovalRequest — Represents an approval request for an action in the Fordefi platform
      - `state` 'created' | 'approved' | 'insufficient_approvers' | 'auto_approved' | 'failed', required — Represents the whole approval request state
      - `required_groups` integer, required — The number of required approval groups.
      - `approval_groups` ApprovalRequestGroup[], required — A list of the possible approvers from different groups.
        - `quorum_size` integer, required — The number of approvers required to approve the transaction.
        - `approvers` RequestApprover[], required — A list of the possible approvers.
          - `user` union, required
            - PersonRef
              - …
            - ApiUserRef
              - …
          - `modified_at` string, date-time, required — The date and time when this approval was modified.
          - `decision` string — The decision of the approver.
          - `state` 'pending' | 'approved' | 'unauthorized' | 'not_participated', required — Represents an approval state of a single approver
      - `error_message` string — The error message if the request failed.
    - `risks` TransactionRisk[], required — The list of risks associated with this transaction.
      - `type` 'transfer_to_erc20_contract' | 'organization_not_interacted_with_address' | 'vault_not_interacted_with_address' | 'allowance_to_eoa' | 'unlimited_allowance' | 'contract_not_verified' | 'bridge_dest_differ_from_sender' | 'nft_approve_for_all' | 'missing_simulation' | 'unsupported_simulation' | 'post_conditions_allow_mode' | 'safe_sensitive_operation', required
      - `severity` 'low' | 'medium' | 'high', required
      - `title` string, required — The title of the risk.
      - `description` string, required — A detailed description of the risk.
    - `note` string — An optional transaction note.
    - `tx_policy_explanation_id` string, uuid — The id of the transaction policy explanation produced for this prediction, if any.
    - `aml_policy_match` AmlPolicyMatchOutgoing
      - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
      - `rule_id` string, uuid, required — The unique identifier of the rule.
      - `rule_name` string, required — The name of the rule.
      - `action_type` 'allow' | 'block' | 'require_approval' | 'skip', required
    - `aml_results` AmlResults
      - `scan_status` 'error' | 'timeout' | 'skipped' | 'completed' | 'unsupported_chain' | 'pending', required
      - `error_message` string — The error message if the scan failed.
      - `scan_results` ChainalysisScanResult
        - `type` 'chainalysis', required — The type of the policy.
        - `alerts` ChainalysisAlert[], required — The list of alerts.
          - `category` Category, required
            - `id` integer, required — The category ID.
            - `name` string, required — The category name.
          - `risk_rating` 'low' | 'medium' | 'high' | 'severe', required
          - `exposure_type` 'direct' | 'indirect', required
          - `service` string — The name of the service as defined by Chainalysis. If null returns, Chainalysis has not yet identified the service's name.
        - `external_id` string, uuid, required — A unique identifier of the scan.
    - `simulation_status_result` SimulationStatusResult
      - `simulation_status` 'success' | 'failed' | 'reverted' | 'skipped'
      - `details` string, required — Details about transaction reversion if occurred.
    - `type` 'cosmos_transaction', required — The type of the transaction.
    - `expected_result` CosmosTransactionResult, required
      - `message` string — In case of error, the message describes what failed.
      - `gas_debit` CosmosGasDebit, required
        - `gas_used` string, required — Gas used while processing the transaction.
        - `total_fee` CosmosCoinWithAmount[], required — The total fee paid.
          - `coin_with_amount` union, required — The coin info.
            - CosmosNativeCoinWithAmount
              - …
            - CosmosTokenWithAmount
              - …
        - `fiat_prices` Price[], required — The prices of the coins used to pay the fee.
          - `price` string, required — The price in the given fiat currency.
          - `price_float` string, required — The absolute price in the given fiat currency. When is_negative is true the asset's value is the negative of this (e.g. a debt token).
          - `is_negative` boolean — Whether the asset's value is negative (e.g. a debt token). price_float holds the absolute value.
          - `fiat_currency` FiatCurrency, required
            - `currency_symbol` 'usd', required — FiatCurrencySymbol
            - `decimals` integer, required — The number of decimals in the fiat currency.
      - `effects` CosmosEffects, required
        - `balance_changes` CosmosBalanceChangeEffect[], required — The aggregated balance changes of addresses.
          - `priced_asset` PricedAsset, required
            - `type` 'asset_price', required
            - `asset_info` AssetInfo, required
              - …
            - `price` Price — Price represents a price in a given FiatCurrency.
              - …
          - `diff` string, required — The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
          - `address` EnrichedCosmosBechAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'cosmos', required
            - `address` CosmosBechAddress, required
              - …
        - `transfers` CosmosTransferEffect[], required — The transfer events of the transaction.
          - `priced_asset` PricedAsset, required
            - `type` 'asset_price', required
            - `asset_info` AssetInfo, required
              - …
            - `price` Price — Price represents a price in a given FiatCurrency.
              - …
          - `amount` string, required — The amount of the transfer.
          - `from` EnrichedCosmosBechAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'cosmos', required
            - `address` CosmosBechAddress, required
              - …
          - `to` EnrichedCosmosBechAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'cosmos', required
            - `address` CosmosBechAddress, required
              - …
    - `chain` EnrichedCosmosChain, required
      - `chain_type` 'cosmos', required — The type of the chain.
      - `unique_id` 'cosmos_agoric-3' | 'cosmos_akashnet-2' | 'cosmos_archway-1' | 'cosmos_axelar-dojo-1' | 'cosmos_bbn-1' | 'cosmos_celestia' | 'cosmos_cosmoshub-4' | 'cosmos_dydx-mainnet-1' | 'cosmos_dydx-testnet-4' | 'cosmos_dymension_1100-1' | 'cosmos_injective-1' | 'cosmos_neutron-1' | 'cosmos_nillion-1' | 'cosmos_noble-1' | 'cosmos_osmosis-1' | 'cosmos_provider' | 'cosmos_ssc-1' | 'cosmos_pacific-1' | 'cosmos_stride-1' | 'cosmos_thorchain-1' | 'cosmos_mantra-1', required
      - `name` string, required — The full blockchain name.
      - `native_currency_symbol` string, required — The native currency symbol.
      - `native_currency_name` string, required — The native currency name.
      - `blockchain_explorer` BlockchainExplorer — A blockchain explorer entry point.
        - `transaction_url` string, uri, required
        - `address_url` string, uri, required
        - `root_url` string, uri, required
        - `transaction_format_url` string, uri
        - `address_format_url` string, uri
        - `asset_format_url` string, uri
      - `logo_url` string, uri, required — The logo URL of the chain.
      - `is_testnet` boolean, required — Whether the chain is on a testnet.
      - `is_enabled` boolean, required — Whether the chain is enabled.
      - `base_denom` string, required — The base denom of the chain.
      - `bech32_prefix` 'agoric' | 'akash' | 'archway' | 'axelar' | 'bbn' | 'celestia' | 'cosmos' | 'dydx' | 'dym' | 'inj' | 'neutron' | 'nillion' | 'noble' | 'osmo' | 'saga' | 'sei' | 'stride' | 'thor' | 'mantra', required
    - `cosmos_transaction_type_details` union, required
      - CosmosMultipleMessagesTransactionDetails
        - `transaction_data` union, required
          - AminoMessagesList
            - `format` 'amino', required
            - `messages` AminoMessage[], required — List of messages in amino format.
              - …
          - DirectMessagesList
            - `format` 'direct', required
            - `messages` DirectMessage[], required — List of messages in direct format.
              - …
          - MinedMessagesList
            - `format` 'mined', required
            - `messages` string, required — List of messages of non-managed transaction.
        - `type` 'messages', required — A transaction of multiple messages.
      - CosmosNativeTransferDetails
        - `transaction_data` union, required
          - AminoMessagesList
            - `format` 'amino', required
            - `messages` AminoMessage[], required — List of messages in amino format.
              - …
          - DirectMessagesList
            - `format` 'direct', required
            - `messages` DirectMessage[], required — List of messages in direct format.
              - …
          - MinedMessagesList
            - `format` 'mined', required
            - `messages` string, required — List of messages of non-managed transaction.
        - `sender` EnrichedCosmosBechAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'cosmos', required
          - `address` CosmosBechAddress, required
            - `type` 'cosmos', required
            - `chain` 'cosmos_agoric-3' | 'cosmos_akashnet-2' | 'cosmos_archway-1' | 'cosmos_axelar-dojo-1' | 'cosmos_bbn-1' | 'cosmos_celestia' | 'cosmos_cosmoshub-4' | 'cosmos_dydx-mainnet-1' | 'cosmos_dydx-testnet-4' | 'cosmos_dymension_1100-1' | 'cosmos_injective-1' | 'cosmos_neutron-1' | 'cosmos_nillion-1' | 'cosmos_noble-1' | 'cosmos_osmosis-1' | 'cosmos_provider' | 'cosmos_ssc-1' | 'cosmos_pacific-1' | 'cosmos_stride-1' | 'cosmos_thorchain-1' | 'cosmos_mantra-1', required
            - `address` string, required — The address as bech32.
            - `hex_repr` string — The hex representation of the address.
            - `key_type` 'secp256k1' | 'ethsecp256k1'
        - `recipient` EnrichedCosmosBechAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'cosmos', required
          - `address` CosmosBechAddress, required
            - `type` 'cosmos', required
            - `chain` 'cosmos_agoric-3' | 'cosmos_akashnet-2' | 'cosmos_archway-1' | 'cosmos_axelar-dojo-1' | 'cosmos_bbn-1' | 'cosmos_celestia' | 'cosmos_cosmoshub-4' | 'cosmos_dydx-mainnet-1' | 'cosmos_dydx-testnet-4' | 'cosmos_dymension_1100-1' | 'cosmos_injective-1' | 'cosmos_neutron-1' | 'cosmos_nillion-1' | 'cosmos_noble-1' | 'cosmos_osmosis-1' | 'cosmos_provider' | 'cosmos_ssc-1' | 'cosmos_pacific-1' | 'cosmos_stride-1' | 'cosmos_thorchain-1' | 'cosmos_mantra-1', required
            - `address` string, required — The address as bech32.
            - `hex_repr` string — The hex representation of the address.
            - `key_type` 'secp256k1' | 'ethsecp256k1'
        - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
        - `type` 'native_transfer', required — A transaction involving a native transfer from one address to another.
      - CosmosTokenTransferDetails
        - `transaction_data` union, required
          - AminoMessagesList
            - `format` 'amino', required
            - `messages` AminoMessage[], required — List of messages in amino format.
              - …
          - DirectMessagesList
            - `format` 'direct', required
            - `messages` DirectMessage[], required — List of messages in direct format.
              - …
          - MinedMessagesList
            - `format` 'mined', required
            - `messages` string, required — List of messages of non-managed transaction.
        - `sender` EnrichedCosmosBechAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'cosmos', required
          - `address` CosmosBechAddress, required
            - `type` 'cosmos', required
            - `chain` 'cosmos_agoric-3' | 'cosmos_akashnet-2' | 'cosmos_archway-1' | 'cosmos_axelar-dojo-1' | 'cosmos_bbn-1' | 'cosmos_celestia' | 'cosmos_cosmoshub-4' | 'cosmos_dydx-mainnet-1' | 'cosmos_dydx-testnet-4' | 'cosmos_dymension_1100-1' | 'cosmos_injective-1' | 'cosmos_neutron-1' | 'cosmos_nillion-1' | 'cosmos_noble-1' | 'cosmos_osmosis-1' | 'cosmos_provider' | 'cosmos_ssc-1' | 'cosmos_pacific-1' | 'cosmos_stride-1' | 'cosmos_thorchain-1' | 'cosmos_mantra-1', required
            - `address` string, required — The address as bech32.
            - `hex_repr` string — The hex representation of the address.
            - `key_type` 'secp256k1' | 'ethsecp256k1'
        - `recipient` EnrichedCosmosBechAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'cosmos', required
          - `address` CosmosBechAddress, required
            - `type` 'cosmos', required
            - `chain` 'cosmos_agoric-3' | 'cosmos_akashnet-2' | 'cosmos_archway-1' | 'cosmos_axelar-dojo-1' | 'cosmos_bbn-1' | 'cosmos_celestia' | 'cosmos_cosmoshub-4' | 'cosmos_dydx-mainnet-1' | 'cosmos_dydx-testnet-4' | 'cosmos_dymension_1100-1' | 'cosmos_injective-1' | 'cosmos_neutron-1' | 'cosmos_nillion-1' | 'cosmos_noble-1' | 'cosmos_osmosis-1' | 'cosmos_provider' | 'cosmos_ssc-1' | 'cosmos_pacific-1' | 'cosmos_stride-1' | 'cosmos_thorchain-1' | 'cosmos_mantra-1', required
            - `address` string, required — The address as bech32.
            - `hex_repr` string — The hex representation of the address.
            - `key_type` 'secp256k1' | 'ethsecp256k1'
        - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
        - `type` 'token_transfer', required — A transaction involving a token transfer from one address to another.
    - `memo` string — Transaction memo.
    - `sender` EnrichedCosmosBechAddress, required
      - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
        - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
        - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
        - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
        - `name` string, required — The name of the vault.
        - `address` string — The address of the vault.
        - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
        - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
        - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
        - `end_user` EndUserRef
          - `id` string, uuid, required — The unique identifier of the user in the Fordefi platform.
          - `user_type` 'end_user', required — The type of the user.
          - `external_id` string, required — External id of the user.
          - `state` 'active' | 'deleted', required — The state of the user.
        - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
      - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
      - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
        - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
        - `name` string, required — The name of the contact.
        - `address_ref` union, required
          - AptosAddressBookContactAddressRef
            - `chain_type` 'aptos', required — The type of the chain.
            - `address` string, required — The address on the Aptos chain.
            - `chains` AptosChain[], required — The chains that the contact belongs to.
              - …
          - ArchAddressBookContactAddressRef
            - `chain_type` 'arch', required — The type of the chain.
            - `address` string, required — The address on the Arch chain.
            - `chains` ArchChain[], required — The chains the contact belongs to.
              - …
          - CantonAddressBookContactAddressRef
            - `chain_type` 'canton', required — The type of the chain.
            - `address` string, required — The party id on the Canton chain.
            - `chains` CantonChain[], required — The chains the contact belongs to.
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - CosmosAddressBookContactAddressRef
            - `chain_type` 'cosmos', required — The type of the chain.
            - `address` string, required — The address on the cosmos chain.
            - `chain` CosmosChain, required
              - …
            - `memo` string — Memo is an additional address feature used for identifying a recipient.
          - EVMAddressBookContactAddressRef
            - `chain_type` 'evm', required — The type of the chain.
            - `address` string, required — The address of the contact.
            - `chains` EvmChain[], required — The chains the contact belongs to.
              - …
          - SolanaAddressBookContactAddressRef
            - `chain_type` 'solana', required — The type of the chain.
            - `address` string, required — The address on the Solana chain.
            - `chains` SolanaChain[], required — The chains the contact belongs to.
              - …
          - StacksAddressBookContactAddressRef
            - `chain_type` 'stacks', required — The type of the chain.
            - `address` string, required — The address on the Stacks chain.
            - `chains` StacksChain[], required — The chains the contact belongs to.
              - …
- … truncated; see the full OpenAPI document linked below

## Other responses

- `400` — Bad Request
- `401` — Unauthorized User
- `403` — Forbidden User
- `408` — Request Timeout
- `422` — Validation Error
- `429` — Rate Limit Exceeded
- `500` — Unexpected Error

---

[API](https://skmtc.net/fordefi/apis/fordefi-api.md) · [All operations](https://skmtc.net/fordefi/apis/fordefi-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fordefi/fordefi-api/versions/c4c28d233105/schema)
