---
title: "Scan Transaction"
method: POST
path: "/v0/tron/transaction/scan"
tags: ["Tron"]
---

# Scan Transaction

`POST /v0/tron/transaction/scan`

Get a risk recommendation with plain-language reasons for a Tron transaction.

## Request body

- RoutersTronTransactionModelsTransactionRequest
  - `options` RoutersTronModelsValidationOptions[] — List of one or more of options for the desired output. "simulation" - include simulation output in your response. "validation" - include security validation of the transaction in your response. "gas_estimation" - include gas estimation result in your response. Default is ["validation"]
  - `metadata` union, required — Additional context for the scan (e.g., dapp URL/domain, integration source). Used to enrich results and reduce false positives/negatives.
    - RoutersTronModelsMetadataNonDapp
      - `non_dapp` true — Indicates that the transaction was not initiated by a dapp.
    - RoutersTronModelsMetadataDapp
      - `domain` string, required — The full URL of the DApp or website that initiated the transaction, for cross-reference. Must use the https or http scheme and contain a valid hostname. Cannot contain JSON, braces, or other embedded data structures.
  - `state_override` object — Override the state of the chain. This is useful for testing purposes.
  - `simulate_with_estimated_gas` boolean — Simulate transactions using gas estimation result. This requires "gas_estimation" option to be enabled.
  - `account_address` string, required — The address to relate the transaction to in Tron base58 format. Account address determines in which perspective the transaction is simulated and validated.
  - `data` RoutersTronTransactionModelsTransaction, required
    - `from` string, required — The source address of the transaction in Tron base58 format
    - `to` string — The destination address of the transaction in Tron base58 format
    - `data` string — The encoded call data of the transaction in hex string format
    - `value` string — The value of the transaction in Wei in hex string format

## Response `200`

Transaction scanned successfully

- RoutersTronResponseTransactionScanResponse
  - `validation` union
    - RoutersTronResponseTransactionValidation
      - `status` 'Success', required — A string indicating if the simulation was successful or not.
      - `result_type` 'Benign' | 'Warning' | 'Malicious', required — Result type returned when validation succeeds.
      - `description` string — A textual description that can be presented to the user about what this transaction is doing.
      - `reason` string — A textual description about the reasons the transaction was flagged with result_type.
      - `classification` string — A textual classification that can be presented to the user explaining the reason.
      - `features` RoutersTronResponseTransactionScanFeature[], required — A list of features about this transaction explaining the validation.
        - `type` 'Malicious' | 'Warning' | 'Benign' | 'Info', required — Security result of a transaction scan feature.
        - `feature_id` string, required — Feature name
        - `description` string, required — Textual description
        - `address` string — Address the feature refers to
        - `metadata` object — Metadata related to the feature
    - RoutersTronResponseTransactionValidationError
      - `status` 'Success', required — A string indicating if the simulation was successful or not.
      - `result_type` 'Error', required — A string indicating if the transaction is safe to sign or not.
      - `description` '', required — A textual description that can be presented to the user about what this transaction is doing.
      - `reason` '', required — A textual description about the reasons the transaction was flagged with result_type.
      - `classification` '', required — A textual classification that can be presented to the user explaining the reason.
      - `features` RoutersTronResponseTransactionScanFeature[], required — A list of features about this transaction explaining the validation.
        - `type` 'Malicious' | 'Warning' | 'Benign' | 'Info', required — Security result of a transaction scan feature.
        - `feature_id` string, required — Feature name
        - `description` string, required — Textual description
        - `address` string — Address the feature refers to
        - `metadata` object — Metadata related to the feature
      - `error` string, required — An error message if the validation failed.
  - `simulation` union
    - RoutersTronResponseTransactionSimulation
      - `status` 'Success', required — A string indicating if the simulation was successful or not.
      - `assets_diffs` object, required — dictionary describes the assets differences as a result of this transaction for every involved address
      - `transaction_actions` union[], required — Describes the nature of the transaction and what happened as part of it
        - union
          - 'mint' | 'stake' | 'swap' | 'native_transfer' | 'token_transfer' | 'approval' | 'set_code_account' | 'proxy_upgrade' | 'ownership_change' — Type of action performed in the transaction.
          - string
      - `total_usd_diff` object, required — dictionary represents the usd value each address gained / lost during this transaction
      - `exposures` object, required — dictionary describes the exposure differences as a result of this transaction for every involved address (as a result of any approval / setApproval / permit function)
      - `total_usd_exposure` object, required — a dictionary representing the usd value each address is exposed to, split by spenders
      - `address_details` object, required — a dictionary including additional information about each relevant address in the transaction.
      - `account_summary` RoutersTronResponseAccountSummary, required
        - `assets_diffs` union[], required — All assets diffs related to the account address
          - union
            - RoutersTronResponseERC20AddressAssetBalanceChangeDiff
              - …
            - RoutersTronResponseERC721AddressAssetBalanceChangeDiff
              - …
            - RoutersTronResponseERC1155AddressAssetBalanceChangeDiff
              - …
            - RoutersTronResponseNativeAddressAssetBalanceChangeDiff
              - …
        - `traces` union[], required — All assets traces related to the account address
          - union
            - RoutersTronResponseERC20AssetTrace
              - …
            - RoutersTronResponseERC721AssetTrace
              - …
            - RoutersTronResponseERC1155AssetTrace
              - …
            - RoutersTronResponseNativeAssetTrace
              - …
            - RoutersTronResponseERC20ExposureTrace
              - …
            - RoutersTronResponseERC721ExposureTrace
              - …
            - RoutersTronResponseERC1155ExposureTrace
              - …
        - `total_usd_diff` RoutersTronResponseUSDDiff, required
          - `in` string, required
          - `out` string, required
          - `total` string, required
        - `exposures` union[], required — All assets exposures related to the account address
          - union
            - RoutersTronResponseERC20AddressExposure
              - …
            - RoutersTronResponseERC721AddressExposure
              - …
            - RoutersTronResponseERC1155AddressExposure
              - …
        - `total_usd_exposure` object, required — Total usd exposure related to the account address
      - `params` RoutersTronResponseJsonRPCParams
        - `from` string — The address the transaction is sent from.
        - `to` string — The address the transaction is directed to.
        - `value` string — The value to be sent.
        - `data` string — The data to be sent.
        - `gas` string — The gas to be sent.
        - `gas_price` string — The gas price to be sent.
        - `block_tag` string — The block tag to be sent.
        - `chain` string — The chain to be sent.
        - `calldata` RoutersTronResponseCallData
          - `function_selector` string, required — The function selector of the function called in the transaction
          - `function_signature` string — The function signature of the function called in the transaction
          - `function_declaration` string — The function declaration of the function called in the transaction
        - `user_operation_calldata` RoutersTronResponseCallData
          - `function_selector` string, required — The function selector of the function called in the transaction
          - `function_signature` string — The function signature of the function called in the transaction
          - `function_declaration` string — The function declaration of the function called in the transaction
      - `contract_management` object — Describes the state differences as a result of this transaction for every involved address
      - `session_key` object, required — Session keys created in this transaction per address
      - `missing_balances` RoutersTronResponseMissingBalance[] — Missing balances in the transaction
        - `asset` union, required — The asset that is missing balance
          - RoutersTronTokenDetailsERC20TokenDetails
            - `name` string — string represents the name of the asset
            - `symbol` string — asset's symbol name
            - `address` string, required — address of the token
            - `logo_url` string — url of the token logo
            - `type` 'ERC20', required — asset type.
            - `decimals` integer, required — asset's decimals
          - RoutersTronTokenDetailsNativeAssetDetails
            - `type` 'NATIVE', required — asset type.
            - `name` string — string represents the name of the asset
            - `symbol` string — asset's symbol name
            - `chain_name` string, required
            - `chain_id` integer, required
            - `decimals` integer, required
            - `logo_url` string, required
        - `required_balance` RoutersTronResponseBalance, required
          - `raw_value` string, required — The raw value of the balance in hex string format
          - `value` string — The value of the balance in decimal string format
        - `current_balance` RoutersTronResponseBalance, required
          - `raw_value` string, required — The raw value of the balance in hex string format
          - `value` string — The value of the balance in decimal string format
        - `missing_balance` RoutersTronResponseBalance, required
          - `raw_value` string, required — The raw value of the balance in hex string format
          - `value` string — The value of the balance in decimal string format
      - `simulation_run_count` integer — The number of times the simulation ran until success
    - RoutersTronResponseTransactionSimulationError
      - `status` 'Error', required — A string indicating if the simulation was successful or not.
      - `error` string, required — An error message if the simulation failed.
      - `error_details` union — Error details if the simulation failed.
        - RoutersTronResponseGeneralInsufficientFundsErrorDetails
          - `code` 'GENERAL_INSUFFICIENT_FUNDS', required — The type of the model
          - `category` 'REVERT'
          - `account_address` string, required — The address of the account
          - `current_balance` string — The current balance of the account
          - `required_balance` string — The required balance of the account
          - `asset` union, required — The asset that the account does not have enough balance for
            - RoutersTronResponseNativeAsset
              - …
            - RoutersTronResponseERC20Asset
              - …
            - RoutersTronResponseERC721Asset
              - …
            - RoutersTronResponseERC1155Asset
              - …
        - RoutersTronResponseGeneralInvalidAddressErrorDetails
          - `code` 'GENERAL_INVALID_ADDRESS', required — The type of the model
          - `category` 'INVALID_INPUT'
          - `address` string, required — The address that is invalid
        - RoutersTronResponseGenericErrorDetails
          - `code` string, required — The error code
          - `category` string, required
        - RoutersTronResponseUnsupportedEIP712MessageErrorDetails
          - `code` 'UNSUPPORTED_EIP712_MESSAGE', required — The type of the model
          - `category` 'INVALID_INPUT'
          - `domain_name` string, required — The domain name that is unsupported
          - `message_type` string, required — The message type that is unsupported
      - `description` string, required — A string explaining why the transaction failed
  - `events` RoutersTronModelsTransactionScanEvent[]
    - `emitter_address` string, required
    - `emitter_name` string
    - `name` string
    - `params` RoutersTronModelsTransactionScanLogParamInfo[]
      - `type` string, required
      - `value` union, required
        - string
        - object
        - unknown[]
          - unknown
      - `internalType` string
      - `name` string
    - `topics` string[], required
    - `data` string, required
  - `gas_estimation` union
    - RoutersTronModelsTransactionScanGasEstimation
      - `status` 'Success', required
      - `used` string, required
      - `estimate` string, required
    - RoutersTronModelsTransactionScanGasEstimationError
      - `status` 'Error', required
      - `error` string, required
  - `user_operation_gas_estimation` union
    - RoutersTronModelsUserOperationV6GasEstimation
      - `status` 'Success', required
      - `pre_verification_gas_estimate` string, required
      - `verification_gas_estimate` string, required
      - `call_gas_estimate` string, required
    - RoutersTronModelsUserOperationV7GasEstimation
      - `status` 'Success', required
      - `pre_verification_gas_estimate` string, required
      - `verification_gas_estimate` string, required
      - `call_gas_estimate` string, required
      - `paymaster_verification_gas_estimate` string, required
    - RoutersTronModelsTransactionScanGasEstimationError
      - `status` 'Error', required
      - `error` string, required
  - `features` object
  - `block` string, required
  - `chain` string, required
  - `account_address` string

## Other responses

- `422` — Validation Error

---

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