---
title: "Create Transaction And Wait"
method: POST
path: "/api/v1/transactions/create-and-wait"
tags: ["Transactions"]
---

# Create Transaction And Wait

`POST /api/v1/transactions/create-and-wait`

Create a new transaction and wait until transaction reaches given state.

## Headers

- `x-signature` string — Signature of the body. Base64 encoded string. If the request is made programatically by an API user, signing of the request is required and is intended to protect you from malicious backends. `x_signature` is valid for 120 seconds.
- `x-timestamp` integer — Timestamp of the signature. Integer. Specify an Epoch date. If the request is made programatically by an API user, the timestamp of the request is required and is intended to protect you from replay attacks.
- `x-idempotence-id` string, uuid — Optional idempotence ID of a transaction.

## Request body

- union
  - CreateAptosMessageWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateAptosTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'aptos_transaction', required — Aptos transaction type.
    - `details` union, required
      - CreateAptosTransferRequest
        - `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_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'
        - `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
              - …
      - CreateAptosSerializedRawTransactionRequest
        - `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_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'
        - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateArchTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'arch_transaction', required — Arch transaction type.
    - `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.
              - …
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateBlackBoxSignatureWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'black_box_signature', required — Black Box signature type.
    - `details` union, required
      - BinaryHashPayload
        - `format` 'hash_binary', required
        - `hash_binary` string, required — The payload to sign, encoded in base64 format.
      - IntegerHashPayload
        - `format` 'hash_integer', required
        - `hash_integer` string, required — The payload to sign, as a big-endian integer. Only relevant for Stark curve signatures.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateCantonTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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
              - …
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateCosmosMessageWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'cosmos_message', required — Cosmos message type.
    - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateCosmosTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'cosmos_transaction', required — Cosmos transaction type.
    - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateEvmMessageWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'evm_message', required — EVM message type.
    - `details` union, required
      - CreateEvmTypedMessageRequest
        - `type` 'typed_message_type', required — Typed message standard (version 4).
        - `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.
      - CreateEvmTypedV1MessageRequest
        - `type` 'typed_message_type_v1', required — Typed message standard (version 1).
        - `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.
      - CreateEvmPersonalMessageRequest
        - `type` 'personal_message_type', required — Personal message standard.
        - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateEvmTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'evm_transaction', required — EVM transaction type.
    - `details` union, required
      - CreateEvmRawTransactionRequest
        - `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_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'
        - `use_mev_protected_node` boolean — Use an MEV protected node to send the transaction. By using an MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `use_secure_node` boolean — Use a secure node to send the transaction. By using a secure 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).
              - …
        - `funder` string, uuid — The unique identifier of the vault that pays the fee for this transaction.
        - `custom_nonce` union — The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault.
          - integer
          - string
        - `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).
      - CreateEvmTransferRequest
        - `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 — An EVM transfer transaction is for transferring native currency or ERC20/721/1155 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'
        - `use_mev_protected_node` boolean — Use an MEV protected node to send the transaction. By using an MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `use_secure_node` boolean — Use a secure node to send the transaction. By using a secure 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).
              - …
        - `funder` string, uuid — The unique identifier of the vault that pays the fee for this transaction.
        - `custom_nonce` union — The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault.
          - integer
          - string
        - `to` union, required — The recipient of the transfer. Specify either a general address, the ID of another vault, 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 — 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
      - CreateEvmRevokeAllowanceRequest
        - `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 — An EVM revoke allowance transaction is for revoking a spender's allowance for a specific 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'
        - `use_mev_protected_node` boolean — Use an MEV protected node to send the transaction. By using an MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `use_secure_node` boolean — Use a secure node to send the transaction. By using a secure 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).
              - …
        - `funder` string, uuid — The unique identifier of the vault that pays the fee for this transaction.
        - `custom_nonce` union — The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault.
          - integer
          - string
        - `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 ERC-20 token contract for which to revoke allowance.
        - `spender` string, required — The EOA or contract address of the spender for whom to revoke allowance.
      - CreateEvmSetCodeRequest
        - `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_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'
        - `use_mev_protected_node` boolean — Use an MEV protected node to send the transaction. By using an MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `use_secure_node` boolean — Use a secure node to send the transaction. By using a secure 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).
              - …
        - `funder` string, uuid — The unique identifier of the vault that pays the fee for this transaction.
        - `custom_nonce` union — The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault.
          - integer
          - string
        - `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.
      - CreateEvmWrapNativeRequest
        - `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_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'
        - `use_mev_protected_node` boolean — Use an MEV protected node to send the transaction. By using an MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `use_secure_node` boolean — Use a secure node to send the transaction. By using a secure 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).
              - …
        - `funder` string, uuid — The unique identifier of the vault that pays the fee for this transaction.
        - `custom_nonce` union — The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault.
          - integer
          - string
        - `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
      - CreateEvmUnwrapNativeRequest
        - `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_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'
        - `use_mev_protected_node` boolean — Use an MEV protected node to send the transaction. By using an MEV protected node, you avoid maximal extractable value (MEV) attacks.
        - `use_secure_node` boolean — Use a secure node to send the transaction. By using a secure 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).
              - …
        - `funder` string, uuid — The unique identifier of the vault that pays the fee for this transaction.
        - `custom_nonce` union — The user-specified nonce for the transaction.<br> If not provided, the transaction's nonce will be automatically determined upon signing. <br> If provided, it must equal the nonce of an existing transaction that has already been signed but not yet mined, on the same vault.<br> Alternatively, it may equal the next nonce of the vault.
          - integer
          - string
        - `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
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateSolanaMessageWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'solana_message', required — Solana message type.
    - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateSolanaTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'solana_transaction', required — Solana transaction type.
    - `details` union, required
      - CreateSolanaTransferRequest
        - `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 — A Solana 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, the ID of another vault, or a contact ID object.
          - 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
              - …
      - CreateSolanaRawTransactionRequest
        - `type` 'solana_raw_transaction', required — A Solana raw transaction 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_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.
          - 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
        - `chain` 'solana_mainnet' | 'solana_devnet' | 'solana_eclipse_mainnet' | 'solana_fogo_mainnet' | 'solana_fogo_testnet', required
        - `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).
      - CreateSolanaSerializedTransactionMessageRequest
        - `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_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` '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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateStacksTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateStarknetMessageWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateStarknetTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateStellarMessageWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateStellarTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateSuiMessageWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateSuiTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'sui_transaction', required — Sui transaction type.
    - `details` union, required
      - CreateSuiTransferRequest
        - `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 — Create 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_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
          - 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.
        - `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.
        - `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
              - …
      - CreateSuiProgrammableTransactionBlockRequest
        - `type` 'sui_programmable_transaction_block', required — Create 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_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` '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 transaction.
          - 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.
              - …
      - CreateSuiSerializedTransactionDataRequest
        - `type` 'sui_binary_canonical_serialization', required — A Sui Binary Canonical Serialization (or BCS) of a 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` 'sui_mainnet' | 'sui_testnet', required
        - `data` string, required — The base64 encoded BCS of the transaction.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateTonMessageWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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', required
      - `message_to_sign` string, required — The message payload to be signed, encoded in base64.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateTonTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'ton_transaction', required — TON transaction type.
    - `details` union, required
      - CreateTonTransferRequest
        - `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_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
          - 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.
      - CreateTonSerializedRawTransactionRequest
        - `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_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` 'ton_mainnet', required
        - `transaction_payload` TonTransactionPayload, required
          - `valid_until` integer — The expiration time of the transaction.
          - `network` 0 | -239 | -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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateTronMessageWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateTronTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `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.
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required
  - CreateUtxoMessageWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'utxo_message', required — Utxo message type.
    - `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
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped', required
  - CreateUtxoTransactionWithWaitRequest
    - `vault_id` string, uuid, required — The unique identifier of the vault.
    - `note` string — An optional transaction note.
    - `considered_as_stuck_after_seconds` integer — The number of seconds after signing or pushing the transaction before it is eligible to be considered stuck. If omitted, the chain default is used. This field has no effect on message-only requests.
    - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user'
    - `sign_mode` 'auto' | 'triggered'
    - `dapp_info` DappInfo
      - `url` string, required — The URL of the dapp.
      - `name` string, required — The name of the dapp.
    - `type` 'utxo_transaction', required — UTXO transaction type.
    - `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'
    - `timeout` integer — The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.
    - `wait_for_state` 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds', required

## Response `201`

Successful Response

- CreateTransactionWithWaitResponse
  - `id` string, uuid, required — The unique identifier of the object in the Fordefi platform.
  - `created_at` string, date-time, required — The date and time when the object was created.
  - `modified_at` string, date-time, required — The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
  - `signatures` string[], required — The transaction signatures.
  - `state` union, required — The state of the transaction.
    - 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'pushed_to_blockchain' | 'mined' | 'completed' | 'aborted' | 'error_pushing_to_blockchain' | 'mined_reverted' | 'completed_reverted' | 'error_signing' | 'stuck' | 'dropped' | 'queued' | 'accelerating' | 'canceling' | 'accelerated' | 'cancelled' | 'insufficient_funds'
    - 'waiting_for_approval' | 'waiting_for_signing_trigger' | 'approved' | 'finalized_for_signing' | 'signed' | 'sent_to_provider' | 'completed' | 'error_signing' | 'aborted' | 'error_submitting_to_provider' | 'dropped'
    - 'waiting_for_approval' | 'approved' | 'signed' | 'completed' | 'aborted' | 'error_signing' | 'error_submitting_to_exchange' | 'pending_exchange' | 'error_processing_by_exchange'
  - `has_timed_out` boolean, required — Whether the transaction has timed out while waiting for the requested state.

## 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/revisions/8014fd69ea17/schema)
