---
title: "Get transaction history"
method: GET
path: "/transactions"
tags: ["Transactions"]
---

# Get transaction history

`GET /transactions`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/transactions`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/transactions/get.ts> (a function with typed inputs; its response is checked against the schema)

Get the transaction history for your workspace.

**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.

## Query parameters

- `next` string
- `prev` string
- `before` string
- `after` string
- `status` string
- `orderBy` 'createdAt' | 'lastUpdated'
- `sort` 'ASC' | 'DESC'
- `limit` integer
- `sourceType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'FIAT_ACCOUNT' | 'NETWORK_CONNECTION' | 'COMPOUND' | 'UNKNOWN' | 'GAS_STATION' | 'END_USER_WALLET' | 'WALLET_POOL'
- `sourceId` string
- `destType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'FIAT_ACCOUNT' | 'NETWORK_CONNECTION' | 'COMPOUND' | 'ONE_TIME_ADDRESS' | 'END_USER_WALLET'
- `destId` string
- `assets` string
- `txHash` string
- `sourceWalletId` string
- `destWalletId` string

## Response `200`

A list of transactions

- TransactionResponse[]
  - `id` string: ID of the transaction.
  - `externalTxId` string: Unique transaction ID provided by the user. Fireblocks highly recommends setting an `externalTxId` for every transaction created, to avoid submitting the same transaction twice.
  - `status` string: The primary status of the transaction. For details, see [Primary transaction statuses](https://developers.fireblocks.com/reference/primary-transaction-statuses).
  - `subStatus` string: See [Transaction substatuses](https://developers.fireblocks.com/reference/transaction-substatuses) for the list of transaction sub statuses.
  - `txHash` string: The hash of the transaction on the blockchain. * This parameter exists if at least one of the following conditions is met: 1. The transaction’s source type is `UNKNOWN`, `WHITELISTED_ADDRESS`, `NETWORK_CONNECTION`, `ONE_TIME_ADDRESS`, `FIAT_ACCOUNT` or `GAS_STATION`. 2. The transaction’s source type is `VAULT` and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these statuses prior to changing to `FAILED` or `REJECTED`. In some instances, transactions in status `BROADCASTING` will include the txHash as well. 3. The transaction’s source type is `EXCHANGE_ACCOUNT` and the transaction’s destination type is `VAULT`, and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these status prior to changing to `FAILED`. * In addition, the following conditions must be met: 1. The asset is a crypto asset (not fiat). 2. The transaction operation is not RAW or `TYPED_MESSAGE`.
  - `operation` 'TRANSFER' | 'BURN' | 'CONTRACT_CALL' | 'MINT' | 'RAW' | 'TYPED_MESSAGE' | 'ENABLE_ASSET' | 'STAKE' | 'REDEEM_FROM_COMPOUND' | 'SUPPLY_TO_COMPOUND' | 'PROGRAM_CALL' | 'APPROVE' | 'SOROBAN_CALL': * `TRANSFER` - Transfers funds from one account to another. UTXO blockchains allow multi-input and multi-output transfers. All other blockchains allow transfers with one source address and one destination address. * `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `CONTRACT_CALL` - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. * `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal Message or EIP712 format. Use it to sign specific readable messages that are not actual transactions. [Learn more about typed messages](https://developers.fireblocks.com/docs/typed-message-signing). * `RAW` - An off-chain message with no predefined format. Use it to sign any message with your private key, including protocols such as blockchains and custom transaction types that are not natively supported by Fireblocks. [Learn more about raw signing transactions.](https://developers.fireblocks.com/docs/raw-message-signing) * `ENABLE_ASSET` - Algorand, DigitalBits, Solana, and Stellar require an on-chain transaction to create an asset wallet and enable the deposit address. This transaction is automatically created when adding assets on these blockchains at a vault account. * `STAKE` - Assign assets to a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations. * `SUPPLY_TO_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol. * `REDEEM_FROM_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol. * `PROGRAM_CALL` - In Solana refers to invoking on-chain programs (smart contracts) to execute transactions and interact with the blockchain. * `APPROVE` - Enables the approve function for a smart contract or wallet to withdraw from a designated wallet. [Learn more](https://support.fireblocks.io/hc/en-us/articles/4404616097426-Amount-Cap-for-Approve-transactions). * `SOROBAN_CALL` - Invokes a Soroban smart contract on the Stellar blockchain.
  - `note` string: Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace.
  - `assetId` string: The ID of the asset to transfer for `TRANSFER`, `MINT`, `BURN`, `ENABLE_ASSET`, or `STAKE` operations. [See the list of supported assets and their IDs on Fireblocks](https://developers.fireblocks.com/reference/get_supported-assets).
  - `assetType` string: Type classification of the asset
  - `source` SourceTransferPeerPathResponse: Source of the transaction.
    - `type` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'CONNECTED_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'OEC_PARTNER' | 'WALLET_POOL' | 'SOROBAN_CONTRACT', required
    - `subType` string: In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name. In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`.
    - `id` string, nullable: The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts), [listing exchange account](https://developers.fireblocks.com/reference/getexchangeaccounts), [listing fiat accounts](https://developers.fireblocks.com/reference/getfiataccounts), [listing internal wallets](https://developers.fireblocks.com/reference/getinternalwallets), [listing external wallets](https://developers.fireblocks.com/reference/getexternalwallets), [listing network connections](https://developers.fireblocks.com/reference/getnetworkconnections). For the other types, this parameter is not needed.
    - `name` string: The name of the peer.
    - `walletId` string, uuid
    - `tradingAccount` string, nullable: If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account.
    - `tags` TransactionTag[]: Tags associated with the transaction's source.
      - `id` string, uuid, required: The unique identifier of the tag
      - `label` string, required: The tag label
  - `sourceAddress` string: For account based assets only, the source address of the transaction. **Note:** If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the source address. In any other case, this parameter will be empty.
  - `tag` string: Source address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group).
  - `destination` DestinationTransferPeerPathResponse: Destination of the transaction. **Note:** In case the transaction is sent to multiple destinations, the `destinations` parameter is be used instead of this.
    - `type` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'CONNECTED_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'OEC_PARTNER' | 'WALLET_POOL' | 'SOROBAN_CONTRACT', required
    - `subType` string: In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name.In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`.
    - `id` string, nullable: The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts), [listing exchange account](https://developers.fireblocks.com/reference/getexchangeaccounts), [listing fiat accounts](https://developers.fireblocks.com/reference/getfiataccounts), [listing internal wallets](https://developers.fireblocks.com/reference/getinternalwallets), [listing external wallets](https://developers.fireblocks.com/reference/getexternalwallets), [listing network connections](https://developers.fireblocks.com/reference/getnetworkconnections). For the other types, this parameter is not needed.
    - `name` string: The name of the peer.
    - `walletId` string, uuid
    - `tradingAccount` string, nullable: If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account.
    - `tags` TransactionTag[]: Tags associated with the transaction's destination.
      - `id` string, uuid, required: The unique identifier of the tag
      - `label` string, required: The tag label
  - `destinations` TransactionResponseDestination[]: The transaction’s destinations. **Note:** In case the transaction is sent to a single destination, the `destination` parameter is used instead of this.
    - `amount` string: The amount to be sent to this destination.
    - `amountUSD` string: The USD value of the requested amount.
    - `travelRuleMessageId` string: The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages.
    - `amlScreeningResult` AmlScreeningResult: The result of the AML screening. Mirrors the output of the developer-api transaction formatter (IFormattedAmlResult). Not all fields are present in every response — the set depends on the AML provider and screening flow.
      - `provider` string: The AML provider name. Known values: CHAINALYSIS, ELLIPTIC, CHAINALYSIS_V2, ELLIPTIC_HOLISTIC, BYORK_SLITE, BYORK_LITE, NONE.
      - `payload` object: The raw, unmodified screening response from the provider. Structure varies per provider.
      - `verdict` 'PASS' | 'FAIL' | 'ALERT' | 'REJECT' | 'WARN' | 'TRAVEL_RULE_REQUIRED' | 'ACCEPT' | 'REVIEW' | 'WAIT': The final verdict of the screening (unified for AML, Travel Rule, and TRLink). Different providers may return different verdict values: - AML: ACCEPT, REJECT, ALERT - Travel Rule: PASS, FAIL, TRAVEL_RULE_REQUIRED - TRLink: PASS, REJECT, WARN
      - `screeningStatus` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Current status of the screening process. Applies to AML, Travel Rule, and TRLink screening flows.
      - `bypassReason` 'MANUAL' | 'UNSUPPORTED_ASSET' | 'BYPASSED_FAILURE' | 'UNSUPPORTED_ROUTE' | 'PASSED_BY_POLICY' | 'TIMED_OUT' | 'BAD_CREDENTIALS' | 'CONFIGURATION_ERROR' | 'DROPPED_BY_BLOCKCHAIN' | 'PROCESS_DISMISSED': Reason for bypassing AML screening, when applicable.
      - `timestamp` number: Unix timestamp in milliseconds when the screening result was generated.
      - `customerRefId` string: Customer-provided reference identifier for tracking.
      - `externalId` string: External identifier for the screening (provider-specific).
      - `category` string: Risk category classification. The available categories are subject to change depending on the provider.
      - `categoryId` number: Numeric identifier for the risk category.
      - `risk` string: Provider-specific risk level. Values vary by provider.
      - `destAddress` string: The destination blockchain address associated with the screening.
      - `matchedRule` AmlMatchedRule: AML matched rule information
        - `ruleId` string: Identifier of the matched rule
        - `ruleName` string: Name of the matched rule
        - `action` 'ALLOW' | 'BLOCK' | '2-TIER' | 'SCREEN' | 'ACCEPT' | 'REJECT' | 'ALERT' | 'WAIT' | 'FREEZE' | 'CANCEL': Policy verdict action
      - `matchedPrescreeningRule` AmlMatchedRule: AML matched rule information
        - `ruleId` string: Identifier of the matched rule
        - `ruleName` string: Name of the matched rule
        - `action` 'ALLOW' | 'BLOCK' | '2-TIER' | 'SCREEN' | 'ACCEPT' | 'REJECT' | 'ALERT' | 'WAIT' | 'FREEZE' | 'CANCEL': Policy verdict action
      - `matchedAlert` AmlAlert: AML alert information
        - `alertLevel` 'SEVERE' | 'HIGH' | 'MEDIUM' | 'LOW', required: Alert level severity
        - `alertName` string: Name or type of the alert
        - `category` string: Alert category
        - `service` string: Service that generated the alert
        - `externalId` string, required: External identifier for the alert
        - `alertAmount` number, required: Amount associated with the alert
        - `exposureType` 'DIRECT' | 'INDIRECT', required: Alert exposure type (AlertExposureType enum)
        - `policyAction` string: Recommended action based on policy
        - `categoryId` number: Category identifier
    - `destination` DestinationTransferPeerPathResponse: Destination of the transaction. **Note:** In case the transaction is sent to multiple destinations, the `destinations` parameter is be used instead of this.
      - `type` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'CONNECTED_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'OEC_PARTNER' | 'WALLET_POOL' | 'SOROBAN_CONTRACT', required
      - `subType` string: In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name.In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`.
      - `id` string, nullable: The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts), [listing exchange account](https://developers.fireblocks.com/reference/getexchangeaccounts), [listing fiat accounts](https://developers.fireblocks.com/reference/getfiataccounts), [listing internal wallets](https://developers.fireblocks.com/reference/getinternalwallets), [listing external wallets](https://developers.fireblocks.com/reference/getexternalwallets), [listing network connections](https://developers.fireblocks.com/reference/getnetworkconnections). For the other types, this parameter is not needed.
      - `name` string: The name of the peer.
      - `walletId` string, uuid
      - `tradingAccount` string, nullable: If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account.
      - `tags` TransactionTag[]: Tags associated with the transaction's destination.
        - `id` string, uuid, required: The unique identifier of the tag
        - `label` string, required: The tag label
    - `authorizationInfo` AuthorizationInfo: The information about your [Transaction Authorization Policy (TAP).](https://developers.fireblocks.com/docs/capabilities#transaction-authorization-policy-tap)
      - `allowOperatorAsAuthorizer` boolean
      - `logic` 'AND' | 'OR'
      - `groups` AuthorizationGroups[]
        - `th` number
        - `users` object
  - `destinationAddress` string: Address where the asset were transferred. Notes: - For [Multi destination transactions](https://support.fireblocks.io/hc/en-us/articles/360018447980-Multi-destination-transactions), this parameter will be empty. In this case, you should refer to the destinations field. - If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the destination address. In any other case, this parameter will be empty.
  - `destinationAddressDescription` string: Description of the address.
  - `destinationTag` string: Destination address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group).
  - `contractCallDecodedData` object: Decoded data for `CONTRACT_CALL` operations. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for setting this parameter's value.
    - `contractName` string
    - `functionCalls` object[]
  - `programCallDecodedData` ProgramCallDecodedDataItem[]: Decoded instruction list for `PROGRAM_CALL` (Solana) operations. Each entry represents one instruction in the transaction, in execution order. Fireblocks-injected instructions (e.g. `AdvanceNonceAccount`, `ComputeBudget`) appear first, followed by the original dApp instructions.
    - `programId` string, required: The on-chain program address that owns this instruction.
    - `programName` string, required: Human-readable program name (e.g. `SystemProgram`, `ComputeBudget`).
    - `instructionData` ProgramCallInstructionData, required: Decoded instruction arguments. Keys and values depend on the instruction type — values may be strings, numbers, or nested objects (e.g. `args`, `accounts`, `name`).
  - `amountInfo` AmountInfo: The details of the requested amount to transfer.
    - `amount` string: If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount.
    - `requestedAmount` string: The amount requested by the user.
    - `netAmount` string: The net amount of the transaction, after fee deduction.
    - `amountUSD` string: The USD value of the requested amount.
  - `treatAsGrossAmount` boolean: For transactions initiated via this Fireblocks workspace, when set to `true`, the fee is deducted from the requested amount. **Note**: This parameter can only be considered if a transaction's asset is a base asset, such as ETH or MATIC. If the asset can't be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account.
  - `feeInfo` FeeInfo: Details of the transaction's fee.
    - `networkFee` string: The fee paid to the network
    - `serviceFee` string: The total fee deducted by the exchange from the actual requested amount (serviceFee = amount - netAmount)
    - `gasPrice` string
    - `L1networkFee` string: Layer 1 network fee for Layer 2 blockchain transactions
    - `L2networkFee` string: Layer 2 network fee (gas price component for Layer 2 transactions)
    - `paidByRelay` boolean: Wether the fee was paid by the relay or not
    - `relayType` 'LOCAL' | 'THIRD_PARTY': Wether the relay is the same tenant (LOCAL) or another tenant (THIRD_PARTY)
    - `relayId` string: The vault account ID of the relay
    - `relayName` string: The name of the tenant, only for THIRD_PARTY relays
    - `feeUSD` string: The USD value of the fee
    - `sender` RoleFeeInfo: **Early Access.** What the transfer cost the Fireblocks wallet of one role (`sender` or `recipient`). Currently reported for TON only. Unlike `networkFee`, which describes the transfer as a whole, these amounts are always the cost to the wallet of that role, so the two can differ, for example for a `recipient`.
      - `feesDeducted` string: The total amount of TON deducted from the wallet because of the transfer, in TON, as a decimal string with nine decimals (like `networkFee`). - `sender` of a native TON transfer: the wallet's own fees plus the forwarding fees of the messages it sent. - `sender` of a Jetton (token) transfer: what the wallet actually lost. This is its own fees plus the TON it attached to cover the token wallets, minus any excess returned to it. If the excess is returned to the sender, the fee of receiving it is included. If the excess goes to any other wallet, the full attached TON is counted. When one external message carries several Jetton transfers (a multi-send), the loss is that of the whole message: every excess that came back to the wallet is subtracted. - `recipient` of a native TON transfer: the fees of the transaction that received the transfer, including gas. - `recipient` of a Jetton transfer: the fees of the notification transaction, usually a few nanoTON of storage fees. `"0.000000000"` when the transfer carried no forward amount, because the wallet then has no transaction of its own and pays nothing.
      - `valueCredited` string: The gross amount of TON that arrived at the wallet together with the token notification (the forward amount), in TON, as a decimal string with nine decimals. Set only for the `recipient` of a Jetton (token) transfer, and omitted when the amount is zero or the notification bounced. `valueCredited` is not subtracted from `feesDeducted`. The net change of the wallet's TON balance caused by the transfer is `valueCredited` minus `feesDeducted`.
    - `recipient` RoleFeeInfo: **Early Access.** What the transfer cost the Fireblocks wallet of one role (`sender` or `recipient`). Currently reported for TON only. Unlike `networkFee`, which describes the transfer as a whole, these amounts are always the cost to the wallet of that role, so the two can differ, for example for a `recipient`.
      - `feesDeducted` string: The total amount of TON deducted from the wallet because of the transfer, in TON, as a decimal string with nine decimals (like `networkFee`). - `sender` of a native TON transfer: the wallet's own fees plus the forwarding fees of the messages it sent. - `sender` of a Jetton (token) transfer: what the wallet actually lost. This is its own fees plus the TON it attached to cover the token wallets, minus any excess returned to it. If the excess is returned to the sender, the fee of receiving it is included. If the excess goes to any other wallet, the full attached TON is counted. When one external message carries several Jetton transfers (a multi-send), the loss is that of the whole message: every excess that came back to the wallet is subtracted. - `recipient` of a native TON transfer: the fees of the transaction that received the transfer, including gas. - `recipient` of a Jetton transfer: the fees of the notification transaction, usually a few nanoTON of storage fees. `"0.000000000"` when the transfer carried no forward amount, because the wallet then has no transaction of its own and pays nothing.
      - `valueCredited` string: The gross amount of TON that arrived at the wallet together with the token notification (the forward amount), in TON, as a decimal string with nine decimals. Set only for the `recipient` of a Jetton (token) transfer, and omitted when the amount is zero or the notification bounced. `valueCredited` is not subtracted from `feesDeducted`. The net change of the wallet's TON balance caused by the transfer is `valueCredited` minus `feesDeducted`.
  - `feeCurrency` string: The asset which was withdrawn to pay the transaction fee, for example ETH for EVM-based blockchains, BTC for Tether Omni.
  - `requestedFeeCurrency` string: The fee-paying asset requested at transaction creation via the `feeCurrency` field, if any.
  - `cantonDetails` CantonDetails: Canton transaction context. Present on transactions that belong to a Canton flow, and the authoritative signal that a transaction IS one — do not branch on `operation`, which is `CANTON_CALL` for customer-initiated calls but `TRANSFER` for an incoming Canton transfer offer. **No `cantonDetails` at all means the transaction is not a Canton item.** The service sets exactly one of `offerResponse`, `call` or `settlement`. That is a guarantee about what is sent, NOT a constraint this schema enforces: the three are declared as independent optional properties on purpose, so that a response carrying a block a client does not yet know about — or a row written before a block type existed — still validates. Response schemas here stay additive. Read the block you recognise; do not reject a payload for the shape of the others. Every block carries `version`, stamped when the transaction is created and never changed — a transaction written today keeps its shape, so `version` is how you know which shape you are reading.
    - `offerResponse` CantonOfferResponseDetails: The transaction belongs to an offer conversation: the offer itself, a response to it, or a leg that carries no answer of its own. The only block that changes over a transaction's lifetime. An offer can have more than one response — an allocation offer is accepted and later withdrawn — so every response transaction states which answer it is in `responseType`.
      - `version` integer: The shape of this block. Stamped at creation and never changed, so a reader always knows which version it is holding.
      - `domain` 'ONBOARDING' | 'ALLOCATION' | 'TRANSFER': The Canton domain a transaction belongs to. Singular, and it matches the prefix of the `type` / `responseType` values in the same domain character for character.
      - `vendor` 'DTCC' | 'TRADEWEB': The vendor whose flow this is. Present only where the flow is vendor-specific — absent on vendor-neutral Splice operations such as allocation withdraw.
      - `availableResponses` string[]: The responses this offer accepts — copy one into `responseType` to answer it. Present on the offer only, set when it arrives and never changed: it states what the offer TYPE accepts, not whether it is answerable right now. The respond endpoint is the authority on that, and answers `409` when the offer's state or expiry rules a response out — for example an `ALLOCATION_WITHDRAW` sent before the accept has settled. An empty array means nothing is answerable on this transaction — the difference between an actionable offer and a linked leg that shares its sub-status.
      - `expiresAt` string, date-time: When the offer expires, where it has a deadline.
      - `approvalTransactionId` string: The response transaction, once one has been dispatched for this offer.
      - `originalTransactionId` string: The transaction this one relates to — the offer a response answered.
      - `responseType` string: On a response transaction, which answer it is — the `responseType` that was sent. Absent on the offer itself.
      - `allocationTransactionId` string: On an `ALLOCATION_WITHDRAW` response only — the accept whose allocation this withdraw released, so the withdraw transaction read on its own says what it undid.
      - `verdict` 'ACCEPTED' | 'REJECTED': The outcome, set once the transaction reaches a terminal status.
    - `call` CantonCallDetails: A call made through the Canton calls endpoint. Written once and never changed.
      - `version` integer: The shape of this block. Stamped at creation and never changed, so a reader always knows which version it is holding.
      - `domain` 'ONBOARDING' | 'ALLOCATION' | 'TRANSFER': The Canton domain a transaction belongs to. Singular, and it matches the prefix of the `type` / `responseType` values in the same domain character for character.
      - `type` string: The call type, matching the `type` sent when the call was created. Transactions created before a type moved to the offers endpoint keep the value they were written with — `ALLOCATION_WITHDRAW` is one; new withdraws are offer responses.
      - `vendor` 'DTCC' | 'TRADEWEB': The vendor whose flow this is. Present only where the flow is vendor-specific — absent on vendor-neutral Splice operations such as allocation withdraw.
      - `originalTransactionId` string: The transaction this call acts on, where it acts on one.
    - `settlement` CantonSettlementDetails: The credit side of a delivery-versus-payment: a venue settled an allocation. Written once, at creation — the transaction is already complete when it appears.
      - `version` integer: The shape of this block. Stamped at creation and never changed, so a reader always knows which version it is holding.
      - `domain` 'ONBOARDING' | 'ALLOCATION' | 'TRANSFER': The Canton domain a transaction belongs to. Singular, and it matches the prefix of the `type` / `responseType` values in the same domain character for character.
      - `type` string: The settlement type.
      - `originalTransactionId` string: The allocation this receipt settles.
  - `networkRecords` NetworkRecord[]: In case a single transaction resulted with multiple transfers, for example a result of a contract call, then this parameter specifies each transfer that took place on the blockchain. In case of a single transfer transaction, this parameter is empty.
    - `source` SourceTransferPeerPathResponse: Source of the transaction.
      - `type` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'CONNECTED_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'OEC_PARTNER' | 'WALLET_POOL' | 'SOROBAN_CONTRACT', required
      - `subType` string: In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name. In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`.
      - `id` string, nullable: The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts), [listing exchange account](https://developers.fireblocks.com/reference/getexchangeaccounts), [listing fiat accounts](https://developers.fireblocks.com/reference/getfiataccounts), [listing internal wallets](https://developers.fireblocks.com/reference/getinternalwallets), [listing external wallets](https://developers.fireblocks.com/reference/getexternalwallets), [listing network connections](https://developers.fireblocks.com/reference/getnetworkconnections). For the other types, this parameter is not needed.
      - `name` string: The name of the peer.
      - `walletId` string, uuid
      - `tradingAccount` string, nullable: If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account.
      - `tags` TransactionTag[]: Tags associated with the transaction's source.
        - `id` string, uuid, required: The unique identifier of the tag
        - `label` string, required: The tag label
    - `destination` DestinationTransferPeerPathResponse: Destination of the transaction. **Note:** In case the transaction is sent to multiple destinations, the `destinations` parameter is be used instead of this.
      - `type` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'CONNECTED_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'OEC_PARTNER' | 'WALLET_POOL' | 'SOROBAN_CONTRACT', required
      - `subType` string: In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name.In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`.
      - `id` string, nullable: The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts), [listing exchange account](https://developers.fireblocks.com/reference/getexchangeaccounts), [listing fiat accounts](https://developers.fireblocks.com/reference/getfiataccounts), [listing internal wallets](https://developers.fireblocks.com/reference/getinternalwallets), [listing external wallets](https://developers.fireblocks.com/reference/getexternalwallets), [listing network connections](https://developers.fireblocks.com/reference/getnetworkconnections). For the other types, this parameter is not needed.
      - `name` string: The name of the peer.
      - `walletId` string, uuid
      - `tradingAccount` string, nullable: If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account.
      - `tags` TransactionTag[]: Tags associated with the transaction's destination.
        - `id` string, uuid, required: The unique identifier of the tag
        - `label` string, required: The tag label
    - `txHash` string
    - `networkFee` string
    - `assetId` string
    - `netAmount` string: The net amount of the transaction, after fee deduction
    - `isDropped` boolean
    - `type` string
    - `destinationAddress` string
    - `amountUSD` string
    - `rewardInfo` RewardInfo: This field is relevant only for Algorand transactions. Both `srcRewards` and `destRewards` will appear only for Vault to Vault transactions, otherwise you will receive only the Fireblocks’ side of the transaction.
      - `srcRewards` string
      - `destRewards` string
  - `createdAt` number: The transaction’s creation date and time, in unix timestamp.
  - `lastUpdated` number: The transaction’s last update date and time, in unix timestamp.
  - `expiresAt` number: The transaction’s expiration date and time, in unix timestamp. Only returned for transactions that have an expiration set.
  - `createdBy` string: User ID of the initiator of the transaction.
  - `signedBy` string[]: User ID’s of the signers of the transaction.
  - `rejectedBy` string: User ID of the user that rejected the transaction (in case it was rejected).
  - `authorizationInfo` AuthorizationInfo: The information about your [Transaction Authorization Policy (TAP).](https://developers.fireblocks.com/docs/capabilities#transaction-authorization-policy-tap)
    - `allowOperatorAsAuthorizer` boolean
    - `logic` 'AND' | 'OR'
    - `groups` AuthorizationGroups[]
      - `th` number
      - `users` object
  - `exchangeTxId` string: If the transaction originated from an exchange, this is the ID of this transaction at the exchange.
  - `customerRefId` string: The ID for AML providers to associate the owner of funds with transactions.
  - `travelRuleMessageId` string: The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages.
  - `amlScreeningResult` AmlScreeningResult: The result of the AML screening. Mirrors the output of the developer-api transaction formatter (IFormattedAmlResult). Not all fields are present in every response — the set depends on the AML provider and screening flow.
    - `provider` string: The AML provider name. Known values: CHAINALYSIS, ELLIPTIC, CHAINALYSIS_V2, ELLIPTIC_HOLISTIC, BYORK_SLITE, BYORK_LITE, NONE.
    - `payload` object: The raw, unmodified screening response from the provider. Structure varies per provider.
    - `verdict` 'PASS' | 'FAIL' | 'ALERT' | 'REJECT' | 'WARN' | 'TRAVEL_RULE_REQUIRED' | 'ACCEPT' | 'REVIEW' | 'WAIT': The final verdict of the screening (unified for AML, Travel Rule, and TRLink). Different providers may return different verdict values: - AML: ACCEPT, REJECT, ALERT - Travel Rule: PASS, FAIL, TRAVEL_RULE_REQUIRED - TRLink: PASS, REJECT, WARN
    - `screeningStatus` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Current status of the screening process. Applies to AML, Travel Rule, and TRLink screening flows.
    - `bypassReason` 'MANUAL' | 'UNSUPPORTED_ASSET' | 'BYPASSED_FAILURE' | 'UNSUPPORTED_ROUTE' | 'PASSED_BY_POLICY' | 'TIMED_OUT' | 'BAD_CREDENTIALS' | 'CONFIGURATION_ERROR' | 'DROPPED_BY_BLOCKCHAIN' | 'PROCESS_DISMISSED': Reason for bypassing AML screening, when applicable.
    - `timestamp` number: Unix timestamp in milliseconds when the screening result was generated.
    - `customerRefId` string: Customer-provided reference identifier for tracking.
    - `externalId` string: External identifier for the screening (provider-specific).
    - `category` string: Risk category classification. The available categories are subject to change depending on the provider.
    - `categoryId` number: Numeric identifier for the risk category.
    - `risk` string: Provider-specific risk level. Values vary by provider.
    - `destAddress` string: The destination blockchain address associated with the screening.
    - `matchedRule` AmlMatchedRule: AML matched rule information
      - `ruleId` string: Identifier of the matched rule
      - `ruleName` string: Name of the matched rule
      - `action` 'ALLOW' | 'BLOCK' | '2-TIER' | 'SCREEN' | 'ACCEPT' | 'REJECT' | 'ALERT' | 'WAIT' | 'FREEZE' | 'CANCEL': Policy verdict action
    - `matchedPrescreeningRule` AmlMatchedRule: AML matched rule information
      - `ruleId` string: Identifier of the matched rule
      - `ruleName` string: Name of the matched rule
      - `action` 'ALLOW' | 'BLOCK' | '2-TIER' | 'SCREEN' | 'ACCEPT' | 'REJECT' | 'ALERT' | 'WAIT' | 'FREEZE' | 'CANCEL': Policy verdict action
    - `matchedAlert` AmlAlert: AML alert information
      - `alertLevel` 'SEVERE' | 'HIGH' | 'MEDIUM' | 'LOW', required: Alert level severity
      - `alertName` string: Name or type of the alert
      - `category` string: Alert category
      - `service` string: Service that generated the alert
      - `externalId` string, required: External identifier for the alert
      - `alertAmount` number, required: Amount associated with the alert
      - `exposureType` 'DIRECT' | 'INDIRECT', required: Alert exposure type (AlertExposureType enum)
      - `policyAction` string: Recommended action based on policy
      - `categoryId` number: Category identifier
  - `complianceResults` ComplianceResults: The result of the Compliance AML/Travel Rule screening.
    - `aml` ComplianceScreeningResult: The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider.
      - `provider` string: The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name.
      - `payload` object: The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service.
      - `timestamp` number: Unix timestamp in milliseconds when the screening result was generated
      - `screeningStatus` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Current status of the screening process
      - `bypassReason` string: Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT.
      - `status` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Deprecated: Use screeningStatus instead. AML screening status.
      - `prevStatus` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Deprecated: Use screeningStatus instead. AML screening status.
      - `prevBypassReason` string: Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change.
      - `verdict` 'PASS' | 'FAIL' | 'ALERT' | 'REJECT' | 'WARN' | 'TRAVEL_RULE_REQUIRED' | 'ACCEPT' | 'REVIEW' | 'WAIT': The final verdict of the screening (unified for AML, Travel Rule, and TRLink). Different providers may return different verdict values: - AML: ACCEPT, REJECT, ALERT - Travel Rule: PASS, FAIL, TRAVEL_RULE_REQUIRED - TRLink: PASS, REJECT, WARN
      - `risk` string: Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN
      - `extendedRisk` string: Deprecated: This field is not currently returned in the API response. Use risk instead.
      - `externalId` string: External identifier for the screening (provider-specific)
      - `customerRefId` string: Customer-provided reference identifier for tracking
      - `refId` string: Deprecated: This field is not currently returned in the API response. Internal reference identifier.
      - `category` string: Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY
      - `categoryId` number: Numeric identifier for the risk category
      - `destAddress` string: The destination blockchain address associated with the screening
      - `destTag` string: Destination tag or memo (for chains that support it like XRP, XLM)
      - `destRecordId` string: Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider.
      - `addressResolutionSignature` string: Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification.
      - `amlResult` AmlResult: Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
        - `alerts` AmlAlert[]: List of AML alerts triggered during screening
          - `alertLevel` 'SEVERE' | 'HIGH' | 'MEDIUM' | 'LOW', required: Alert level severity
          - `alertName` string: Name or type of the alert
          - `category` string: Alert category
          - `service` string: Service that generated the alert
          - `externalId` string, required: External identifier for the alert
          - `alertAmount` number, required: Amount associated with the alert
          - `exposureType` 'DIRECT' | 'INDIRECT', required: Alert exposure type (AlertExposureType enum)
          - `policyAction` string: Recommended action based on policy
          - `categoryId` number: Category identifier
        - `providerResponse` object: Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats.
        - `matchedRule` AmlMatchedRule: AML matched rule information
          - `ruleId` string: Identifier of the matched rule
          - `ruleName` string: Name of the matched rule
          - `action` 'ALLOW' | 'BLOCK' | '2-TIER' | 'SCREEN' | 'ACCEPT' | 'REJECT' | 'ALERT' | 'WAIT' | 'FREEZE' | 'CANCEL': Policy verdict action
        - `matchedAlert` AmlAlert: AML alert information
          - `alertLevel` 'SEVERE' | 'HIGH' | 'MEDIUM' | 'LOW', required: Alert level severity
          - `alertName` string: Name or type of the alert
          - `category` string: Alert category
          - `service` string: Service that generated the alert
          - `externalId` string, required: External identifier for the alert
          - `alertAmount` number, required: Amount associated with the alert
          - `exposureType` 'DIRECT' | 'INDIRECT', required: Alert exposure type (AlertExposureType enum)
          - `policyAction` string: Recommended action based on policy
          - `categoryId` number: Category identifier
      - `result` TravelRuleResult: Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
        - `direction` 'INBOUND' | 'OUTBOUND': Travel rule direction
        - `isVerified` boolean: Whether the travel rule information was verified
        - `action` 'ACCEPT' | 'REJECT' | 'ALERT' | 'REVIEW' | 'WAIT' | 'FREEZE' | 'CANCEL': The final verdict of the travel rule screening
        - `providerResponse` object: Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats.
        - `matchedRule` TravelRuleMatchedRule: The travel rule configuration that was matched
          - `direction` 'INBOUND' | 'OUTBOUND': Travel rule direction
          - `status` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN' | 'REJECTED' | 'CANCELED' | 'BLOCKING_TIME_EXPIRED': Travel rule status
          - `amountUSD` number: Amount in USD
          - `amount` number: Amount in base currency
          - `asset` string: Asset identifier
          - `action` 'ACCEPT' | 'REJECT' | 'ALERT' | 'REVIEW' | 'WAIT' | 'FREEZE' | 'CANCEL': The final verdict of the travel rule screening
      - `detailsMessage` string: Additional human-readable details or message about the screening result
      - `matchedAlert` object: Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening.
      - `matchedRule` object: The matched rule information for this screening result. Contains details about which screening rule was applied and matched.
      - `matchedPrescreeningRule` TravelRulePrescreeningRule: Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed.
        - `bypassReason` string: Reason for bypass if prescreening rule triggered a bypass
        - `sourceType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `sourceSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `destType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `destSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `transferPeerType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `transferPeerSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `destAddress` string: Destination address
        - `sourceId` string: Source ID
        - `destId` string: Destination ID
        - `asset` string: Asset identifier
        - `baseAsset` string: Base asset
        - `amount` number: Amount
        - `amountUSD` number: Amount in USD
        - `networkProtocol` string: Network protocol
        - `operation` 'TRANSFER' | 'BURN' | 'CONTRACT_CALL' | 'MINT' | 'RAW' | 'TYPED_MESSAGE' | 'ENABLE_ASSET' | 'STAKE' | 'UNSTAKE' | 'WITHDRAW' | 'REDEEM_FROM_COMPOUND' | 'SUPPLY_TO_COMPOUND' | 'PROGRAM_CALL' | 'APPROVE': Transaction operation type
        - `action` 'SCREEN' | 'BYPASS' | 'BLOCK' | 'PASS' | 'FREEZE': Travel rule action
      - `matchedNoTrmScreeningRule` object: Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario.
      - `customerIntegrationId` string: Customer integration identifier used by Travel Rule providers
      - `customerShortName` string: Customer short name registered with Travel Rule providers
      - `travelRuleMessageId` string: Travel rule message identifier for linking and tracking across providers
      - `providerResponse` ScreeningProviderResponse: Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats.
    - `tr` ComplianceScreeningResult: The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider.
      - `provider` string: The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name.
      - `payload` object: The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service.
      - `timestamp` number: Unix timestamp in milliseconds when the screening result was generated
      - `screeningStatus` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Current status of the screening process
      - `bypassReason` string: Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT.
      - `status` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Deprecated: Use screeningStatus instead. AML screening status.
      - `prevStatus` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Deprecated: Use screeningStatus instead. AML screening status.
      - `prevBypassReason` string: Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change.
      - `verdict` 'PASS' | 'FAIL' | 'ALERT' | 'REJECT' | 'WARN' | 'TRAVEL_RULE_REQUIRED' | 'ACCEPT' | 'REVIEW' | 'WAIT': The final verdict of the screening (unified for AML, Travel Rule, and TRLink). Different providers may return different verdict values: - AML: ACCEPT, REJECT, ALERT - Travel Rule: PASS, FAIL, TRAVEL_RULE_REQUIRED - TRLink: PASS, REJECT, WARN
      - `risk` string: Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN
      - `extendedRisk` string: Deprecated: This field is not currently returned in the API response. Use risk instead.
      - `externalId` string: External identifier for the screening (provider-specific)
      - `customerRefId` string: Customer-provided reference identifier for tracking
      - `refId` string: Deprecated: This field is not currently returned in the API response. Internal reference identifier.
      - `category` string: Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY
      - `categoryId` number: Numeric identifier for the risk category
      - `destAddress` string: The destination blockchain address associated with the screening
      - `destTag` string: Destination tag or memo (for chains that support it like XRP, XLM)
      - `destRecordId` string: Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider.
      - `addressResolutionSignature` string: Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification.
      - `amlResult` AmlResult: Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
        - `alerts` AmlAlert[]: List of AML alerts triggered during screening
          - `alertLevel` 'SEVERE' | 'HIGH' | 'MEDIUM' | 'LOW', required: Alert level severity
          - `alertName` string: Name or type of the alert
          - `category` string: Alert category
          - `service` string: Service that generated the alert
          - `externalId` string, required: External identifier for the alert
          - `alertAmount` number, required: Amount associated with the alert
          - `exposureType` 'DIRECT' | 'INDIRECT', required: Alert exposure type (AlertExposureType enum)
          - `policyAction` string: Recommended action based on policy
          - `categoryId` number: Category identifier
        - `providerResponse` object: Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats.
        - `matchedRule` AmlMatchedRule: AML matched rule information
          - `ruleId` string: Identifier of the matched rule
          - `ruleName` string: Name of the matched rule
          - `action` 'ALLOW' | 'BLOCK' | '2-TIER' | 'SCREEN' | 'ACCEPT' | 'REJECT' | 'ALERT' | 'WAIT' | 'FREEZE' | 'CANCEL': Policy verdict action
        - `matchedAlert` AmlAlert: AML alert information
          - `alertLevel` 'SEVERE' | 'HIGH' | 'MEDIUM' | 'LOW', required: Alert level severity
          - `alertName` string: Name or type of the alert
          - `category` string: Alert category
          - `service` string: Service that generated the alert
          - `externalId` string, required: External identifier for the alert
          - `alertAmount` number, required: Amount associated with the alert
          - `exposureType` 'DIRECT' | 'INDIRECT', required: Alert exposure type (AlertExposureType enum)
          - `policyAction` string: Recommended action based on policy
          - `categoryId` number: Category identifier
      - `result` TravelRuleResult: Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
        - `direction` 'INBOUND' | 'OUTBOUND': Travel rule direction
        - `isVerified` boolean: Whether the travel rule information was verified
        - `action` 'ACCEPT' | 'REJECT' | 'ALERT' | 'REVIEW' | 'WAIT' | 'FREEZE' | 'CANCEL': The final verdict of the travel rule screening
        - `providerResponse` object: Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats.
        - `matchedRule` TravelRuleMatchedRule: The travel rule configuration that was matched
          - `direction` 'INBOUND' | 'OUTBOUND': Travel rule direction
          - `status` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN' | 'REJECTED' | 'CANCELED' | 'BLOCKING_TIME_EXPIRED': Travel rule status
          - `amountUSD` number: Amount in USD
          - `amount` number: Amount in base currency
          - `asset` string: Asset identifier
          - `action` 'ACCEPT' | 'REJECT' | 'ALERT' | 'REVIEW' | 'WAIT' | 'FREEZE' | 'CANCEL': The final verdict of the travel rule screening
      - `detailsMessage` string: Additional human-readable details or message about the screening result
      - `matchedAlert` object: Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening.
      - `matchedRule` object: The matched rule information for this screening result. Contains details about which screening rule was applied and matched.
      - `matchedPrescreeningRule` TravelRulePrescreeningRule: Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed.
        - `bypassReason` string: Reason for bypass if prescreening rule triggered a bypass
        - `sourceType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `sourceSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `destType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `destSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `transferPeerType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `transferPeerSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `destAddress` string: Destination address
        - `sourceId` string: Source ID
        - `destId` string: Destination ID
        - `asset` string: Asset identifier
        - `baseAsset` string: Base asset
        - `amount` number: Amount
        - `amountUSD` number: Amount in USD
        - `networkProtocol` string: Network protocol
        - `operation` 'TRANSFER' | 'BURN' | 'CONTRACT_CALL' | 'MINT' | 'RAW' | 'TYPED_MESSAGE' | 'ENABLE_ASSET' | 'STAKE' | 'UNSTAKE' | 'WITHDRAW' | 'REDEEM_FROM_COMPOUND' | 'SUPPLY_TO_COMPOUND' | 'PROGRAM_CALL' | 'APPROVE': Transaction operation type
        - `action` 'SCREEN' | 'BYPASS' | 'BLOCK' | 'PASS' | 'FREEZE': Travel rule action
      - `matchedNoTrmScreeningRule` object: Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario.
      - `customerIntegrationId` string: Customer integration identifier used by Travel Rule providers
      - `customerShortName` string: Customer short name registered with Travel Rule providers
      - `travelRuleMessageId` string: Travel rule message identifier for linking and tracking across providers
      - `providerResponse` ScreeningProviderResponse: Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats.
    - `amlList` ComplianceScreeningResult[]: The list of all results of the AML screening.
      - `provider` string: The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name.
      - `payload` object: The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service.
      - `timestamp` number: Unix timestamp in milliseconds when the screening result was generated
      - `screeningStatus` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Current status of the screening process
      - `bypassReason` string: Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT.
      - `status` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Deprecated: Use screeningStatus instead. AML screening status.
      - `prevStatus` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN': Deprecated: Use screeningStatus instead. AML screening status.
      - `prevBypassReason` string: Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change.
      - `verdict` 'PASS' | 'FAIL' | 'ALERT' | 'REJECT' | 'WARN' | 'TRAVEL_RULE_REQUIRED' | 'ACCEPT' | 'REVIEW' | 'WAIT': The final verdict of the screening (unified for AML, Travel Rule, and TRLink). Different providers may return different verdict values: - AML: ACCEPT, REJECT, ALERT - Travel Rule: PASS, FAIL, TRAVEL_RULE_REQUIRED - TRLink: PASS, REJECT, WARN
      - `risk` string: Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN
      - `extendedRisk` string: Deprecated: This field is not currently returned in the API response. Use risk instead.
      - `externalId` string: External identifier for the screening (provider-specific)
      - `customerRefId` string: Customer-provided reference identifier for tracking
      - `refId` string: Deprecated: This field is not currently returned in the API response. Internal reference identifier.
      - `category` string: Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY
      - `categoryId` number: Numeric identifier for the risk category
      - `destAddress` string: The destination blockchain address associated with the screening
      - `destTag` string: Destination tag or memo (for chains that support it like XRP, XLM)
      - `destRecordId` string: Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider.
      - `addressResolutionSignature` string: Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification.
      - `amlResult` AmlResult: Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
        - `alerts` AmlAlert[]: List of AML alerts triggered during screening
          - `alertLevel` 'SEVERE' | 'HIGH' | 'MEDIUM' | 'LOW', required: Alert level severity
          - `alertName` string: Name or type of the alert
          - `category` string: Alert category
          - `service` string: Service that generated the alert
          - `externalId` string, required: External identifier for the alert
          - `alertAmount` number, required: Amount associated with the alert
          - `exposureType` 'DIRECT' | 'INDIRECT', required: Alert exposure type (AlertExposureType enum)
          - `policyAction` string: Recommended action based on policy
          - `categoryId` number: Category identifier
        - `providerResponse` object: Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats.
        - `matchedRule` AmlMatchedRule: AML matched rule information
          - `ruleId` string: Identifier of the matched rule
          - `ruleName` string: Name of the matched rule
          - `action` 'ALLOW' | 'BLOCK' | '2-TIER' | 'SCREEN' | 'ACCEPT' | 'REJECT' | 'ALERT' | 'WAIT' | 'FREEZE' | 'CANCEL': Policy verdict action
        - `matchedAlert` AmlAlert: AML alert information
          - `alertLevel` 'SEVERE' | 'HIGH' | 'MEDIUM' | 'LOW', required: Alert level severity
          - `alertName` string: Name or type of the alert
          - `category` string: Alert category
          - `service` string: Service that generated the alert
          - `externalId` string, required: External identifier for the alert
          - `alertAmount` number, required: Amount associated with the alert
          - `exposureType` 'DIRECT' | 'INDIRECT', required: Alert exposure type (AlertExposureType enum)
          - `policyAction` string: Recommended action based on policy
          - `categoryId` number: Category identifier
      - `result` TravelRuleResult: Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
        - `direction` 'INBOUND' | 'OUTBOUND': Travel rule direction
        - `isVerified` boolean: Whether the travel rule information was verified
        - `action` 'ACCEPT' | 'REJECT' | 'ALERT' | 'REVIEW' | 'WAIT' | 'FREEZE' | 'CANCEL': The final verdict of the travel rule screening
        - `providerResponse` object: Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats.
        - `matchedRule` TravelRuleMatchedRule: The travel rule configuration that was matched
          - `direction` 'INBOUND' | 'OUTBOUND': Travel rule direction
          - `status` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN' | 'REJECTED' | 'CANCELED' | 'BLOCKING_TIME_EXPIRED': Travel rule status
          - `amountUSD` number: Amount in USD
          - `amount` number: Amount in base currency
          - `asset` string: Asset identifier
          - `action` 'ACCEPT' | 'REJECT' | 'ALERT' | 'REVIEW' | 'WAIT' | 'FREEZE' | 'CANCEL': The final verdict of the travel rule screening
      - `detailsMessage` string: Additional human-readable details or message about the screening result
      - `matchedAlert` object: Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening.
      - `matchedRule` object: The matched rule information for this screening result. Contains details about which screening rule was applied and matched.
      - `matchedPrescreeningRule` TravelRulePrescreeningRule: Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed.
        - `bypassReason` string: Reason for bypass if prescreening rule triggered a bypass
        - `sourceType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `sourceSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `destType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `destSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `transferPeerType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `transferPeerSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `destAddress` string: Destination address
        - `sourceId` string: Source ID
        - `destId` string: Destination ID
        - `asset` string: Asset identifier
        - `baseAsset` string: Base asset
        - `amount` number: Amount
        - `amountUSD` number: Amount in USD
        - `networkProtocol` string: Network protocol
        - `operation` 'TRANSFER' | 'BURN' | 'CONTRACT_CALL' | 'MINT' | 'RAW' | 'TYPED_MESSAGE' | 'ENABLE_ASSET' | 'STAKE' | 'UNSTAKE' | 'WITHDRAW' | 'REDEEM_FROM_COMPOUND' | 'SUPPLY_TO_COMPOUND' | 'PROGRAM_CALL' | 'APPROVE': Transaction operation type
        - `action` 'SCREEN' | 'BYPASS' | 'BLOCK' | 'PASS' | 'FREEZE': Travel rule action
      - `matchedNoTrmScreeningRule` object: Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario.
      - `customerIntegrationId` string: Customer integration identifier used by Travel Rule providers
      - `customerShortName` string: Customer short name registered with Travel Rule providers
      - `travelRuleMessageId` string: Travel rule message identifier for linking and tracking across providers
      - `providerResponse` ScreeningProviderResponse: Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats.
    - `status` 'Unknown' | 'Stalled' | 'Started' | 'NetworkConnectionAddressResolve' | 'ScreeningPrepare' | 'AMLStarted' | 'AMLCompleted' | 'AMLFailed' | 'AMLInBackground' | 'TRPreconditionChecks' | 'TRStarted' | 'TRLinkStarted' | 'TRLinkDestinationStarted' | 'TRLinkDestinationPrescreenPolicy' | 'TRLinkDestinationNoTRMPolicy' | 'TRLinkDestinationScreen' | 'TRLinkDestinationPostscreenPolicy' | 'TRLinkDestinationCompleted' | 'TRLinkCompleted' | 'TRCompleted' | 'TRFailed' | 'Completed' | 'RegistrationStarted' | 'RegistrationWaitForFirstConfirmation' | 'AMLRegistrationStarted' | 'AMLRegistrationCompleted' | 'TRUpdateStarted' | 'TRUpdateCompleted' | 'UpdateCompleted' | 'IncomingStarted' | 'IncomingByorkSL' | 'IncomingScreeningPrepare' | 'IncomingWaitForFirstConfirmation' | 'AMLIncomingStarted' | 'AMLIncomingCompleted' | 'AMLIncomingFailed' | 'AMLIncomingInBackground' | 'TRIncomingStarted' | 'TRIncomingCompleted' | 'TRIncomingFailed' | 'IncomingCompleted' | 'AddressAmlInitiated' | 'AddressAmlAddressResolve' | 'AddressAmlPrepare' | 'AddressAmlProcessing' | 'AddressAmlSucceeded' | 'AddressAmlFailed' | 'AddressAmlCompleted': Status of compliance result screening
    - `amlRegistration` AmlRegistrationResult
      - `provider` string
      - `success` boolean
      - `timestamp` number
    - `trlinkRegistration` TRLinkRegistrationResult: TRLink registration result containing status and metadata
      - `status` 'STARTING' | 'PRESCREENED' | 'COMPLETED' | 'FAILED' | 'VOID', required: TRLink registration status
      - `provider` string: The TRLink provider name
      - `success` boolean: Whether the registration was successful
      - `timestamp` number, required: Unix timestamp of the registration
      - `destRecordId` string: Destination record identifier
      - `travelRuleMessageId` string: Travel rule message identifier for linking
      - `customerIntegrationId` string: Customer integration identifier
      - `customerShortName` string: Customer short name
      - `result` TRLinkProviderResult: Provider-specific response data wrapper
        - `providerResponse` object: Raw provider response
      - `matchedPrescreeningRule` TRLinkPreScreeningRule: Base interface for TRLink policy rules
        - `customerId` string: Reference to TrlinkCustomer.id
        - `direction` 'INBOUND' | 'OUTBOUND': Transaction direction
        - `sourceType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `sourceSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `sourceAddress` string: Source address
        - `destType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `destSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `destAddress` string: Destination address
        - `sourceId` string: Source ID
        - `destId` string: Destination ID
        - `asset` string: Asset symbol
        - `baseAsset` string: Base asset symbol
        - `amount` TRLinkAmount: TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2
          - `range` AmountRangeMinMax: Amount range with minimum and maximum values
            - `min` string: Minimum amount
            - `max` string: Maximum amount
          - `currency` 'USD' | 'NATIVE': Currency type
        - `networkProtocol` string: Network protocol
        - `operation` 'TRANSFER' | 'BURN' | 'CONTRACT_CALL' | 'MINT' | 'RAW' | 'TYPED_MESSAGE' | 'ENABLE_ASSET' | 'STAKE' | 'UNSTAKE' | 'WITHDRAW' | 'REDEEM_FROM_COMPOUND' | 'SUPPLY_TO_COMPOUND' | 'PROGRAM_CALL' | 'APPROVE': Transaction operation type
        - `description` string: Rule description
        - `isDefault` boolean: Whether this is a default rule
        - `action` 'SCREEN' | 'PASS', required: TRLink pre-screening action
    - `trlinkDestinations` TRLinkResult[]: The list of TRLink destination screening results.
      - `provider` string, required: The TRLink provider name
      - `timestamp` number, required: Unix timestamp of the screening result
      - `status` 'COMPLETED' | 'PENDING' | 'BYPASSED' | 'FAILED' | 'FROZEN', required: Status of the TRLink screening
      - `verdict` 'ACCEPT' | 'ALERT' | 'REJECT' | 'WAIT': TRLink verdict after screening
      - `destAddress` string: The destination address associated with the TRLink screening
      - `destTag` string: Destination tag for the screening
      - `bypassReason` string: Reason for bypassing the TRLink screening
      - `detailsMessage` string: Additional details message about the screening result
      - `customerIntegrationId` string: Customer integration identifier
      - `customerShortName` string: Customer short name
      - `travelRuleMessageId` string: Travel rule message identifier for linking
      - `result` TRLinkProviderResultWithRule: Provider response and matched rule wrapper for TRLink screening results
        - `providerResponse` object: Raw provider response
        - `matchedRule` TRLinkPostScreeningRule: Base interface for TRLink policy rules
          - `customerId` string: Reference to TrlinkCustomer.id
          - `direction` 'INBOUND' | 'OUTBOUND': Transaction direction
          - `sourceType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
          - `sourceSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
          - `sourceAddress` string: Source address
          - `destType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
          - `destSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
          - `destAddress` string: Destination address
          - `sourceId` string: Source ID
          - `destId` string: Destination ID
          - `asset` string: Asset symbol
          - `baseAsset` string: Base asset symbol
          - `amount` TRLinkAmount: TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2
            - `range` AmountRangeMinMax: Amount range with minimum and maximum values
              - …
            - `currency` 'USD' | 'NATIVE': Currency type
          - `networkProtocol` string: Network protocol
          - `operation` 'TRANSFER' | 'BURN' | 'CONTRACT_CALL' | 'MINT' | 'RAW' | 'TYPED_MESSAGE' | 'ENABLE_ASSET' | 'STAKE' | 'UNSTAKE' | 'WITHDRAW' | 'REDEEM_FROM_COMPOUND' | 'SUPPLY_TO_COMPOUND' | 'PROGRAM_CALL' | 'APPROVE': Transaction operation type
          - `description` string: Rule description
          - `isDefault` boolean: Whether this is a default rule
          - `providerIdent` string: Provider identifier
          - `trmStatus` 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'FAILED': TRLink TRM screening status
          - `validBefore` number: Rule expires once this many seconds have elapsed since the wait/screening step started
          - `validAfter` number: Rule applies only after this many seconds have elapsed since the wait/screening step started
          - `action` 'ACCEPT' | 'ALERT' | 'REJECT' | 'WAIT', required: TRLink verdict after screening
      - `matchedPrescreeningRule` TRLinkPreScreeningRule: Base interface for TRLink policy rules
        - `customerId` string: Reference to TrlinkCustomer.id
        - `direction` 'INBOUND' | 'OUTBOUND': Transaction direction
        - `sourceType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `sourceSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `sourceAddress` string: Source address
        - `destType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `destSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `destAddress` string: Destination address
        - `sourceId` string: Source ID
        - `destId` string: Destination ID
        - `asset` string: Asset symbol
        - `baseAsset` string: Base asset symbol
        - `amount` TRLinkAmount: TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2
          - `range` AmountRangeMinMax: Amount range with minimum and maximum values
            - `min` string: Minimum amount
            - `max` string: Maximum amount
          - `currency` 'USD' | 'NATIVE': Currency type
        - `networkProtocol` string: Network protocol
        - `operation` 'TRANSFER' | 'BURN' | 'CONTRACT_CALL' | 'MINT' | 'RAW' | 'TYPED_MESSAGE' | 'ENABLE_ASSET' | 'STAKE' | 'UNSTAKE' | 'WITHDRAW' | 'REDEEM_FROM_COMPOUND' | 'SUPPLY_TO_COMPOUND' | 'PROGRAM_CALL' | 'APPROVE': Transaction operation type
        - `description` string: Rule description
        - `isDefault` boolean: Whether this is a default rule
        - `action` 'SCREEN' | 'PASS', required: TRLink pre-screening action
      - `matchedNoTrmScreeningRule` TRLinkMissingTrmDecision: Base interface for TRLink policy rules
        - `customerId` string: Reference to TrlinkCustomer.id
        - `direction` 'INBOUND' | 'OUTBOUND': Transaction direction
        - `sourceType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `sourceSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `sourceAddress` string: Source address
        - `destType` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'WALLET_POOL': Transfer peer type (source or destination)
        - `destSubType` 'EXTERNAL' | 'INTERNAL' | 'CONTRACT' | 'EXCHANGETEST': Transfer peer sub-type for prescreening rules
        - `destAddress` string: Destination address
        - `sourceId` string: Source ID
        - `destId` string: Destination ID
        - `asset` string: Asset symbol
        - `baseAsset` string: Base asset symbol
        - `amount` TRLinkAmount: TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2
          - `range` AmountRangeMinMax: Amount range with minimum and maximum values
            - `min` string: Minimum amount
            - `max` string: Maximum amount
          - `currency` 'USD' | 'NATIVE': Currency type
        - `networkProtocol` string: Network protocol
        - `operation` 'TRANSFER' | 'BURN' | 'CONTRACT_CALL' | 'MINT' | 'RAW' | 'TYPED_MESSAGE' | 'ENABLE_ASSET' | 'STAKE' | 'UNSTAKE' | 'WITHDRAW' | 'REDEEM_FROM_COMPOUND' | 'SUPPLY_TO_COMPOUND' | 'PROGRAM_CALL' | 'APPROVE': Transaction operation type
        - `description` string: Rule description
        - `isDefault` boolean: Whether this is a default rule
        - `validBefore` number: Rule expires once this many seconds have elapsed since the wait/screening step started
        - `validAfter` number: Rule applies only after this many seconds have elapsed since the wait/screening step started
        - `action` 'WAIT' | 'REJECT' | 'ACCEPT' | 'INITIATE_TRM', required: TRLink missing TRM action
        - `source` string, required: TRLink missing TRM source
        - `timestamp` string, date-time: Timestamp of the decision
        - `reason` string: Reason for the decision
  - `notBroadcastByFireblocks` boolean: Indicates the transaction was not broadcast by Fireblocks
  - `dappUrl` string: DApp URL for Web3 transactions
  - `gasLimit` string: Gas limit for EVM-based blockchain transactions
  - `blockchainIndex` string: Blockchain-specific index or identifier for the transaction
  - `paidRent` string: Solana rent payment amount
  - `extraParameters` ExtraParameters: Additional protocol / operation specific key-value parameters: For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/getunspentinputs) For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata) For `SOROBAN_CALL` operations, add the key `sorobanCallData` with the value set to an object containing `envelopeXdr` - a base64 encoded, unsigned Stellar `TransactionEnvelope` holding the contract invocation. For `CONTRACT_CALL` operations, add the key `contractCallData` with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. For **exchange compliance (e.g., Binance) and Travel Rule purposes**, include the key `piiData` containing a **custom JSON structure** with Personally Identifiable Information (PII) relevant to the transaction. This data must be fully **encrypted by the sender** before being submitted to the Fireblocks API. The recommended encryption method is **hybrid encryption** using AES-256-GCM for the payload and RSA-OAEP for key exchange, with the recipient exchange's public key. [development libraries](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks) **Note:** `rawMessageData`, `contractCallData`, `sorobanCallData`, and `inputsSelection` cannot be used together in the same call.
    - `nodeControls` union: Configure special node requirements. For routing transactions to a custom node: Set `type` to `NODE_ROUTER` and `tag` to the pre-configured tag value. **For MEV protection:** Set only the `type` property to `MEV` (tag is not required at this stage). **Note:** This is a premium feature that should be enabled in your workspace. Please contact your Customer Success Manager/Fireblocks Support for more info.
      - object
      - unknown
    - `rawMessageData` union: Object containing messages for raw signing and the algorithm to be used. The value should be set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata)
      - object
      - unknown
    - `contractCallData` union: Hex encoded contract call data as a string. For `CONTRACT_CALL` operations, the value should be set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions.
      - string
      - unknown
    - `programCallData` union: BASE64 encoded Solana unsigned serialized transaction object.
      - string
      - unknown
    - `sorobanCallData` union: For `SOROBAN_CALL` operations, the Soroban contract invocation to execute. Contains a base64 encoded, unsigned Stellar `TransactionEnvelope` in `envelopeXdr`.
      - SorobanCallData: The Soroban contract invocation to execute, for `SOROBAN_CALL` operations. Fireblocks decodes the submitted envelope, determines the footprint, resource fee, sequence number and authorization entries from its own simulation, and signs a transaction it rebuilt from the invocation. Only the contract invocation itself is carried through unchanged.
        - `envelopeXdr` string, byte, required: A base64 encoded, unsigned Stellar `TransactionEnvelope` carrying exactly one `invokeHostFunction` operation that invokes a contract. The API only checks that the value is present. The envelope is decoded and validated after the transaction is created, and a transaction whose envelope fails validation is not signed and ends as `FAILED`. An envelope is rejected if it carries signatures or authorization entries, a memo or a fee-bump wrapper, if its source account is not the Stellar address of the vault account, or if it has no bounded time window. A Stellar transaction cannot exceed 132096 bytes, about 176128 base64 characters.
      - unknown
    - `inputsSelection` union: For UTXO based blockchains, selections of inputs for the transaction. The value should be set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs)
      - object
      - unknown
    - `allowBaseAssetAddress` union: Transfers to unmanaged wallets only. When true, if the destination doesn't have a whitelisted address for the requested asset, we'll use the destination's whitelisted address of the base asset (e.g., use the ETH address for an ERC-20). If the requested asset's whitelisted address exists, it is used. **Note:** This is a premium feature that should be enabled in your workspace. Please contact your Customer Success Manager or Fireblocks Support for more information.
      - boolean
      - unknown
    - `piiData` union: For exchange compliance (e.g., Binance) and Travel Rule purposes, contains a custom JSON structure with Personally Identifiable Information (PII) relevant to the transaction. This data must be fully encrypted by the sender before being submitted to the Fireblocks API. The recommended encryption method is hybrid encryption using AES-256-GCM for the payload and RSA-OAEP for key exchange, with the recipient exchange's public key. [Learn more](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks)
      - object
      - unknown
  - `signedMessages` SignedMessage[]
    - `content` string
    - `algorithm` 'MPC_ECDSA_SECP256K1' | 'MPC_EDDSA_ED25519'
    - `derivationPath` number[]
    - `signature` object
      - `fullSig` string
      - `r` string
      - `s` string
      - `v` number
    - `publicKey` string
  - `numOfConfirmations` number: The number of confirmations of the transaction. The number will increase until the transaction will be considered completed according to the confirmation policy.
  - `blockInfo` BlockInfo: The block hash and height of the block that this transaction was mined in. **Note**: If an outgoing transaction uses the destinations object with more than one value in the array, blockHash is set to null.
    - `blockHeight` string
    - `blockHash` string, nullable
  - `index` number: For UTXO based assets this is the vOut, for Ethereum based, this is the index of the event of the contract call. **Note:** This field is not returned if a transaction uses the `destinations` object with more than one value.
  - `rewardInfo` RewardInfo: This field is relevant only for Algorand transactions. Both `srcRewards` and `destRewards` will appear only for Vault to Vault transactions, otherwise you will receive only the Fireblocks’ side of the transaction.
    - `srcRewards` string
    - `destRewards` string
  - `feePayerInfo` FeePayerInfo
    - `feePayerAccountId` string: The account ID of the fee payer
  - `gaslessInfo` GaslessInfo: Relay (meta-transaction) details. Returned only for meta-transactions (`isMetaTx` is `true`). For meta-transactions the deprecated top-level `fee` field is omitted; use `feeInfo` instead.
    - `isMetaTx` boolean: Indicates the transaction is a meta-transaction (gas paid by a relay tenant).
    - `relayTenantId` string: The tenant ID of the relay that sponsors the gas for the meta-transaction.
    - `relayTenantName` string: The tenant name of the relay that sponsors the gas for the meta-transaction.
    - `relayVaultAccountId` string: The vault account ID of the relay that sponsors the gas for the meta-transaction.
  - `systemMessages` SystemMessageInfo[]
    - `type` 'WARN' | 'BLOCK'
    - `message` string: A response from Fireblocks that communicates a message about the health of the process being performed. If this object is returned with data, you should expect potential delays or incomplete transaction statuses.
  - `addressType` '' | 'WHITELISTED' | 'ONE_TIME'
  - `requestedAmount` number: The amount requested by the user. Deprecated - please use the `amountInfo` field for accuracy.
  - `amount` number: If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount. Deprecated - please use the `amountInfo` field for accuracy.
  - `netAmount` number: The net amount of the transaction, after fee deduction. Deprecated - please use the `amountInfo` field for accuracy.
  - `amountUSD` number, nullable: The USD value of the requested amount. Deprecated - please use the `amountInfo` field for accuracy.
  - `serviceFee` number: The total fee deducted by the exchange from the actual requested amount (`serviceFee` = `amount` - `netAmount`). Deprecated - please use the `feeInfo` field for accuracy.
  - `fee` number: Deprecated - please use the `feeInfo` field for accuracy.
  - `networkFee` number: The fee paid to the network. Deprecated - please use the `feeInfo` field for accuracy.
  - `errorDescription` string: The transaction's revert reason. This field will be returned when `subStatus` = 'SMART_CONTRACT_EXECUTION_FAILED'.
  - `replacedTxHash` string: if the transaction is a replace by fee (RBF) transaction, this is the hash of the transsaction that was replaced
  - `nonce` string: blockchain nonce for the transaction
  - `blockchainInfo` object: A JSON used to store additional data that is blockchain-specific. **TON (Early Access).** For TON transfers the object contains: | Field | Description | | --- | --- | | `tonTransferType` | `NATIVE` for a TON transfer, `JETTON` for a token transfer. | | `hashes` | Hex hashes of the transfer: `externalIncoming`, and either `tonTransfer` (native) or `jettonTransfer` (Jetton). | | `messageContent` | The message body (comment) of the transfer, as a base64 string. | | `isFeeExcess` | `true` only on the transaction that records the excess TON returned by a Jetton transfer to one of your wallets other than the sender. That transaction is a plain native transfer to the wallet, its top-level `feeInfo` has only a `recipient` struct, like any regular recipient. Omitted otherwise. | | `feeBreakdowns` | The fee details of the wallets of your workspace in the transfer: one entry per wallet. Available when the feature is enabled for your workspace. The totals of each wallet are in the top-level `feeInfo` of the transaction, in its `sender` and `recipient` structs (`feesDeducted`, `valueCredited`). | All amounts inside `feeBreakdowns` are integer strings in **nanoTON** (1 TON = 1,000,000,000 nanoTON), unlike the top-level `feeInfo`, which is in TON. Each entry of `feeBreakdowns` contains: | Field | Description | | --- | --- | | `role` | `SENDER` or `RECIPIENT`: the role of the wallet in the transfer. | | `address` | The wallet, as `raw` and `userFriendly` addresses. | | `txHash` | The hash of the wallet's own on-chain transaction. Omitted for a Jetton `recipient` with no transaction of its own (see below). | | `feeBreakdown.totalOutMsgsForwardFees` | The sum of the forwarding fees of the messages sent by the wallet's transaction. | | `feeBreakdown.chainReported` | The fee components reported by the blockchain for the wallet's transaction: `totalFees`, `storageFees`, `gasFees`, `actionFees` and `forwardFees`, and, when applicable, `importFee`, `bounceFees` and `actionFine`. `totalFees` is the sum of `storageFees`, `importFee`, `gasFees`, `actionFees` and `bounceFees`. | | `feeBreakdown.fundingSpent` | The rest of the sender's loss beyond the fees in this entry: for a Jetton `sender`, the TON the wallet attached to fund the token wallets and did not get back; for a wallet that sends through a second transaction of its own (a Highload wallet), also the fees of that transaction. For the same wallet, `feeInfo.<role>.feesDeducted` = `totalFees` + `totalOutMsgsForwardFees` + `fundingSpent` (`fundingSpent` is 0 when absent), converted from nanoTON to TON. | A Jetton transfer sent without a forward amount sends the recipient no notification, so the recipient wallet has no transaction and pays nothing: its entry has no `txHash`, all its figures are `"0"` and `feeInfo.recipient.feesDeducted` is `"0.000000000"`. An amount that could not be established from on-chain data is reported as no entry and no struct in `feeInfo` for that role. Only the wallets that belong to the notified workspace appear in `feeBreakdowns`. A transfer between two wallets of your own workspace is a single transaction and carries an entry for each wallet (tell them apart by `role`), and the top-level `feeInfo` has both a `sender` and a `recipient` struct. `blockchainInfo` is kept to 2,048 characters. When a very long message pushes a TON transfer over that, the optional details are dropped to make it fit: `feeBreakdowns` go first when the message fits without them, `messageContent` goes when the breakdowns fit without it, and both go when neither does. The `hashes`, `tonTransferType`, `isFeeExcess` and the top-level `feeInfo` are always kept. Example of a Jetton transfer sent from one of your wallets (addresses and hashes are placeholders): ```json { "tonTransferType": "JETTON", "hashes": { "externalIncoming": "0000000000000000000000000000000000000000000000000000000000000001", "jettonTransfer": "0000000000000000000000000000000000000000000000000000000000000002" }, "messageContent": "te6cckEBAQEAAgAAAEysuc0=", "feeBreakdowns": [ { "address": { "raw": "0:0000000000000000000000000000000000000000000000000000000000000003", "userFriendly": "0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, "txHash": "0000000000000000000000000000000000000000000000000000000000000004", "feeBreakdown": { "totalOutMsgsForwardFees": "86046", "chainReported": { "totalFees": "475291", "storageFees": "1", "gasFees": "220534", "actionFees": "43022", "forwardFees": "129068", "importFee": "211734" }, "fundingSpent": "17125078" } } ] } ```

## Other responses

- `default`: Error Response

---

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