# Predict Transaction

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

Endpoint: POST /api/v1/transactions/predict
Version: 0.2.0
Security: bearerAuth

## Request fields (application/json):

  - `should_run_policy_check` (boolean)
    Should run a policy check

  - `vault_id` (string, required)
    The unique identifier of the vault.

  - `note` (string)
    An optional transaction note.

  - `type` (string, required)
    Aptos message type.

  - `details` (object, required)

  - `details.type` (string, required)
    Personal message standard.

  - `details.should_include_address` (boolean, required)
    Whether the address should be included in the signed message.

  - `details.application` (string, required)
    The application that the message is for.

  - `details.should_include_application` (boolean, required)
    Whether the application should be included in the signed message.

  - `details.chain` (string, required)
    Enum: "aptos_mainnet", "aptos_testnet", "aptos_movement_mainnet", "aptos_movement_testnet"

  - `details.should_include_chain` (boolean, required)
    Whether the chain should be included in the signed message.

  - `details.message_to_sign` (string, required)
    The message to be signed, encoded in base64.
    Example: SGVsbG8=

  - `details.nonce` (string, required)
    The nonce of the message.

  - `type` (string, required)
    Aptos transaction type.

  - `type` (string, required)
    The type of the transaction.

  - `type` (string, required)
    Canton transaction type.

  - `details` (any, required)
    Transaction details.

  - `details.type` (string, required)
    A cosmos raw transaction is for any operation.

  - `details.push_mode` (string)
    Enum: "auto", "manual", "deferred"

  - `details.request_data` (any, required)
    Request data.

  - `details.request_data.format` (string, required)

  - `details.request_data.messages` (array, required)
    List of messages in amino format.

  - `details.request_data.messages.type` (string, required)
    Message type.

  - `details.request_data.messages.value` (string, required)
    Message value.

  - `details.request_data.memo` (string)
    Transaction memo.

  - `details.request_data.std_fee` (object)

  - `details.request_data.std_fee.amount` (array, required)
    List of coins to pay for this transaction.

  - `details.request_data.std_fee.amount.denom` (string, required)
    Denom of this coin.

  - `details.request_data.std_fee.amount.amount` (string, required)
    Amount of this coin.
    Example: 1000000000000000000

  - `details.request_data.std_fee.gas` (string, required)
    Gas wanted for this transaction. Accepts an integer string (e.g. "200000") or a fractional string (e.g. "168908.4") — fractional values are rounded up to the next integer before being forwarded to the downstream service.
    Example: 1000000000000000000

  - `details.request_data.std_fee.payer` (string)
    Payer for this transaction.

  - `details.request_data.std_fee.granter` (string)
    Granter for this transaction.

  - `details.request_data.std_fee.fee_payer` (string)
    Fee Payer for this transaction.

  - `details.request_data.timeout_height` (integer)
    Timeout height for this transaction.

  - `details.request_data.body` (string, required)
    Body bytes, encoded in base64 format.
    Example: SGVsbG8=

  - `details.request_data.auth_info` (string, required)
    AuthInfo bytes, encoded in base64 format.
    Example: SGVsbG8=

  - `details.request_data.account_number` (string)
    Account number of signer.
    Example: 1000000000000000000

  - `details.type` (string, required)
    A Cosmos transfer transaction. A transaction of this kind is for transferring Cosmos assets.

  - `details.to` (any, required)
    The recipient of the transfer. Specify either a general address, the ID of another vault, or a contact ID.

  - `details.to.type` (string, required)

  - `details.to.address` (object, required)

  - `details.to.address.type` (string, required)

  - `details.to.address.address` (string, required)
    The address as bech32.
    Example: cosmos1tdk0g5d4ry9lq0erejttyufqcvwpqdj6tdql38

  - `details.to.address.hex_repr` (string)
    The hex representation of the address.
    Example: DBCE78FD2D006A3BAC2C548D93271ABA3D63F01E

  - `details.to.address.key_type` (string)
    Enum: "secp256k1", "ethsecp256k1"

  - `details.to.type` (string, required)
    The type of the recipient.

  - `details.to.vault_id` (string, required)
    The id of the recipient vault.

  - `details.to.contact_id` (string, required)
    The id of the address book contact.

  - `details.asset_identifier` (object, required)

  - `details.asset_identifier.type` (string, required)
    Cosmos asset identifier type.

  - `details.asset_identifier.details` (any, required)

  - `details.asset_identifier.details.type` (string, required)
    Cosmos asset identifier type.

  - `details.asset_identifier.details.type` (string, required)
    Token asset identifier type.

  - `details.asset_identifier.details.denom` (string, required)
    The denom of the asset.

  - `details.value` (any, required)
    Specify one of the following: `value``max`

  - `details.value.type` (string, required)

  - `details.value.value` (string, required)
    The specific amount to be passed.
    Example: 1000000000000000000

  - `details.memo` (string)
    Transaction memo.

  - `type` (string, required)
    Exchange transaction type.

  - `type` (string, required)
    Ripple transaction type.

  - `type` (string, required)
    Stacks transaction type.

  - `type` (string, required)
    Starknet message type.

  - `type` (string, required)
    Starknet transaction type.

  - `type` (string, required)
    Stellar message type.

  - `type` (string, required)
    Stellar transaction type.

  - `type` (string, required)
    Sui message type.

  - `type` (string, required)
    Sui transaction type.

  - `type` (string, required)
    TON message type.

  - `type` (string, required)
    TON transaction type.

  - `type` (string, required)
    TRON message type.

  - `type` (string, required)
    TRON transaction type.

## Response 200 fields (application/json):

  - `policy_match` (object)

  - `policy_match.is_default` (boolean, required)
    `True` if this is the default rule, `False` otherwise.

  - `policy_match.rule_id` (string, required)
    The unique identifier of the rule.

  - `policy_match.rule_name` (string, required)
    The name of the rule.

  - `policy_match.action_type` (string, required)
    Enum: "allow", "block", "require_approval"

  - `matched_policies` (array, required)
    List of policies matched by the transactions in the batch.

  - `approval_request` (object)
    Represents an approval request for an action in the Fordefi platform

  - `approval_request.state` (string, required)
    Represents the whole approval request state
    Enum: "created", "approved", "insufficient_approvers", "auto_approved", "failed"

  - `approval_request.required_groups` (integer, required)
    The number of required approval groups.

  - `approval_request.approval_groups` (array, required)
    A list of the possible approvers from different groups.

  - `approval_request.approval_groups.quorum_size` (integer, required)
    The number of approvers required to approve the transaction.

  - `approval_request.approval_groups.approvers` (array, required)
    A list of the possible approvers.

  - `approval_request.approval_groups.approvers.user` (any, required)

  - `approval_request.approval_groups.approvers.user.id` (string, required)
    The unique identifier of the user in the Fordefi platform.

  - `approval_request.approval_groups.approvers.user.user_type` (string, required)
    The type of user. Can be a person, or (in programmatic scenarios) an API user or API Signer.

  - `approval_request.approval_groups.approvers.user.name` (string)
    The name of the user.
    Example: John Doe

  - `approval_request.approval_groups.approvers.user.email` (string, required)
    The email of the user.

  - `approval_request.approval_groups.approvers.user.state` (string, required)
    Enum: "active", "onboarding_pending_code_generation", "onboarding_pending_activation", "reset_device_pending_code_generation", "reset_device_pending_activation", "pending_approval", "deleted"

  - `approval_request.approval_groups.approvers.user.role` (string, required)
    Enum: "admin", "trader", "viewer"

  - `approval_request.approval_groups.approvers.user.user_type` (string, required)
    The type of the user.

  - `approval_request.approval_groups.approvers.user.state` (string, required)
    The state of the user.
    Enum: "active", "deleted"

  - `approval_request.approval_groups.approvers.modified_at` (string, required)
    The date and time when this approval was modified.

  - `approval_request.approval_groups.approvers.state` (string, required)
    Represents an approval state of a single approver
    Enum: "pending", "approved", "unauthorized", "not_participated"

  - `approval_request.error_message` (string)
    The error message if the request failed.

  - `risks` (array, required)
    The list of risks associated with this transaction.

  - `risks.type` (string, required)
    Enum: "transfer_to_erc20_contract", "organization_not_interacted_with_address", "vault_not_interacted_with_address", "allowance_to_eoa", "unlimited_allowance", "contract_not_verified", "bridge_dest_differ_from_sender", "nft_approve_for_all", "missing_simulation", "unsupported_simulation", "post_conditions_allow_mode", "safe_sensitive_operation"

  - `risks.severity` (string, required)
    Enum: "low", "medium", "high"

  - `risks.title` (string, required)
    The title of the risk.

  - `risks.description` (string, required)
    A detailed description of the risk.

  - `note` (string)
    An optional transaction note.

  - `tx_policy_explanation_id` (string)
    The id of the transaction policy explanation produced for this prediction, if any.

  - `type` (string, required)
    Aptos message type.

  - `chain` (object, required)

  - `chain.chain_type` (string, required)
    The type of the chain.

  - `chain.unique_id` (string, required)
    Enum: "aptos_mainnet", "aptos_testnet", "aptos_movement_mainnet", "aptos_movement_testnet"

  - `chain.name` (string, required)
    The full blockchain name.

  - `chain.native_currency_symbol` (string, required)
    The native currency symbol.
    Example: ETH

  - `chain.native_currency_name` (string, required)
    The native currency name.
    Example: Ether

  - `chain.blockchain_explorer` (object)
    A blockchain explorer entry point.

  - `chain.blockchain_explorer.transaction_url` (string, required)
    Example: https://etherscan.io/tx/

  - `chain.blockchain_explorer.address_url` (string, required)
    Example: https://etherscan.io/address/

  - `chain.blockchain_explorer.root_url` (string, required)
    Example: https://etherscan.io/

  - `chain.blockchain_explorer.transaction_format_url` (string)
    Example: https://etherscan.io/tx/%s

  - `chain.blockchain_explorer.address_format_url` (string)
    Example: https://etherscan.io/address/%s

  - `chain.blockchain_explorer.asset_format_url` (string)
    Example: https://etherscan.io/address/%s

  - `chain.logo_url` (string, required)
    The logo URL of the chain.

  - `chain.is_testnet` (boolean, required)
    Whether the chain is on a testnet.

  - `chain.is_enabled` (boolean, required)
    Whether the chain is enabled.

  - `sender` (object, required)

  - `sender.vault` (object)
    Represents a reference to a vault in the Fordefi platform

  - `sender.vault.id` (string, required)
    The unique identifier of the vault in the Fordefi platform.

  - `sender.vault.vault_group_ids` (array, required)
    The unique identifiers of the vault groups this vault belongs to.

  - `sender.vault.name` (string, required)
    The name of the vault.

  - `sender.vault.address` (string)
    The address of the vault.

  - `sender.vault.state` (string, required)
    Enum: "active", "archived", "deleted", "pending", "aborted"

  - `sender.vault.type` (string, required)
    Enum: "aptos", "arch", "black_box", "canton", "cosmos", "evm", "ripple", "safe", "solana", "stacks", "starknet", "stellar", "sui", "ton", "tron", "utxo", "exchange"

  - `sender.vault.logo_url` (string)
    The logo of the vault. Supported for exchange and Safe vaults.

  - `sender.vault.end_user` (object)

  - `sender.vault.end_user.id` (string, required)
    The unique identifier of the user in the Fordefi platform.

  - `sender.vault.end_user.user_type` (string, required)
    The type of the user.

  - `sender.vault.end_user.external_id` (string, required)
    External id of the user.
    Example: user|1234

  - `sender.vault.end_user.state` (string, required)
    The state of the user.
    Enum: "active", "deleted"

  - `sender.vault.is_external_signer` (boolean)
    Whether the vault uses an externally imported key (external signer).

  - `sender.explorer_url` (string)
    The URL of a blockchain explorer that provides real-time information about the address.

  - `sender.contact` (object)
    Represents a reference to an address book contact in the Fordefi platform.

  - `sender.contact.id` (string, required)
    The unique identifier of the address book contact in the Fordefi platform.

  - `sender.contact.name` (string, required)
    The name of the contact.

  - `sender.contact.address_ref` (any, required)

  - `sender.contact.address_ref.chain_type` (string, required)
    The type of the chain.

  - `sender.contact.address_ref.address` (string, required)
    The address on the Aptos chain.
    Example: 0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a

  - `sender.contact.address_ref.chains` (array, required)
    The chains that the contact belongs to.

  - `sender.contact.address_ref.chains.chain_type` (string, required)
    The type of the chain.

  - `sender.contact.address_ref.address` (string, required)
    The address on the Arch chain.
    Example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA

  - `sender.contact.address_ref.chains` (array, required)
    The chains the contact belongs to.

  - `sender.contact.address_ref.chains.unique_id` (string, required)
    Enum: "arch_mainnet", "arch_testnet"

  - `sender.contact.address_ref.address` (string, required)
    The party id on the Canton chain.
    Example: 45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf

  - `sender.contact.address_ref.memo` (string)
    Memo is an additional address feature used for identifying a recipient.

  - `sender.contact.address_ref.address` (string, required)
    The address on the cosmos chain.
    Example: cosmos1tdk0g5d4ry9lq0erejttyufqcvwpqdj6tdql38

  - `sender.contact.address_ref.chain` (object, required)

  - `sender.contact.address_ref.chain.chain_type` (string, required)
    The type of the chain.

  - `sender.contact.address_ref.chain.unique_id` (string, required)
    Enum: "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"

  - `sender.contact.address_ref.address` (string, required)
    The address of the contact.
    Example: 0x71C7656EC7ab88b098defB751B7401B5f6d8976F

  - `sender.contact.address_ref.address` (string, required)
    The classic address on the Ripple chain.
    Example: rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh

  - `sender.contact.address_ref.tag` (string)
    The XRP Ledger destination tag, a numeric value used for identifying a recipient.

  - `sender.contact.address_ref.address` (string, required)
    The address on the Solana chain.
    Example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA

  - `sender.contact.address_ref.address` (string, required)
    The address on the Stacks chain.
    Example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9

  - `sender.contact.address_ref.address` (string, required)
    The address on the Starknet chain.
    Example: 0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8

  - `sender.contact.address_ref.address` (string, required)
    The address on the Stellar chain.
    Example: GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2

  - `sender.contact.address_ref.address` (string, required)
    The address on the Sui chain.
    Example: 0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a

  - `sender.contact.address_ref.address` (string, required)
    The address on the TON chain.

  - `sender.contact.address_ref.comment` (string)
    Comment is an additional address feature used for identifying a recipient.

  - `sender.contact.address_ref.address` (string, required)
    The address on the TRON chain.
    Example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW

  - `sender.contact.address_ref.address` (string, required)
    The address on the utxo chain.
    Example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq

  - `sender.type` (string, required)

  - `sender.address` (string, required)
    The Aptos address represented in hex format.
    Example: 0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a

  - `aptos_message_type` (string, required)
    Enum: "personal_message_type"

  - `message_to_display` (string, required)
    User-friendly formatting of the message to be signed.

  - `aml_policy_match` (object)

  - `aml_policy_match.is_default` (boolean, required)
    `True` if this is the default rule, `False` otherwise.

  - `aml_policy_match.rule_id` (string, required)
    The unique identifier of the rule.

  - `aml_policy_match.rule_name` (string, required)
    The name of the rule.

  - `aml_policy_match.action_type` (string, required)
    Enum: "allow", "block", "require_approval", "skip"

  - `aml_results` (object)

  - `aml_results.scan_status` (string, required)
    Enum: "error", "timeout", "skipped", "completed", "unsupported_chain", "pending"

  - `aml_results.error_message` (string)
    The error message if the scan failed.

  - `aml_results.scan_results` (any)

  - `aml_results.scan_results.type` (string, required)
    The type of the policy.

  - `aml_results.scan_results.alerts` (array, required)
    The list of alerts.

  - `aml_results.scan_results.alerts.category` (object, required)

  - `aml_results.scan_results.alerts.category.id` (integer, required)
    The category ID.

  - `aml_results.scan_results.alerts.category.name` (string, required)
    The category name.

  - `aml_results.scan_results.alerts.risk_rating` (string, required)
    Enum: "low", "medium", "high", "severe"

  - `aml_results.scan_results.alerts.exposure_type` (string, required)
    Enum: "direct", "indirect"

  - `aml_results.scan_results.alerts.service` (string)
    The name of the service as defined by Chainalysis. If null returns, Chainalysis has not yet identified the service's name.

  - `aml_results.scan_results.external_id` (string, required)
    A unique identifier of the scan.

  - `simulation_status_result` (object)

  - `simulation_status_result.simulation_status` (string)
    Enum: "success", "failed", "reverted", "skipped"

  - `simulation_status_result.details` (string, required)
    Details about transaction reversion if occurred.

  - `type` (string, required)
    Aptos transaction type.

  - `expected_result` (object, required)

  - `expected_result.reversion` (object, required)

  - `expected_result.reversion.state` (string, required)
    Enum: "not_reverted", "unknown_revert", "contract_asserted", "insufficient_funds_gas_and_value"

  - `expected_result.reversion.reason` (string)
    The reason for the reversion (additional information).

  - `expected_result.fee_statement` (object, required)

  - `expected_result.fee_statement.execution_gas_units` (string, required)
    Example: 1000000000000000000

  - `expected_result.fee_statement.io_gas_units` (string, required)
    Example: 1000000000000000000

  - `expected_result.fee_statement.storage_fee_octas` (string, required)
    Example: 1000000000000000000

  - `expected_result.fee_statement.storage_fee_refund_octas` (string, required)
    Example: 1000000000000000000

  - `expected_result.fee_statement.total_charge_gas_units` (string, required)
    Example: 1000000000000000000

  - `expected_result.fee_statement.total_gas` (string, required)
    The total gas fee of the transaction (in Octa).
    Example: 1000000000000000000

  - `expected_result.fee_statement.priced_asset` (object, required)

  - `expected_result.fee_statement.priced_asset.type` (string, required)

  - `expected_result.fee_statement.priced_asset.asset_info` (object, required)

  - `expected_result.fee_statement.priced_asset.asset_info.id` (string, required)
    The asset ID.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier` (any, required)

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Aptos asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.details` (any, required)

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.details.type` (string, required)
    Aptos asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.details.type` (string, required)
    Legacy coin asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.details.coin_type` (object, required)
    Coin type represents a blockchain legacy coin type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.details.coin_type.coin_type_str` (string, required)
    Coin type string representation.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.details.type` (string, required)
    New coin asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.details.new_coin_type` (object, required)
    New coin type represents a blockchain new coin type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.details.new_coin_type.metadata_address` (string, required)
    New coin's metadata address.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Arch asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.chain` (object, required)

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.chain.chain_type` (string, required)
    The type of the chain.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.chain.name` (string, required)
    The full blockchain name.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.chain.native_currency_symbol` (string, required)
    The native currency symbol.
    Example: ETH

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.chain.native_currency_name` (string, required)
    The native currency name.
    Example: Ether

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.chain.logo_url` (string, required)
    The logo URL of the chain.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.chain.is_testnet` (boolean, required)
    Whether the chain is on a testnet.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.chain.is_enabled` (boolean, required)
    Whether the chain is enabled.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Canton asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Cosmos asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.exchange_type` (string, required)
    Enum: "binance", "bybit", "coinbase_international", "coinbase_us", "okx", "kraken", "paxos"

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.asset_symbol` (string, required)
    The symbol of the asset on the exchange.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Ripple asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Solana asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Stacks asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Stellar asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Starknet asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Sui asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    TON asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    TRON asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.asset_identifier.type` (string, required)
    Utxo asset identifier type.

  - `expected_result.fee_statement.priced_asset.asset_info.name` (string, required)
    The name of the asset.

  - `expected_result.fee_statement.priced_asset.asset_info.symbol` (string, required)
    The symbol (ticker) of the asset.

  - `expected_result.fee_statement.priced_asset.asset_info.decimals` (integer, required)

  - `expected_result.fee_statement.priced_asset.asset_info.verified` (boolean, required)
    `True` if this asset is verified by Fordefi, `False` otherwise.

  - `expected_result.fee_statement.priced_asset.asset_info.metadata_uri` (string)
    The URI of the asset metadata.

  - `expected_result.fee_statement.priced_asset.asset_info.is_spam` (boolean, required)
    `True` if this asset is spam, `False` otherwise.

  - `expected_result.fee_statement.priced_asset.asset_info.logo_url` (string)
    The URL of the asset logo.

  - `expected_result.fee_statement.priced_asset.asset_info.explorer_url` (string)
    The URL of a blockchain explorer that provides real-time information about the asset.

  - `expected_result.fee_statement.priced_asset.asset_info.issuer_name` (string)
    Best-effort display name of the issuer

  - `expected_result.fee_statement.priced_asset.price` (object)
    Price represents a price in a given FiatCurrency.

  - `expected_result.fee_statement.priced_asset.price.price_float` (string, required)
    The absolute price in the given fiat currency. When is_negative is true the asset's value is the negative of this (e.g. a debt token).
    Example: 1000000000000000000

  - `expected_result.fee_statement.priced_asset.price.is_negative` (boolean)
    Whether the asset's value is negative (e.g. a debt token). price_float holds the absolute value.

  - `expected_result.fee_statement.priced_asset.price.fiat_currency` (object, required)

  - `expected_result.fee_statement.priced_asset.price.fiat_currency.currency_symbol` (string, required)
    FiatCurrencySymbol
    Enum: "usd"

  - `expected_result.fee_statement.priced_asset.price.fiat_currency.decimals` (integer, required)
    The number of decimals in the fiat currency.

  - `expected_result.effects` (object, required)

  - `expected_result.effects.balance_changes` (array, required)

  - `expected_result.effects.balance_changes.diff` (string, required)
    The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
    Example: 1000000000000000000

  - `expected_result.effects.transfers` (array, required)

  - `expected_result.effects.transfers.amount` (string, required)
    The amount of the transfer.
    Example: 1000000000000000000

  - `expected_result.raw_result` (string)
    The raw result of the transaction.

  - `payload` (any, required)
    The payload of the transaction.

  - `payload.typed_arguments` (array, required)
    The typed arguments of the transaction.

  - `payload.arguments` (array, required)
    The arguments of the transaction.

  - `payload.type` (string, required)

  - `payload.function_id` (string, required)
    The entry function of the transaction.

  - `payload.module` (string, required)
    The module of the entry function.

  - `payload.function_name` (string, required)
    The name of the entry function.

  - `payload.code` (string, required)
    The script code of the transaction.
    Example: SGVsbG8=

  - `aptos_transaction_type_details` (any, required)
    Details of the Aptos transaction based on its type.

  - `aptos_transaction_type_details.type` (string, required)
    A transaction involving the transfer of APT coin from one address to another.

  - `aptos_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `aptos_transaction_type_details.type` (string, required)
    A transaction involving the transfer of non-APT coin from one address to another.

  - `aptos_transaction_type_details.type` (string, required)
    A transaction with an entry point function.

  - `aptos_transaction_type_details.type` (string, required)
    A transaction with running a move script.

  - `aptos_transaction_type_details.code` (string, required)
    The code of the script.

  - `suggested_fees` (object, required)

  - `suggested_fees.type` (string, required)
    The type of the chain.

  - `suggested_fees.low` (string, required)
    The low suggested fee price.
    Example: 1000000000000000000

  - `suggested_fees.medium` (string, required)
    The medium suggested fee price.
    Example: 1000000000000000000

  - `suggested_fees.high` (string, required)
    The high suggested fee price
    Example: 1000000000000000000

  - `gas_submitted` (object, required)

  - `gas_submitted.gas_limit` (string, required)
    The gas limit of the transaction.
    Example: 1000000000000000000

  - `gas_submitted.price` (object, required)

  - `gas_submitted.price.priority_level` (string, required)
    Enum: "custom", "low", "medium", "high"

  - `gas_submitted.price.price` (string, required)
    The price per gas unit (in Octa).
    Example: 1000000000000000000

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

  - `type` (string, required)
    ARCH transaction type.

  - `arch_transaction_type_details` (any, required)
    Details of the Arch transaction based on its type.

  - `arch_transaction_type_details.type` (string, required)
    A transaction involving the transfer of native currency from one address to another.

  - `arch_transaction_type_details.recipient` (object, required)

  - `arch_transaction_type_details.recipient.explorer_url` (string)
    The URL of a blockchain explorer that provides real-time information about the address.

  - `arch_transaction_type_details.recipient.type` (string, required)

  - `arch_transaction_type_details.recipient.address` (string, required)
    The Arch address represented in Base58 format.
    Example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA

  - `arch_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `arch_transaction_type_details.type` (string, required)
    A transaction capable of any operation.

  - `arch_transaction_type_details.recipients` (array, required)
    The recipients of the tokens.

  - `instructions` (array, required)
    The instructions of the transaction.

  - `instructions.program_index` (integer, required)
    The program index.

  - `instructions.data` (string, required)
    The instruction data in Base64 format.
    Example: SGVsbG8=

  - `instructions.account_indexes` (array, required)
    The indexes of the instruction accounts in the transaction accounts list.

  - `instructions.base58_data` (string)
    The instruction data encoded in Base58 format.

  - `raw_transaction` (string)
    The serialized transaction encoded as a base64 string
    Example: SGVsbG8=

  - `type` (string, required)
    Canton transaction type.

  - `canton_transaction_type_details` (any, required)
    Details of the Canton transaction based on its type.

  - `canton_transaction_type_details.type` (string, required)
    A transaction involving the transfer of native Canton currency from one address to another.

  - `canton_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the recipient is unknown.

  - `canton_transaction_type_details.type` (string, required)
    A transaction involving the transfer of a CIP-56 token from one address to another.

  - `canton_transaction_type_details.type` (string, required)
    A transaction that allocates an external party on a Canton node.

  - `canton_transaction_type_details.type` (string, required)
    A transaction that approves pending incoming transfers.

  - `canton_transaction_type_details.type` (string, required)
    A transaction that sets up a transfer pre-approval for auto-accepting incoming transfers.

  - `memo` (string)
    The memo attached to this Canton transaction, if any.

  - `type` (string, required)
    The type of the transaction.

  - `cosmos_transaction_type_details` (any, required)

  - `cosmos_transaction_type_details.transaction_data` (any, required)

  - `cosmos_transaction_type_details.transaction_data.format` (string, required)

  - `cosmos_transaction_type_details.transaction_data.messages` (array, required)
    List of messages in amino format.

  - `cosmos_transaction_type_details.transaction_data.messages.type` (string, required)
    Message type.

  - `cosmos_transaction_type_details.transaction_data.messages.value` (string, required)
    Message value.

  - `cosmos_transaction_type_details.transaction_data.messages` (array, required)
    List of messages in direct format.

  - `cosmos_transaction_type_details.transaction_data.messages.value` (string, required)
    Message bytes, encoded in base64 format.
    Example: SGVsbG8=

  - `cosmos_transaction_type_details.transaction_data.messages` (string, required)
    List of messages of non-managed transaction.

  - `cosmos_transaction_type_details.type` (string, required)
    A transaction of multiple messages.

  - `cosmos_transaction_type_details.sender` (object, required)

  - `cosmos_transaction_type_details.sender.explorer_url` (string)
    The URL of a blockchain explorer that provides real-time information about the address.

  - `cosmos_transaction_type_details.sender.type` (string, required)

  - `cosmos_transaction_type_details.sender.address` (object, required)

  - `cosmos_transaction_type_details.sender.address.type` (string, required)

  - `cosmos_transaction_type_details.sender.address.address` (string, required)
    The address as bech32.
    Example: cosmos1tdk0g5d4ry9lq0erejttyufqcvwpqdj6tdql38

  - `cosmos_transaction_type_details.sender.address.hex_repr` (string)
    The hex representation of the address.
    Example: DBCE78FD2D006A3BAC2C548D93271ABA3D63F01E

  - `cosmos_transaction_type_details.sender.address.key_type` (string)
    Enum: "secp256k1", "ethsecp256k1"

  - `cosmos_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `cosmos_transaction_type_details.type` (string, required)
    A transaction involving a native transfer from one address to another.

  - `cosmos_transaction_type_details.type` (string, required)
    A transaction involving a token transfer from one address to another.

  - `memo` (string)
    Transaction memo.

  - `cosmos_message_type` (string, required)
    Enum: "arbitrary_message_type"

  - `evm_message_type` (string, required)
    Enum: "personal_message_type", "typed_message_type", "typed_message_type_v1"

  - `typed_data` (any)
    The typed data of the messages.

  - `typed_data.domain` (object, required)

  - `typed_data.domain.name` (string)
    The name

  - `typed_data.domain.version` (string)
    The version

  - `typed_data.domain.chain_id` (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. 1=`ethereum_mainnet`5=`ethereum_goerli`10=`optimism_mainnet`14=`flare_mainnet`16=`flare_testnet`30=`rootstock_mainnet`56=`bsc_mainnet`100=`gnosis_mainnet`130=`unichain_mainnet`137=`polygon_mainnet`143=`monad_mainnet`146=`sonic_mainnet`169=`manta_pacific_mainnet`196=`x_layer_mainnet`250=`fantom_mainnet`324=`zksync_era_mainnet`999=`hyperevm_mainnet`1030=`conflux_mainnet`1100=`dymension_mainnet`1101=`polygon_zkevm_mainnet`1329=`sei_mainnet`1337=`hypercore_mainnet`1666=`aster_mainnet`1672=`pharos_mainnet`1729=`reya_mainnet`2222=`kava_mainnet`4200=`merlin_mainnet`4217=`tempo_mainnet`4663=`robinhood_mainnet`5000=`mantle_mainnet`7000=`zeta_mainnet`7700=`canto_mainnet`8453=`base_mainnet`8818=`clink_mainnet`8819=`clink_testnet`9745=`plasma_mainnet`16661=`zero_gravity_mainnet`17000=`ethereum_holesky`80001=`polygon_mumbai`80094=`berachain_mainnet`42161=`arbitrum_mainnet`43113=`avalanche_fuji`43114=`avalanche_chain`57073=`ink_mainnet`59144=`linea_mainnet`81457=`blast_mainnet`421614=`arbitrum_sepolia`534352=`scroll_mainnet`660279=`xai_mainnet`747474=`katana_mainnet`810180=`zklink_nova_mainnet`11155111=`ethereum_sepolia`

  - `typed_data.domain.salt` (string)
    The salt
    Example: SGVsbG8=

  - `typed_data.primary_type` (string, required)
    Used to identify the primary type of the message.

  - `typed_data.type` (string, required)
    The typed message type.

  - `typed_data.deadline` (string, required)
    The deadline.

  - `typed_data.nonce` (integer, required)
    The nonce.

  - `typed_data.deadline` (string, required)
    Signature deadline.

  - `typed_data.provider_info` (object, required)

  - `typed_data.provider_info.provider_id` (string, required)
    Enum: "oneinch", "cowswap", "uniswap", "jupiter", "kyberswap", "layerzero", "paraswap", "bebop", "cctp_standard", "cctp_fast"

  - `typed_data.provider_info.provider_name` (string, required)
    The provider name.

  - `typed_data.provider_source` (string)
    The source of the swap provider.

  - `typed_data.slippage_bps` (string, required)
    Slippage tolerance in basis points.
    Example: 1000000000000000000

  - `typed_data.price_impact_pct` (string)
    Price impact percentage.
    Example: 1000000000000000000

  - `typed_data.rate` (string, required)
    The exchange rate of the swap.
    Example: 1000000000000000000

  - `typed_data.quote_created_at` (string, required)
    The timestamp when the quote was created.

  - `typed_data.quote_expiration_time` (string, required)
    The timestamp when the quote will expire.

  - `typed_data.estimated_duration_milliseconds` (string)
    The estimated duration of the swap in milliseconds.
    Example: 1000000000000000000

  - `typed_data.provider_fee` (object)

  - `typed_data.provider_fee.amount` (string, required)
    The amount of the provider fee.
    Example: 1000000000000000000

  - `typed_data.fordefi_fee_bps` (string)
    The fee rate in basis points that Fordefi charged on this swap, if any.
    Example: 1000000000000000000

  - `typed_data.failure_reason` (string)
    Reason for failure, if any, from the provider.

  - `typed_data.provider_explorer_url` (string)
    URL to the swap provider's dedicated block explorer for tracking this swap execution status.

  - `typed_data.bridge_state` (string)
    Enum: "pending", "success", "failed"

  - `typed_data.bridge_effects` (object)

  - `typed_data.bridge_effects.name` (string, required)
    The name of the bridge.

  - `typed_data.bridge_effects.amount` (string, required)
    The amount of the bridge.
    Example: 1000000000000000000

  - `typed_data.bridge_effects.destination` (any, required)
    The destination of the bridge.

  - `typed_data.bridge_effects.destination.type` (string, required)

  - `typed_data.bridge_effects.destination.address_repr` (string, required)
    The destination address of the bridge transaction.

  - `typed_data.bridge_effects.destination.chain_repr` (string, required)
    The destination chain of the bridge transaction.

  - `typed_data.is_gasless` (boolean, required)
    Whether the swap is gasless.

  - `typed_data.value` (string, required)
    The value in wei.
    Example: 1000000000000000000

  - `typed_data.data` (string, required)
    The transaction data.

  - `typed_data.operation` (string, required)
    Enum: "call", "delegate_call"

  - `typed_data.safe_gas` (string, required)
    Gas for the Safe transaction.
    Example: 1000000000000000000

  - `typed_data.base_gas` (string, required)
    Base gas.
    Example: 1000000000000000000

  - `typed_data.gas_price` (string, required)
    Gas price.
    Example: 1000000000000000000

  - `typed_data.nonce` (string, required)
    Safe transaction nonce.
    Example: 1000000000000000000

  - `typed_data.decoded_method` (string)
    The decoded method name.

  - `typed_data.decoded_parameters_json` (string)
    The decoded parameters as JSON string.

  - `typed_data.decoding_error` (string)
    Error message if decoding failed.

  - `typed_data.is_multi_send` (boolean, required)
    Whether this is a multi-send batched transaction.

  - `typed_data.is_sensitive_operation` (boolean, required)
    Whether this operation modifies Safe ownership, modules, or guards.

  - `typed_data.is_rejection` (boolean, required)
    Whether this is a rejection transaction.

  - `typed_data.rejected_transaction` (object)

  - `typed_data.rejected_transaction.safe_hash` (string, required)
    The Safe transaction hash being rejected.

  - `typed_data.rejected_transaction.value` (string, required)
    The value of the rejected transaction.
    Example: 1000000000000000000

  - `typed_data.rejected_transaction.method` (string)
    The method of the rejected transaction.

  - `typed_data.rejected_transaction.confirmations` (integer, required)
    Current number of confirmations.

  - `typed_data.rejected_transaction.confirmations_required` (integer, required)
    Required number of confirmations.

  - `typed_data.hyperliquid_chain` (string)
    Hyperliquid network identifier, e.g. `Mainnet`.

  - `typed_data.action_type` (any, required)
    Action-specific details. Discriminated by the nested `action_type` field.

  - `typed_data.action_type.action_type` (string, required)
    The Hyperliquid action type.

  - `typed_data.action_type.destination` (string, required)
    Recipient hex address.

  - `typed_data.action_type.amount` (string, required)
    Withdrawal amount as a decimal string.
    Example: 1000000000000000000

  - `typed_data.action_type.time` (integer, required)
    Unix timestamp in milliseconds used as a nonce by Hyperliquid.

  - `typed_data.action_type.amount` (string, required)
    Transfer amount as a decimal string.
    Example: 1000000000000000000

  - `typed_data.action_type.token` (string, required)
    Spot token identifier in `NAME:0xhexid` format, e.g. `PURR:0x0000000000000000000000000000dead`.

  - `typed_data.action_type.token` (string, required)
    Token identifier in `NAME:0xhexid` format, e.g. `PURR:0x0000000000000000000000000000dead`.

  - `typed_data.action_type.nonce` (integer, required)
    Replay-protection nonce.

  - `typed_data.action_type.signature_chain_id` (string, required)
    Chain ID used for signing, hex-encoded (e.g. `0xa4b1`).

  - `typed_data.action_type.source_dex` (string, required)
    Source DEX for the transfer (e.g. `spot`).

  - `typed_data.action_type.destination_dex` (string, required)
    Destination DEX for the transfer (e.g. `perp`).

  - `typed_data.action_type.from_sub_account` (string, required)
    Originating sub-account identifier.

  - `typed_data.action_type.vault_address` (string, required)
    Target vault hex address.

  - `typed_data.action_type.is_deposit` (boolean, required)
    Whether this is a deposit (`true`) or withdrawal (`false`) from the vault.

  - `typed_data.action_type.to_perp` (boolean, required)
    Whether to move funds to perp (`true`) or to spot (`false`).

  - `typed_data.action_type.destination_chain_id` (integer, required)
    Target chain ID for the CCTP bridge.

  - `typed_data.action_type.destination_recipient` (string, required)
    Recipient address on the destination chain.

  - `typed_data.action_type.token` (string, required)
    Token identifier, e.g. 'USDC'.

  - `typed_data.action_type.amount` (string)
    Bridge amount as a decimal string.
    Example: 1000000000000000000

  - `typed_data.action_type.gas_limit` (integer, required)
    Gas limit for the bridge transaction.

  - `typed_data.action_type.address_encoding` (string)
    Address encoding format.

  - `evm_transaction_type_details` (any, required)
    Details of the EVM transaction based on its type.

  - `evm_transaction_type_details.type` (string, required)
    A transaction involving the transfer of native currency from one address to another.

  - `evm_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `evm_transaction_type_details.type` (string, required)
    A transaction involving the transfer of a token from one address to another.

  - `evm_transaction_type_details.type` (string, required)
    A transaction involving an allowance.

  - `evm_transaction_type_details.type` (string, required)
    A transaction involving a generic call to a smart contract.

  - `evm_transaction_type_details.type` (string, required)
    A transaction that deploys a new contract.

  - `evm_transaction_type_details.type` (string, required)
    A transaction involving the transfer of funds from one blockchain to another.

  - `evm_transaction_type_details.type` (string, required)
    A transaction that makes an EOA smart contract or disables it.

  - `parsed_data` (object, required)

  - `parsed_data.method` (string, required)
    The method name, in case of contract call.

  - `parsed_data.method_arguments` (array, required)
    The method arguments, in case of contract call.

  - `parsed_data.method_arguments.name` (string, required)
    The name of the argument.

  - `parsed_data.method_arguments.type` (string, required)
    The type of the argument.

  - `parsed_data.method_arguments.value` (string, required)
    The value of the argument.

  - `parsed_data.method_arguments.children` (array)
    Decoded child arguments for complex types: array elements (e.g. bytes[], address[], uint256[3]) and tuple fields. Empty for scalar types.

  - `gas_estimation` (object)

  - `gas_estimation.gas_limit` (string, required)
    The gas limit.
    Example: 1000000000000000000

  - `hex_data` (string)
    The hex data of the contract call, as a serialized method-call with its arguments.

  - `gas_submitted` (any, required)
    The gas details submitted for the transaction.

  - `gas_submitted.price` (string, required)
    The price of a gas unit.
    Example: 1000000000000000000

  - `gas_submitted.priority` (string, required)
    Enum: "custom", "low", "medium", "high"

  - `gas_submitted.limit` (string, required)
    The gas limit.
    Example: 1000000000000000000

  - `gas_submitted.type` (string, required)
    The type of gas data.

  - `gas_submitted.max_priority_fee_per_gas` (string, required)
    The maximum tip amount for mining the transaction.
    Example: 1000000000000000000

  - `gas_submitted.max_fee_per_gas` (string, required)
    The maximum amount paid for the fee.
    Example: 1000000000000000000

  - `allowed_mev_protected_states` (array)
    The MEV-protection states permitted for this transaction. Because all pending transactions on a vault must use the same MEV-protection setting, this set may be restricted by existing pending transactions.

  - `type` (string, required)
    Starknet transaction type.

  - `exchange_transaction_type_details` (any, required)
    Details of the Exchange transaction based on its type.

  - `exchange_transaction_type_details.is_internal` (boolean, required)
    Is this transfer an internal transfer between two vaults.

  - `exchange_transaction_type_details.sender` (object, required)

  - `exchange_transaction_type_details.sender.explorer_url` (string)
    The URL of a blockchain explorer that provides real-time information about the address.

  - `exchange_transaction_type_details.sender.type` (string, required)

  - `exchange_transaction_type_details.type` (string, required)
    A transaction from an exchange vault to an MPC vault or external address.

  - `exchange_transaction_type_details.recipient` (any, required)

  - `exchange_transaction_type_details.recipient.explorer_url` (string)
    The URL of a blockchain explorer that provides real-time information about the address.

  - `exchange_transaction_type_details.recipient.type` (string, required)

  - `exchange_transaction_type_details.recipient.address` (string, required)
    The Ripple classic address.
    Example: rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh

  - `exchange_transaction_type_details.recipient.address` (string, required)
    The Solana address represented in Base58 format.
    Example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA

  - `exchange_transaction_type_details.recipient.contract` (object)

  - `exchange_transaction_type_details.recipient.contract.name` (string)
    The name of the contract.

  - `exchange_transaction_type_details.recipient.contract.dapp` (object)

  - `exchange_transaction_type_details.recipient.contract.dapp.id` (string, required)
    The unique identifier of this DApp.

  - `exchange_transaction_type_details.recipient.contract.dapp.name` (string, required)
    The name of the DApp.

  - `exchange_transaction_type_details.recipient.contract.dapp.url` (string)
    The URL of the DApp.

  - `exchange_transaction_type_details.recipient.contract.dapp.logo_url` (string)
    The logo URL of the DApp.

  - `exchange_transaction_type_details.recipient.contract.dapp.contracts_count` (integer)
    The number of contracts associated with this DApp.

  - `exchange_transaction_type_details.recipient.contract.is_verified` (boolean, required)
    `True` if the contract is verified, `False` otherwise.

  - `exchange_transaction_type_details.recipient.contract.token` (object)

  - `exchange_transaction_type_details.recipient.contract.token.type` (string, required)
    The type of the token

  - `exchange_transaction_type_details.recipient.contract.token.address` (object, required)
    Address represents an EVM blockchain address.

  - `exchange_transaction_type_details.recipient.contract.token.address.type` (string, required)

  - `exchange_transaction_type_details.recipient.contract.token.address.chain` (object, required)

  - `exchange_transaction_type_details.recipient.contract.token.address.chain.chain_type` (string, required)
    The type of the chain.

  - `exchange_transaction_type_details.recipient.contract.token.address.chain.unique_id` (string, required)
    Enum: "solana_mainnet", "solana_devnet", "solana_eclipse_mainnet", "solana_fogo_mainnet", "solana_fogo_testnet"

  - `exchange_transaction_type_details.recipient.contract.token.address.base58_repr` (string, required)
    Base58 representation of the address in the chain.
    Example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA

  - `exchange_transaction_type_details.recipient.contract.token.name` (string, required)
    The token name

  - `exchange_transaction_type_details.recipient.contract.token.symbol` (string, required)
    The token symbol or ticker

  - `exchange_transaction_type_details.recipient.contract.token.decimals` (integer, required)
    The token decimals

  - `exchange_transaction_type_details.recipient.contract.token.logo_url` (string)
    The token logo url

  - `exchange_transaction_type_details.recipient.address` (string, required)
    The Stacks address represented in hex format.
    Example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9

  - `exchange_transaction_type_details.recipient.address` (string, required)
    The Starknet address represented in hex format.
    Example: 0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8

  - `exchange_transaction_type_details.recipient.address` (string, required)
    The Stellar address represented in base32 format.
    Example: GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2

  - `exchange_transaction_type_details.recipient.address` (string, required)
    The Sui address represented in hex format.
    Example: 0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a

  - `exchange_transaction_type_details.recipient.raw_account` (string, required)
    The address TON contract in a raw format.

  - `exchange_transaction_type_details.recipient.base64_url_bounceable_account` (string, required)
    The bounceable address of the contract in base64 url format
    Example: UQBxs5hnTxjzvzsnDofRfbJeXsylUcxR8OSW7UUv317csHZ1

  - `exchange_transaction_type_details.recipient.base64_url_non_bounceable_account` (string, required)
    The non-bounceable address of the contract in base64 url format
    Example: UQBxs5hnTxjzvzsnDofRfbJeXsylUcxR8OSW7UUv317csHZ1

  - `exchange_transaction_type_details.recipient.original_account` (string, required)
    The address TON contract in the originally inserted format.

  - `exchange_transaction_type_details.recipient.address` (string, required)
    The TRON address represented in base58 format.
    Example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW

  - `exchange_transaction_type_details.recipient.address` (object, required)

  - `exchange_transaction_type_details.recipient.address.type` (string, required)

  - `exchange_transaction_type_details.recipient.address.address` (string, required)
    The UTXO string address.
    Example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq

  - `exchange_transaction_type_details.recipient.address.address_type` (string, required)
    Enum: "legacy", "p2sh", "segwit", "taproot", "merkleroot"

  - `exchange_transaction_type_details.recipient.vault_address` (object)
    Represents a reference to a vault address in the Fordefi platform

  - `exchange_transaction_type_details.recipient.vault_address.id` (string, required)
    The unique identifier of the vault address in the Fordefi platform.

  - `exchange_transaction_type_details.recipient.vault_address.vault_id` (string, required)
    The unique identifier of the vault this address belongs to.

  - `exchange_transaction_type_details.recipient.vault_address.name` (string, required)
    The name of the vault address.

  - `exchange_transaction_type_details.recipient.vault_address.address` (string, required)
    The address of the vault address.

  - `exchange_transaction_type_details.chain` (any, required)
    A blockchain with metadata.

  - `exchange_transaction_type_details.memo` (string)
    Transaction memo.

  - `exchange_transaction_type_details.hash` (string)
    The hash of the transaction.

  - `exchange_transaction_type_details.explorer_url` (string)
    The URL of this transaction in a blockchain explorer. For example, Solscan.
    Example: https://solscan.io/tx/FAWA66f...6kEZanwHeDFNS

  - `exchange_transaction_type_details.type` (string, required)
    A transaction from one exchange vault to another.

  - `type` (string, required)
    Ripple transaction type.

  - `ripple_transaction_type_details` (any, required)
    Details of the Ripple transaction based on its type.

  - `ripple_transaction_type_details.type` (string, required)
    A transaction involving the transfer of native XRP from one address to another.

  - `ripple_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `ripple_transaction_type_details.tag` (string)
    The XRPL destination tag included with the transfer, provided as a numeric string.

  - `ripple_transaction_type_details.type` (string, required)
    A Payment transaction that moves a Ripple Trust Line Asset (IOU) from one address to another. The recipient must already hold a trust line for the (currency, issuer) being sent.

  - `ripple_transaction_type_details.type` (string, required)
    A TrustSet operation to create a trust line for a Ripple issued token (IOU).

  - `ripple_transaction_type_details.type` (string, required)
    A Ripple transaction type not otherwise modeled (e.g. a third-party TrustSet or other operation).

  - `ripple_transaction_type_details.type` (string, required)
    A CheckCash transaction that redeems an incoming check. When the vault lacks a trust line for the asset, it is realized as a two-row app-level batch (CreateTrustline then CashCheck) signed in one gesture.

  - `claim_status` (string)
    Enum: "claimable", "claimed"

  - `solana_message_type` (string, required)
    Enum: "personal_message_type", "create_session_message_type"

  - `solana_message_type_details` (any, required)
    The details of the Solana message.

  - `solana_message_type_details.type` (string, required)
    The type of the Solana message.

  - `solana_message_type_details.version` (string, required)
    The version of the create session data.

  - `solana_message_type_details.session_key` (string, required)
    The session public key.

  - `solana_message_type_details.expiration` (string, required)
    The session expiration date and time.

  - `solana_message_type_details.allow_all_tokens` (boolean, required)
    True if the session is granted access to all tokens.

  - `solana_message_type_details.all_tokens_matched_exactly` (boolean, required)
    True if every token in the message matches to exactly one asset.

  - `solana_transaction_type_details` (any, required)
    Details of the Solana transaction based on its type.

  - `solana_transaction_type_details.type` (string, required)
    A transaction involving the transfer of native currency from one address to another.

  - `solana_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `solana_transaction_type_details.type` (string, required)
    A transaction capable of any operation.

  - `solana_transaction_type_details.recipients` (array, required)
    The recipients of the tokens.

  - `solana_transaction_type_details.type` (string, required)
    A Solana spot swap transaction is for swapping between two assets.

  - `solana_transaction_type_details.slippage_bps` (string, required)
    The slippage in basis points.
    Example: 1000000000000000000

  - `solana_transaction_type_details.price_impact_pct` (string, required)
    The price impact in percentage.
    Example: 1000000000000000000

  - `solana_transaction_type_details.rate` (string, required)
    The rate of the swap.
    Example: 1000000000000000000

  - `solana_transaction_type_details.broadcast_mode` (string, required)
    Enum: "priority_fee", "jito"

  - `solana_transaction_type_details.jito_suggested_fees` (object, required)

  - `solana_transaction_type_details.jito_suggested_fees.type` (string, required)
    The type of the chain.

  - `solana_transaction_type_details.jito_suggested_fees.base_fee` (string, required)
    The base fee paid for the signatures in the transaction, denominated in lamports.
    Example: 1000000000000000000

  - `solana_transaction_type_details.jito_suggested_fees.low` (string, required)
    The low suggested fee per byte, denominated in lamports.
    Example: 1000000000000000000

  - `solana_transaction_type_details.jito_suggested_fees.medium` (string, required)
    The medium suggested fee per byte, denominated in lamports.
    Example: 1000000000000000000

  - `solana_transaction_type_details.jito_suggested_fees.high` (string, required)
    The high suggested fee per byte, denominated in lamports.
    Example: 1000000000000000000

  - `solana_transaction_type_details.jito_suggested_fees.fee_type` (string, required)
    The type of the fee.

  - `was_fee_set_in_request` (boolean, required)
    Whether the priority fee was already set in the request with a ComputeBudget instruction.

  - `type` (string, required)
    Stacks transaction type.

  - `post_conditions` (object, required)

  - `post_conditions.post_condition_mode` (string, required)
    Enum: "allow", "deny"

  - `post_conditions.post_conditions` (array, required)
    The post conditions of the transaction.

  - `post_conditions.post_conditions.condition_code` (string, required)
    Enum: "eq", "gt", "ge", "lt", "le"

  - `post_conditions.post_conditions.amount` (string, required)
    The amount of the asset this post condition applies to.
    Example: 1000000000000000000

  - `post_conditions.post_conditions.type` (string, required)
    The type of the post condition.

  - `post_conditions.post_conditions.asset_name` (string, required)
    The asset name this post condition applies to

  - `stacks_transaction_type_details` (any, required)
    Details of the stacks transaction based on its type.

  - `stacks_transaction_type_details.type` (string, required)
    A transaction involving the transfer of Stacks coin from one address to another.

  - `stacks_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `stacks_transaction_type_details.type` (string, required)
    A transaction involving the transfer of an sip10 asset from one address to another.

  - `stacks_transaction_type_details.type` (string, required)
    A transaction with contract call.

  - `stacks_transaction_type_details.contract_call_payload` (object, required)

  - `stacks_transaction_type_details.contract_call_payload.contract_name` (string, required)
    The name of the contract being called.

  - `stacks_transaction_type_details.contract_call_payload.function_name` (string, required)
    The name of the function to call.

  - `stacks_transaction_type_details.contract_call_payload.function_arguments` (array, required)
    The arguments of the function to call.

  - `serialized_payload` (string, required)
    The serialized payload of the transaction.

  - `memo` (string)
    The memo of the transaction.

  - `type` (string, required)
    Starknet message type.

  - `starknet_message_type` (string, required)
    Enum: "typed_message_type"

  - `starknet_transaction_type_details` (any, required)
    Details of the Starknet transaction based on its type.

  - `starknet_transaction_type_details.type` (string, required)
    A transaction involving the transfer of Starknet coin from one address to another.

  - `starknet_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `starknet_transaction_type_details.type` (string, required)
    A transaction involving the transfer of an erc20 from one address to another.

  - `starknet_transaction_type_details.type` (string, required)
    A transaction with contract calls.

  - `starknet_transaction_type_details.recipients` (array, required)
    The called contracts.

  - `starknet_transaction_type_details.type` (string, required)
    A transaction that created a contract.

  - `call_data` (array, required)
    The call data of the transaction.

  - `call_data.method_name` (string, required)
    The name of the method to call.

  - `call_data.method_arguments` (array, required)
    The arguments of the method to call.

  - `type` (string, required)
    Stellar message type.

  - `stellar_message_type` (string, required)
    Enum: "personal_message"

  - `type` (string, required)
    Stellar transaction type.

  - `stellar_transaction_type_details` (any, required)
    Details of the Stellar transaction based on its type.

  - `stellar_transaction_type_details.type` (string, required)
    A transaction involving the transfer of native XLM (lumens) from one address to another.

  - `stellar_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `stellar_transaction_type_details.type` (string, required)
    A transaction involving the transfer of a Stellar classic asset (credit) from one address to another.

  - `stellar_transaction_type_details.type` (string, required)
    A transaction involving the transfer of a Soroban token (SEP-41 compatible) from one address to another.

  - `stellar_transaction_type_details.type` (string, required)
    A ChangeTrust operation to establish or update a trustline for Stellar classic asset.

  - `stellar_transaction_type_details.type` (string, required)
    A raw Stellar transaction containing arbitrary operations provided as XDR.

  - `stellar_transaction_type_details.type` (string, required)
    A ClaimClaimableBalance operation to claim pending claimable balances for a Stellar asset.

  - `memo` (string)
    The memo attached to this Stellar transaction, if any.

  - `decoded_tx_bytes` (string)
    The JSON representation of the transaction's data, for raw transactions.

  - `type` (string, required)
    Sui message type.

  - `sui_message_type` (string, required)
    Enum: "personal_message_type"

  - `type` (string, required)
    Sui transaction type.

  - `sui_transaction_type_details` (any, required)
    Details of the Sui transaction based on its type.

  - `sui_transaction_type_details.type` (string, required)
    A transaction involving the transfer of SUI coin from one address to another.

  - `sui_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `sui_transaction_type_details.type` (string, required)
    A transaction involving the transfer of non-SUI coin from one address to another.

  - `sui_transaction_type_details.type` (string, required)
    A transaction capable of any operation.

  - `sui_transaction_type_details.recipients` (array, required)
    The recipients that interacted with the transaction.

  - `decoded_tx_bytes` (string)
    The json representation of the transaction's data

  - `type` (string, required)
    TON message type.

  - `ton_message_type` (string, required)
    Enum: "proof_message_type"

  - `type` (string, required)
    Ton transaction type.

  - `payload` (object, required)

  - `payload.valid_until` (integer)
    The expiration time of the transaction.

  - `payload.network` (integer)
    Enum: 0, -239, -3, -1

  - `payload.messages` (array, required)
    The messages of the transaction.

  - `payload.messages.address` (object, required)

  - `payload.messages.address.chain_type` (string, required)
    The type of the chain.

  - `payload.messages.address.address` (string, required)
    The address of the TON contract in any format.

  - `payload.messages.amount` (string, required)
    The amount of nano tons to send.
    Example: 1000000000000000000

  - `payload.messages.payload` (string)
    The payload of the message.

  - `payload.messages.state_init` (string)
    The state_init structure contains all the necessary information required to create the initial state of a smart contract.

  - `payload.messages.comment` (string)
    A comment that is attached to the message.

  - `ton_transaction_type_details` (any, required)
    Details of the Ton transaction based on its type.

  - `ton_transaction_type_details.type` (string, required)
    A transaction involving the transfer of TON coin from one address to another.

  - `ton_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `ton_transaction_type_details.type` (string, required)
    A transaction involving the transfer of Jetton from one address to another.

  - `ton_transaction_type_details.type` (string, required)
    A transaction with a contract call.

  - `ton_transaction_type_details.recipients` (array, required)
    The called contract.

  - `type` (string, required)
    TRON message type.

  - `tron_message_type` (string, required)
    Enum: "typed_message_type_v1", "typed_message_type_v2"

  - `type` (string, required)
    TRON transaction type.

  - `tron_transaction_type_details` (any, required)
    Details of the tron transaction based on its type.

  - `tron_transaction_type_details.type` (string, required)
    A transaction involving the transfer of TRON coin from one address to another.

  - `tron_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `tron_transaction_type_details.type` (string, required)
    A transaction involving the transfer of an sip10 asset from one address to another.

  - `tron_transaction_type_details.type` (string, required)
    A TRON stake transaction.

  - `tron_transaction_type_details.decoded_tx_bytes` (string)
    The json representation of the transaction's data

  - `tron_transaction_type_details.type` (string, required)
    A TRON unstake transaction.

  - `tron_transaction_type_details.type` (string, required)
    A TRON delegate transaction.

  - `tron_transaction_type_details.type` (string, required)
    A TRON undelegate transaction.

  - `tron_transaction_type_details.type` (string, required)
    A TRON contract call transaction.

  - `utxo_message_type` (string, required)
    Enum: "ecdsa", "bip322_simple"

  - `utxo_transaction_type_details` (any, required)
    Details of the Utxo transaction based on its type.

  - `utxo_transaction_type_details.type` (string, required)
    A transaction involving the transfer of native currency from one or moreaddresses to one or more addresses.

  - `utxo_transaction_type_details.is_internal` (boolean)
    Is this transfer an internal transfer between two vaults. None if the transaction is incoming.

  - `utxo_transaction_type_details.memos` (array, required)
    List of memos of the transaction.

  - `utxo_transaction_type_details.type` (string, required)
    A partially signed bitcoin transaction (PSBT).

  - `utxo_transaction_type_details.psbt_raw_data` (string, required)
    Partially signed bitcoin transaction data encoded as a hex string.

  - `utxo_transaction_type_details.signed_psbt_raw_data` (string)
    Partially signed bitcoin transaction data encoded as a hex string.

  - `utxo_transaction_type_details.json_representation` (string)
    Json representation of the PSBT.

## Response 400 fields (application/json):

  - `title` (string, required)
    Human-readable error message.

  - `detail` (string, required)
    Detailed error message.

  - `full_detail` (string)
    Full error message with additional details, if available.

  - `request_id` (string)
    Request ID - for debugging purposes.

  - `system_error_code` (string)
    An additional system error code in Fordefi.

  - `error_type` (string)
    Enum: "vault_not_found", "invalid_evm_message", "invalid_evm_transaction_data", "reverted_transaction", "transaction_to_non_contract", "vault_type_mismatch", "dust_not_allowed", "insecure_key_derivation", "missing_secret_key_or_recent_blockhash", "missing_secret_key_or_signature", "revoke_allowance_gas_limit_too_high", "priority_fee_already_set", "quote_not_found", "transaction_uses_secure_node"

## Response 401 fields (application/json):

  - `title` (string, required)
    Human-readable error message.

  - `detail` (string, required)
    Detailed error message.

  - `full_detail` (string)
    Full error message with additional details, if available.

  - `request_id` (string)
    Request ID - for debugging purposes.

## Response 403 fields (application/json):

  - `title` (string, required)
    Human-readable error message.

  - `detail` (string, required)
    Detailed error message.

  - `full_detail` (string)
    Full error message with additional details, if available.

  - `request_id` (string)
    Request ID - for debugging purposes.

## Response 408 fields (application/json):

  - `title` (string, required)
    Human-readable error message.

  - `detail` (string, required)
    Detailed error message.

  - `full_detail` (string)
    Full error message with additional details, if available.

  - `request_id` (string)
    Request ID - for debugging purposes.

## Response 422 fields (application/json):

  - `title` (string, required)
    Human-readable error message.

  - `detail` (array, required)

  - `detail.loc` (array, required)

  - `detail.msg` (string, required)

  - `detail.type` (string, required)

  - `full_detail` (string)
    Full error message with additional details, if available.

  - `request_id` (string)
    Request ID - for debugging purposes.

## Response 500 fields (application/json):

  - `title` (string, required)
    Human-readable error message.

  - `detail` (string, required)
    Detailed error message.

  - `full_detail` (string)
    Full error message with additional details, if available.

  - `request_id` (string)
    Request ID - for debugging purposes.

