---
title: "Create Batch Transaction"
method: POST
path: "/api/v1/batch-transactions"
tags: ["Batch Transactions"]
---

# Create Batch Transaction

`POST /api/v1/batch-transactions`

Create a batch of transactions.
<br>
Batch transactions are currently supported only on Solana.

## 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
  - CreateBatchSolanaTransactionRequest
    - `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` CreateBatchTransactionRequestDetails, required
      - `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
      - `transactions` CreateBatchTransactionInstanceDetails[], required — Details of the transactions in the batch.
        - `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).
  - CreateBatchUtxoDlcTransactionRequest
    - `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_dlc_transaction', required — The type of the transaction.
    - `details` BatchDlcTransactionRequestDetails, required
      - `funding_transaction` TransactionDetailsUtxoDlcRequest, required
        - `psbt_raw_data` string, required — Partially signed bitcoin transaction data encoded as a hex string.
        - `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.
      - `refund_transaction` TransactionDetailsUtxoDlcRequest, required
        - `psbt_raw_data` string, required — Partially signed bitcoin transaction data encoded as a hex string.
        - `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.
      - `cet_transactions` TransactionDetailsUtxoCetRequest[], required
        - `psbt_raw_data` string, required — Partially signed bitcoin transaction data encoded as a hex string.
        - `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.
        - `adaptor_point` string, required — The adaptor point for the DLC CET transaction.

## Response `201`

Successful Response

- CreateBatchTransactionResponse
  - `batch_id` string, uuid, required — ID of the batch of transactions.
  - `transactions` CreateBatchTransactionInstanceResponse[], required
    - union
      - SolanaTransaction
        - `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.
        - `managed_transaction_data` ManagedTransactionData
          - `created_by` union, required — Represents a reference to a user in the Fordefi platform
            - PersonRef
              - …
            - ApiUserRef
              - …
            - ApiSignerRef
              - …
            - EndUserRef
              - …
            - SystemUserRef
              - …
          - `aborted_by` union — Represents a reference to a user in the Fordefi platform
            - PersonRef
              - …
            - ApiUserRef
              - …
            - ApiSignerRef
              - …
            - EndUserRef
              - …
            - SystemUserRef
              - …
          - `finalized_for_signing_by` union — Represents a reference to a user in the Fordefi platform
            - PersonRef
              - …
            - ApiUserRef
              - …
            - ApiSignerRef
              - …
            - EndUserRef
              - …
            - SystemUserRef
              - …
          - `device_signing_request` ActionSigningRequest — Represents a device sign request for an action in the Foredefi platform
            - `created_by` union, required — Represents a reference to a user in the Fordefi platform
              - …
            - `signers` ActionSigner[], required — A list of required signers. A signer can be a person or an API Signer.
              - …
          - `approval_request` ApprovalRequest — Represents an approval request for an action in the Fordefi platform
            - `state` 'created' | 'approved' | 'insufficient_approvers' | 'auto_approved' | 'failed', required — Represents the whole approval request state
            - `required_groups` integer, required — The number of required approval groups.
            - `approval_groups` ApprovalRequestGroup[], required — A list of the possible approvers from different groups.
              - …
            - `error_message` string — The error message if the request failed.
          - `aml_policy_match` AmlPolicyMatchOutgoing
            - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
            - `rule_id` string, uuid, required — The unique identifier of the rule.
            - `rule_name` string, required — The name of the rule.
            - `action_type` 'allow' | 'block' | 'require_approval' | 'skip', required
          - `policy_match` PolicyMatch
            - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
            - `rule_id` string, uuid, required — The unique identifier of the rule.
            - `rule_name` string, required — The name of the rule.
            - `action_type` 'allow' | 'block' | 'require_approval', required
          - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user', required
          - `risks` TransactionRisk[], required — The list of risks associated with this transaction.
            - `type` 'transfer_to_erc20_contract' | 'organization_not_interacted_with_address' | 'vault_not_interacted_with_address' | 'allowance_to_eoa' | 'unlimited_allowance' | 'contract_not_verified' | 'bridge_dest_differ_from_sender' | 'nft_approve_for_all' | 'missing_simulation' | 'unsupported_simulation' | 'post_conditions_allow_mode' | 'safe_sensitive_operation', required
            - `severity` 'low' | 'medium' | 'high', required
            - `title` string, required — The title of the risk.
            - `description` string, required — A detailed description of the risk.
          - `error_pushing_to_blockchain_message` string — The translated error message received from the node if it was rejected by it.
          - `original_error_pushing_to_blockchain_message` string — The error message received from the node if it was rejected by it.
          - `vault` VaultRef, required — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `idempotence_id` string, uuid — Optional idempotence ID of a transaction.
          - `has_current_user_vault_permissions` boolean, required — Does current user have permissions to the origin vault according to its vault group permissions.
          - `batch_data` BatchData
            - `batch_id` string, uuid, required — The unique identifier of the batch.
            - `index_in_batch` integer, required — Index of transaction in the batch.
            - `batch_size` integer, required — The number of transactions in the batch.
            - `matched_policies` PolicyMatch[], required — List of policies matched by this message.
              - …
          - `push_mode` 'auto' | 'manual' | 'deferred'
          - `last_pushed_at` string, date-time — The last time the transaction was pushed to the node.
          - `sign_mode` 'auto' | 'triggered'
          - `fee_paid_by` FeePaidByVault
            - `type` 'vault', required — The type of fee payer.
            - `vault` VaultRef, required — Represents a reference to a vault in the Fordefi platform
              - …
          - `attested_payload_for_signing` string — JWS attestation for the payload (external signer). Set after finalize-for-signing.
          - `tx_policy_explanation_id` string, uuid — The id of the transaction policy explanation produced for this transaction, if any.
        - `signatures` Signature[], required — The transaction signatures.
          - `data` string, required — Signature on the transaction, encoded in base64 format.
          - `signed_by` union — The user who created this signature, `null` if the signature wasn't created by a Fordefi user.
            - PersonRef
              - …
            - ApiSignerRef
              - …
            - EndUserRef
              - …
            - ApiUserRef
              - …
        - `note` string — An optional transaction note.
        - `spam_state` 'unset' | 'manually_set' | 'automatically_set'
        - `direction` 'outgoing' | 'incoming', required
        - `signed_externally` boolean — Whether the transaction was signed by an external user (for example in case of imported vault).
        - `interacted_vaults` VaultRef[], required — The vaults that interacted with the transaction.
          - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
          - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
          - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
          - `name` string, required — The name of the vault.
          - `address` string — The address of the vault.
          - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
          - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
          - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
          - `end_user` EndUserRef
            - `id` string, uuid, required — The unique identifier of the user in the Fordefi platform.
            - `user_type` 'end_user', required — The type of the user.
            - `external_id` string, required — External id of the user.
            - `state` 'active' | 'deleted', required — The state of the user.
          - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
        - `related_transactions` RelatedTransaction[] — The related transactions.
          - `type` 'swap_fulfilled_by' | 'swap_fulfilling' | 'bridge_intent' | 'bridge_source' | 'bridge_destination' | 'stellar_claim_of' | 'stellar_claimed_by' | 'canton_accept_of' | 'canton_accepted_by', required
          - `hash` string — The hash of the related transaction.
          - `id` string, uuid — The id of the related transaction.
          - `chain` union, required — A blockchain with metadata.
            - EnrichedAptosChain
              - …
            - EnrichedArchChain
              - …
            - EnrichedCantonChain
              - …
            - EnrichedCosmosChain
              - …
            - EnrichedEvmChain
              - …
            - EnrichedExchangeChain
              - …
            - EnrichedSolanaChain
              - …
            - EnrichedStacksChain
              - …
            - EnrichedStarknetChain
              - …
            - EnrichedStellarChain
              - …
            - EnrichedSuiChain
              - …
            - EnrichedTonChain
              - …
            - EnrichedTronChain
              - …
            - EnrichedUtxoChain
              - …
          - `explorer_url` string, uri — The URL of the related transaction in a blockchain explorer.
        - `organization_id` string, uuid, required — The organization that the transaction belongs to.
        - `block` Block
          - `number` integer, required — The block number.
          - `hash` string — The block hash.
          - `mined_at` string, date-time, required — The date and time when this block was mined.
        - `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
        - `state_changes` PushableTransactionStateChange[], required — The state changes of the transaction.
          - `changed_at` string, date-time, required — The date and time when the state was changed.
          - `reason` 'failed_to_verify_signature' | 'original_transaction_was_completed' | 'stale_nonce' | 'quote_expired' | 'another_dlc_transaction_was_completed' | 'fee_limit_exceeded' | 'not_in_mempool_or_chain' | 'exchange_withdraw_address_not_whitelisted' | 'exchange_invalid_api_key_permissions' | 'exchange_funds_pending_settlement' | 'exchange_withdrawal_limit_exceeded' | 'exchange_security_and_policy_holds' | 'exchange_service_unavailable'
          - `previous_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'
          - `new_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
        - `aml_check` AmlCheck
          - `results` AmlResults
            - `scan_status` 'error' | 'timeout' | 'skipped' | 'completed' | 'unsupported_chain' | 'pending', required
            - `error_message` string — The error message if the scan failed.
            - `scan_results` ChainalysisScanResult
              - …
          - `incoming_aml_check` IncomingAmlCheck
            - `policy_match` AmlPolicyMatchIncoming
              - …
            - `users_eligible_to_unfreeze` RequestApprover[] — list of possible approvers
              - …
            - `frozen` boolean — Whether the transaction is frozen.
        - `mined_result_status` 'success' | 'missing' | 'potentially_partial'
        - `simulation_status_result` SimulationStatusResult
          - `simulation_status` 'success' | 'failed' | 'reverted' | 'skipped'
          - `details` string, required — Details about transaction reversion if occurred.
        - `type` 'solana_transaction', required — The type of the transaction.
        - `solana_transaction_type_details` union, required — Details of the Solana transaction based on its type.
          - SolanaNativeTransferDetails
            - `type` 'native_transfer', required — A transaction involving the transfer of native currency from one address to another.
            - `sender` EnrichedSolanaAddress, required
              - …
            - `recipient` EnrichedSolanaAddress, required
              - …
            - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
          - SolanaTokenTransferDetails
            - `type` 'token_transfer', required — A transaction involving the transfer of native currency from one address to another.
            - `sender` EnrichedSolanaAddress, required
              - …
            - `recipient` EnrichedSolanaAddress, required
              - …
            - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
          - SolanaRawTransactionDetails
            - `type` 'raw_transaction', required — A transaction capable of any operation.
            - `recipients` EnrichedSolanaAddress[], required — The recipients of the tokens.
              - …
        - `chain` EnrichedSolanaChain, required
          - `chain_type` 'solana', required — The type of the chain.
          - `unique_id` 'solana_mainnet' | 'solana_devnet' | 'solana_eclipse_mainnet' | 'solana_fogo_mainnet' | 'solana_fogo_testnet', required
          - `name` string, required — The full blockchain name.
          - `native_currency_symbol` string, required — The native currency symbol.
          - `native_currency_name` string, required — The native currency name.
          - `blockchain_explorer` BlockchainExplorer — A blockchain explorer entry point.
            - `transaction_url` string, uri, required
            - `address_url` string, uri, required
            - `root_url` string, uri, required
            - `transaction_format_url` string, uri
            - `address_format_url` string, uri
            - `asset_format_url` string, uri
          - `logo_url` string, uri, required — The logo URL of the chain.
          - `is_testnet` boolean, required — Whether the chain is on a testnet.
          - `is_enabled` boolean, required — Whether the chain is enabled.
        - `version` 'legacy' | 'v0', required
        - `instructions` SolanaCompiledInstruction[], required — The instructions of the transaction.
          - `program_index` integer, required — The program index.
          - `data` string, required — The instruction data in Base64 format.
          - `account_indexes` integer[], required — The indexes of the instruction accounts in the transaction accounts list.
          - `program` EnrichedSolanaAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'solana', required
            - `address` string, required — The Solana address represented in Base58 format.
            - `contract` SolanaContractMetadata
              - …
          - `base58_data` string — The instruction data encoded in Base58 format.
        - `accounts` SolanaTransactionAccount[], required — Accounts used in the transaction.
          - `address` EnrichedSolanaAddress, required
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
            - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
              - …
            - `type` 'solana', required
            - `address` string, required — The Solana address represented in Base58 format.
            - `contract` SolanaContractMetadata
              - …
          - `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.
        - `address_table_lookups` SolanaEnrichedMessageAddressTableLookup[], required — Lookup tables of accounts used in the transaction.
          - `account_key` SolanaAddress, required — Address represents an EVM blockchain address.
            - `type` 'solana', required
            - `chain` SolanaChain, required
              - …
            - `base58_repr` string, required — Base58 representation of the address in the chain.
          - `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.
          - `state` AddressLookupTableState, required
            - `addresses` EnrichedSolanaAddress[], required — The addresses that are stored in the table.
              - …
            - `authority` EnrichedSolanaAddress
              - …
            - `deactivation_slot` string, required — The table can be closed when the deactivation slot is no longer the recent slot.
            - `last_extended_slot` string, required — The number of the last slot in which a change constitutes an extension of the table.
            - `last_extended_slot_start_index` string, required — The start index where the table was last extended from during the `last_extended_slot`.
        - `sender` EnrichedSolanaAddress, required
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'solana', required
          - `address` string, required — The Solana address represented in Base58 format.
          - `contract` SolanaContractMetadata
            - `name` string — The name of the contract.
            - `dapp` Dapp
              - …
            - `is_verified` boolean, required — `True` if the contract is verified, `False` otherwise.
            - `token` SplToken
              - …
        - `raw_transaction` string — The serialized transaction encoded as a base64 string
        - `hash` string — The first signature of the transaction.
        - `recent_blockhash` string — The transaction nonce (last block hash).
        - `expected_result` SolanaTransactionResult
          - `reversion` SolanaReversion, required
            - `state` 'not_reverted' | 'unknown_revert' | 'contract_asserted' | 'insufficient_funds_gas_and_value' | 'insufficient_funds_for_rent', required
            - `reason` string — The reason for the reversion (additional information).
          - `transaction_error` string — The description of the error of the transaction.
          - `enriched_fee` SolanaFee, required
            - `priority_level` 'custom' | 'low' | 'medium' | 'high', required
            - `base_fee` string, required — The base fee of the transaction (in lamports).
            - `priority_fee` string, required — The priority fee of the transaction (in lamports).
            - `unit_price` string — The unit price of the transaction (in microlamports).
            - `fee` string, required — The total fee of the transaction (in lamports).
            - `fee_type` 'jito' | 'priority_fee', required
            - `priced_asset` PricedAsset, required
              - …
          - `effects` SolanaEffects, required
            - `balance_changes` SolanaBalanceChangeEffect[], required — The aggregated balance changes of addresses.
              - …
            - `transfers` SolanaTransferEffect[], required — The transfer events of the transaction.
              - …
            - `allowances` SolanaAllowanceEffect[], required — Allowances set or modified as a result of the transaction
              - …
          - `instruction_error` InstructionError
            - `error_type` string, required — The type of the error of the instruction.
            - `instruction_index` integer, required — The index of the instruction.
            - `error_description` string — The description of the error of the instruction.
        - `mined_result` SolanaTransactionResult
          - `reversion` SolanaReversion, required
            - `state` 'not_reverted' | 'unknown_revert' | 'contract_asserted' | 'insufficient_funds_gas_and_value' | 'insufficient_funds_for_rent', required
            - `reason` string — The reason for the reversion (additional information).
          - `transaction_error` string — The description of the error of the transaction.
          - `enriched_fee` SolanaFee, required
            - `priority_level` 'custom' | 'low' | 'medium' | 'high', required
            - `base_fee` string, required — The base fee of the transaction (in lamports).
            - `priority_fee` string, required — The priority fee of the transaction (in lamports).
            - `unit_price` string — The unit price of the transaction (in microlamports).
            - `fee` string, required — The total fee of the transaction (in lamports).
            - `fee_type` 'jito' | 'priority_fee', required
            - `priced_asset` PricedAsset, required
              - …
          - `effects` SolanaEffects, required
            - `balance_changes` SolanaBalanceChangeEffect[], required — The aggregated balance changes of addresses.
              - …
            - `transfers` SolanaTransferEffect[], required — The transfer events of the transaction.
              - …
            - `allowances` SolanaAllowanceEffect[], required — Allowances set or modified as a result of the transaction
              - …
          - `instruction_error` InstructionError
            - `error_type` string, required — The type of the error of the instruction.
            - `instruction_index` integer, required — The index of the instruction.
            - `error_description` string — The description of the error of the instruction.
        - `explorer_url` string, uri — The URL of this transaction in a blockchain explorer. For example, Solscan.
        - `was_fee_set_in_request` boolean, required — Whether the priority fee was already set in the request with a ComputeBudget instruction.
        - `fee_payer` EnrichedSolanaAddress
          - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `explorer_url` string, uri — The URL of a blockchain explorer that provides real-time information about the address.
          - `contact` ContactRef — Represents a reference to an address book contact in the Fordefi platform.
            - `id` string, uuid, required — The unique identifier of the address book contact in the Fordefi platform.
            - `name` string, required — The name of the contact.
            - `address_ref` union, required
              - …
          - `type` 'solana', required
          - `address` string, required — The Solana address represented in Base58 format.
          - `contract` SolanaContractMetadata
            - `name` string — The name of the contract.
            - `dapp` Dapp
              - …
            - `is_verified` boolean, required — `True` if the contract is verified, `False` otherwise.
            - `token` SplToken
              - …
      - UtxoTransaction
        - `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.
        - `managed_transaction_data` ManagedTransactionData
          - `created_by` union, required — Represents a reference to a user in the Fordefi platform
            - PersonRef
              - …
            - ApiUserRef
              - …
            - ApiSignerRef
              - …
            - EndUserRef
              - …
            - SystemUserRef
              - …
          - `aborted_by` union — Represents a reference to a user in the Fordefi platform
            - PersonRef
              - …
            - ApiUserRef
              - …
            - ApiSignerRef
              - …
            - EndUserRef
              - …
            - SystemUserRef
              - …
          - `finalized_for_signing_by` union — Represents a reference to a user in the Fordefi platform
            - PersonRef
              - …
            - ApiUserRef
              - …
            - ApiSignerRef
              - …
            - EndUserRef
              - …
            - SystemUserRef
              - …
          - `device_signing_request` ActionSigningRequest — Represents a device sign request for an action in the Foredefi platform
            - `created_by` union, required — Represents a reference to a user in the Fordefi platform
              - …
            - `signers` ActionSigner[], required — A list of required signers. A signer can be a person or an API Signer.
              - …
          - `approval_request` ApprovalRequest — Represents an approval request for an action in the Fordefi platform
            - `state` 'created' | 'approved' | 'insufficient_approvers' | 'auto_approved' | 'failed', required — Represents the whole approval request state
            - `required_groups` integer, required — The number of required approval groups.
            - `approval_groups` ApprovalRequestGroup[], required — A list of the possible approvers from different groups.
              - …
            - `error_message` string — The error message if the request failed.
          - `aml_policy_match` AmlPolicyMatchOutgoing
            - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
            - `rule_id` string, uuid, required — The unique identifier of the rule.
            - `rule_name` string, required — The name of the rule.
            - `action_type` 'allow' | 'block' | 'require_approval' | 'skip', required
          - `policy_match` PolicyMatch
            - `is_default` boolean, required — `True` if this is the default rule, `False` otherwise.
            - `rule_id` string, uuid, required — The unique identifier of the rule.
            - `rule_name` string, required — The name of the rule.
            - `action_type` 'allow' | 'block' | 'require_approval', required
          - `signer_type` 'initiator' | 'api_signer' | 'end_user' | 'multiple_signers' | 'api_user', required
          - `risks` TransactionRisk[], required — The list of risks associated with this transaction.
            - `type` 'transfer_to_erc20_contract' | 'organization_not_interacted_with_address' | 'vault_not_interacted_with_address' | 'allowance_to_eoa' | 'unlimited_allowance' | 'contract_not_verified' | 'bridge_dest_differ_from_sender' | 'nft_approve_for_all' | 'missing_simulation' | 'unsupported_simulation' | 'post_conditions_allow_mode' | 'safe_sensitive_operation', required
            - `severity` 'low' | 'medium' | 'high', required
            - `title` string, required — The title of the risk.
            - `description` string, required — A detailed description of the risk.
          - `error_pushing_to_blockchain_message` string — The translated error message received from the node if it was rejected by it.
          - `original_error_pushing_to_blockchain_message` string — The error message received from the node if it was rejected by it.
          - `vault` VaultRef, required — Represents a reference to a vault in the Fordefi platform
            - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
            - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
            - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
            - `name` string, required — The name of the vault.
            - `address` string — The address of the vault.
            - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
            - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
            - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
            - `end_user` EndUserRef
              - …
            - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
          - `idempotence_id` string, uuid — Optional idempotence ID of a transaction.
          - `has_current_user_vault_permissions` boolean, required — Does current user have permissions to the origin vault according to its vault group permissions.
          - `batch_data` BatchData
            - `batch_id` string, uuid, required — The unique identifier of the batch.
            - `index_in_batch` integer, required — Index of transaction in the batch.
            - `batch_size` integer, required — The number of transactions in the batch.
            - `matched_policies` PolicyMatch[], required — List of policies matched by this message.
              - …
          - `push_mode` 'auto' | 'manual' | 'deferred'
          - `last_pushed_at` string, date-time — The last time the transaction was pushed to the node.
          - `sign_mode` 'auto' | 'triggered'
          - `fee_paid_by` FeePaidByVault
            - `type` 'vault', required — The type of fee payer.
            - `vault` VaultRef, required — Represents a reference to a vault in the Fordefi platform
              - …
          - `attested_payload_for_signing` string — JWS attestation for the payload (external signer). Set after finalize-for-signing.
          - `tx_policy_explanation_id` string, uuid — The id of the transaction policy explanation produced for this transaction, if any.
        - `signatures` Signature[], required — The transaction signatures.
          - `data` string, required — Signature on the transaction, encoded in base64 format.
          - `signed_by` union — The user who created this signature, `null` if the signature wasn't created by a Fordefi user.
            - PersonRef
              - …
            - ApiSignerRef
              - …
            - EndUserRef
              - …
            - ApiUserRef
              - …
        - `note` string — An optional transaction note.
        - `spam_state` 'unset' | 'manually_set' | 'automatically_set'
        - `direction` 'outgoing' | 'incoming', required
        - `signed_externally` boolean — Whether the transaction was signed by an external user (for example in case of imported vault).
        - `interacted_vaults` VaultRef[], required — The vaults that interacted with the transaction.
          - `id` string, uuid, required — The unique identifier of the vault in the Fordefi platform.
          - `vault_group_id` string, uuid — The unique identifier of the vault group this vault belongs to.
          - `vault_group_ids` string[], required — The unique identifiers of the vault groups this vault belongs to.
          - `name` string, required — The name of the vault.
          - `address` string — The address of the vault.
          - `state` 'active' | 'archived' | 'deleted' | 'pending' | 'aborted', required
          - `type` 'aptos' | 'arch' | 'black_box' | 'canton' | 'cosmos' | 'evm' | 'safe' | 'solana' | 'stacks' | 'starknet' | 'stellar' | 'sui' | 'ton' | 'tron' | 'utxo' | 'exchange', required
          - `logo_url` string, uri — The logo of the vault. Supported for exchange and Safe vaults.
          - `end_user` EndUserRef
            - `id` string, uuid, required — The unique identifier of the user in the Fordefi platform.
            - `user_type` 'end_user', required — The type of the user.
            - `external_id` string, required — External id of the user.
            - `state` 'active' | 'deleted', required — The state of the user.
          - `is_external_signer` boolean — Whether the vault uses an externally imported key (external signer).
        - `related_transactions` RelatedTransaction[] — The related transactions.
          - `type` 'swap_fulfilled_by' | 'swap_fulfilling' | 'bridge_intent' | 'bridge_source' | 'bridge_destination' | 'stellar_claim_of' | 'stellar_claimed_by' | 'canton_accept_of' | 'canton_accepted_by', required
          - `hash` string — The hash of the related transaction.
          - `id` string, uuid — The id of the related transaction.
          - `chain` union, required — A blockchain with metadata.
            - EnrichedAptosChain
              - …
            - EnrichedArchChain
              - …
            - EnrichedCantonChain
              - …
            - EnrichedCosmosChain
              - …
            - EnrichedEvmChain
              - …
            - EnrichedExchangeChain
              - …
            - EnrichedSolanaChain
              - …
            - EnrichedStacksChain
              - …
            - EnrichedStarknetChain
              - …
            - EnrichedStellarChain
              - …
            - EnrichedSuiChain
              - …
            - EnrichedTonChain
              - …
            - EnrichedTronChain
              - …
            - EnrichedUtxoChain
              - …
          - `explorer_url` string, uri — The URL of the related transaction in a blockchain explorer.
        - `organization_id` string, uuid, required — The organization that the transaction belongs to.
        - `block` Block
          - `number` integer, required — The block number.
          - `hash` string — The block hash.
          - `mined_at` string, date-time, required — The date and time when this block was mined.
        - `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
        - `state_changes` PushableTransactionStateChange[], required — The state changes of the transaction.
          - `changed_at` string, date-time, required — The date and time when the state was changed.
          - `reason` 'failed_to_verify_signature' | 'original_transaction_was_completed' | 'stale_nonce' | 'quote_expired' | 'another_dlc_transaction_was_completed' | 'fee_limit_exceeded' | 'not_in_mempool_or_chain' | 'exchange_withdraw_address_not_whitelisted' | 'exchange_invalid_api_key_permissions' | 'exchange_funds_pending_settlement' | 'exchange_withdrawal_limit_exceeded' | 'exchange_security_and_policy_holds' | 'exchange_service_unavailable'
          - `previous_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'
          - `new_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
        - `aml_check` AmlCheck
          - `results` AmlResults
            - `scan_status` 'error' | 'timeout' | 'skipped' | 'completed' | 'unsupported_chain' | 'pending', required
            - `error_message` string — The error message if the scan failed.
            - `scan_results` ChainalysisScanResult
              - …
          - `incoming_aml_check` IncomingAmlCheck
            - `policy_match` AmlPolicyMatchIncoming
              - …
            - `users_eligible_to_unfreeze` RequestApprover[] — list of possible approvers
              - …
            - `frozen` boolean — Whether the transaction is frozen.
        - `mined_result_status` 'success' | 'missing' | 'potentially_partial'
        - `simulation_status_result` SimulationStatusResult
          - `simulation_status` 'success' | 'failed' | 'reverted' | 'skipped'
          - `details` string, required — Details about transaction reversion if occurred.
        - `parent_transaction_id` string, uuid — The unique identifier of the parent transaction. Parent and child transactions form in cases where a transaction become stuck and is then either canceled or accelerated. If, for example, the original transaction (`t1`) is the parent and the related, adjustment transaction is the child (`t2`), then relative to itself, the parent field of `t1` is `null` and the child field is `t2_id`. Compare with field `child_transaction_id`.
        - `child_transaction_id` string, uuid — The unique identifier of the child transaction. Compare with field `parent_transaction_id`. Relative to itself, the parent field of transaction `t2` would aquire the identifier `t1_id` and the child field of `t2` would be `null`.
        - `is_cancelation` boolean, required — `True` if this transaction is a cancelation of a previous transaction, `False` otherwise.
        - `is_acceleration` boolean, required — `True` if this transaction is an acceleration of a previous transaction, `False` otherwise.
        - `type` 'utxo_transaction', required — The type of the transaction.
        - `utxo_transaction_type_details` union, required — Details of UTXO transaction, based on its type.
          - UtxoNativeTransferDetails
            - `type` 'native_transfer', required — A transaction involving the transfer of native currency from one or moreaddresses to one or more addresses.
            - `is_internal` boolean — Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
            - `vault` VaultRef — Represents a reference to a vault in the Fordefi platform
              - …
            - `memos` string[], required — List of memos of the transaction.
          - UtxoPsbtDetails
            - `type` '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.
            - `signed_psbt_raw_data` string — Partially signed bitcoin transaction data encoded as a hex string.
            - `sender` EnrichedUtxoAddress, required
              - …
            - `json_representation` string — Json representation of the PSBT.
        - `chain` EnrichedUtxoChain, 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
          - `name` string, required — The full blockchain name.
          - `native_currency_symbol` string, required — The native currency symbol.
          - `native_currency_name` string, required — The native currency name.
          - `blockchain_explorer` BlockchainExplorer — A blockchain explorer entry point.
            - `transaction_url` string, uri, required
            - `address_url` string, uri, required
            - `root_url` string, uri, required
            - `transaction_format_url` string, uri
            - `address_format_url` string, uri
            - `asset_format_url` string, uri
          - `logo_url` string, uri, required — The logo URL of the chain.
          - `is_testnet` boolean, required — Whether the chain is on a testnet.
          - `is_enabled` boolean, required — Whether the chain is enabled.
        - `hash` string — The hash of the transaction.
        - `explorer_url` string, uri — The URL of this transaction in a blockchain explorer.
        - `expected_result` UtxoTransactionResult
          - `fees` UtxoFees
            - `priority` 'custom' | 'low' | 'medium' | 'high', required
            - `fee_per_byte` string, required — The fee per byte.
            - `transaction_byte_size` string, required — The transaction size in bytes.
            - `total_fee` string, required — The total fee paid.
            - `priced_asset` PricedAsset, required
              - …
          - `effects` UtxoEffects, required
            - `inputs` UtxoInput[], required — The inputs of the transaction.
              - …
            - `outputs` UtxoOutput[], required — The outputs of the transaction.
              - …
            - `balance_changes` UtxoBalanceChangeEffect[], required — The aggregated balance changes of vaults.
              - …
            - `total_value` string, required — The total value of the transaction.
            - `priced_asset` PricedAsset, required
              - …
          - `is_coinbase` boolean — True when this transaction is a coinbase (block-reward) transaction.
        - `mined_result` UtxoTransactionResult
          - `fees` UtxoFees
            - `priority` 'custom' | 'low' | 'medium' | 'high', required
            - `fee_per_byte` string, required — The fee per byte.
            - `transaction_byte_size` string, required — The transaction size in bytes.
            - `total_fee` string, required — The total fee paid.
            - `priced_asset` PricedAsset, required
              - …
          - `effects` UtxoEffects, required
            - `inputs` UtxoInput[], required — The inputs of the transaction.
              - …
            - `outputs` UtxoOutput[], required — The outputs of the transaction.
              - …
            - `balance_changes` UtxoBalanceChangeEffect[], required — The aggregated balance changes of vaults.
              - …
            - `total_value` string, required — The total value of the transaction.
            - `priced_asset` PricedAsset, required
              - …
          - `is_coinbase` boolean — True when this transaction is a coinbase (block-reward) transaction.
        - `dlc_data` DlcDataResponse
          - `dlc_transaction_type` 'FUNDING_TRANSACTION' | 'REFUND_TRANSACTION' | 'CET_TRANSACTION', required
          - `funding_transaction_id` string, uuid, required
          - `refund_transaction_id` string, uuid, required
          - `cet_transaction_ids` string[], required
          - `adaptor_point` string

## Other responses

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

---

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