---
title: "Scan Transaction"
method: POST
path: "/v0/transaction/scan"
tags: ["Crypto Fraud Prevention"]
---

# Scan Transaction

`POST /v0/transaction/scan`

Gets a transaction and returns a full security assessment indicating whether or not the transaction is malicious, along with textual reasons explaining why it was flagged as such.

## Request body

- TransactionScanRequest
  - `options` Options[], required — List of options to apply during the transaction scan
  - `data` Data, required
    - `chain` 'arbitrum' | 'avalanche' | 'base' | 'base-sepolia' | 'bsc' | 'ethereum' | 'ethereum-sepolia' | 'optimism' | 'polygon' | 'zksync' | 'zksync-sepolia' | 'zora' | 'linea' | 'blast' | 'scroll' | 'avalanche-fuji' | 'degen' | 'gnosis' | 'worldchain' | 'soneium-minato' | 'ronin' | 'apechain' | 'berachain' | 'ink-sepolia' | 'ink' | 'abstract' | 'abstract-testnet' | 'metacade' | 'metacade-testnet' | 'soneium' | 'unichain' | 'lordchain-testnet' | 'lordchain' | 'sei' | 'flow-evm' | 'hyperevm' | 'megaeth' | 'katana' | 'plume' | 'solana' | 'bitcoin' | 'xlayer' | 'monad' | 'monad-testnet' | 'tron' | 'kaia' | 'plasma' | 'mantle' | 'robinhood' | 'arc' | 'flare', required — The chain name
    - `transaction_action` 'deposit' | 'withdrawal' — Action the transaction is making
    - `from` string — Source address or identifier for the transaction
    - `to` string, required — Destination address or identifier for the transaction
    - `amount` number, required — Amount of the transaction in the specified asset
    - `asset` union, required — Asset information
      - AssetAddress
        - `address` string, required — The address of the asset
      - AssetSymbol
        - `symbol` string, required — The symbol of the asset
  - `metadata` ScanRequestMetadata, required
    - `domain` string — The full URL of the DApp or website that initiated the request, for cross-reference. Must use the https or http scheme and contain a valid hostname. Cannot contain JSON, braces, or other embedded data structures.
    - `non_dapp` boolean — Set to true when the request was not initiated by a dapp. Dapp requests should provide the `domain` field.
    - `account` RoutersChainAgnosticModelsRequestAccount
      - `account_id` string, required — Unique identifier for the account.
      - `account_creation_timestamp` string, date-time — Timestamp when the account was created.
      - `user_age` integer — Age of the user in years
      - `user_country_code` string — ISO country code of the user's location.
      - `account_addresses` string[] — List of all account addresses in different chains based on the CAIPs standard (https://github.com/ChainAgnostic/CAIPs). Ethereum mainnet example: eip155:1:0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb
    - `connection` RoutersChainAgnosticModelsRequestConnection
      - `user_agent` string — User agent string from the client's browser or application.
      - `ip_address` string, ipvanyaddress, required — IP address of the customer making the request. Both IPv4 and IPv6 addresses are supported.
      - `origin` string, uri — The full URL of the website that the request was directed to.
      - `walletconnect_name` string — WalletConnect session name, when the request originates from a WalletConnect session.
      - `walletconnect_description` string — WalletConnect session description, when the request originates from a WalletConnect session.

## Response `200`

Successful Response

- ScanResult
  - `validation` ValidationResult, required
    - `status` 'Success' | 'Error', required — The status of the transaction scan
    - `result_type` 'Malicious' | 'Warning' | 'Benign' | 'High-Risk', required — The type of validation result.
    - `classification` string, required — Classification of the scan result based on the detected features
    - `description` string, required — Detailed description of the validation result
    - `features` union[] — List of features detected during the scan
      - union
        - AddressFeature
          - `entity` 'address' — Type of entity associated with the feature
          - `type` 'Malicious' | 'Warning' | 'Benign' | 'High-Risk' | 'Info', required — The type of feature detected in the scan.
          - `feature_id` string, required — Unique identifier for the detected feature
          - `description` string, required — Detailed description of the detected feature
          - `address` string, required — The blockchain address where the feature was detected
          - `associated_urls` string[], required — List of URLs associated with this address
        - UrlFeature
          - `entity` 'url' — Type of entity associated with the feature
          - `type` 'Malicious' | 'Warning' | 'Benign' | 'High-Risk' | 'Info', required — The type of feature detected in the scan.
          - `feature_id` string, required — Unique identifier for the detected feature
          - `description` string, required — Detailed description of the detected feature
          - `url` string, required — The URL where the feature was detected
        - TransactionFeature
          - `entity` 'transaction' — Type of entity associated with the feature
          - `type` 'Malicious' | 'Warning' | 'Benign' | 'High-Risk' | 'Info', required — The type of feature detected in the scan.
          - `feature_id` string, required — Unique identifier for the detected feature
          - `description` string, required — Detailed description of the detected feature
  - `platform_url` string, nullable — Deep-link URL to the Blockaid platform address overview page for the scanned `to` address. Null if no URL is available for the given chain.

## 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)
