---
title: "Scan Post-Transaction"
method: POST
path: "/v0/solana/post-transaction/scan"
tags: ["Solana"]
---

# Scan Post-Transaction

`POST /v0/solana/post-transaction/scan`

Scan a transaction that was already executed on chain, returns validation with features indicating address poisoning entities and malicious operators.

## Request body

- SolanaPostTransactionScanRequestSchema
  - `chain` union
    - 'mainnet' | 'testnet' | 'devnet' | 'eclipse_mainnet' | 'eclipse_devnet' | 'sonic_mainnet'
    - '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' | 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1' | 'EAQLJCV2mh23BsK2P9oYpV5CHVLDNHTxY'
  - `options` SolanaOptions[] — List of options to include in the response - `Options.validation`: Include Options.validation output in the response - `Options.simulation`: Include Options.simulation output in the response - `Options.gas_estimation`: Include gas estimation output in the response
  - `tx_hash` string, required

## Response `200`

Successful Response

- SolanaResponseSchema
  - `encoding` 'base58' | 'base64', required
  - `status` 'SUCCESS' | 'ERROR', required
  - `result` SolanaResponseResult
    - `simulation` SolanaSimulationResultSchema, required
      - `assets_diff` object — Mapping between the address of an account to the assets diff during the transaction
      - `delegations` object — Mapping between the address of an account to the exposure of the assets during the transaction
      - `assets_ownership_diff` object, required — Ownership diffs of the account addresses
      - `accounts_details` union[] — Details of addresses involved in the transaction
        - union
          - SolanaPdaAccountSchema
            - `account_address` string, required — Encoded public key of the account
            - `description` string, nullable — Description of the account
            - `type` 'PDA'
            - `was_written_to` boolean, required
            - `was_created` boolean, required
            - `owner` string, required — The address of the owning program
          - SolanaSystemAccountDetailsSchema
            - `account_address` string, required — Encoded public key of the account
            - `description` string, nullable — Description of the account
            - `type` 'SYSTEM_ACCOUNT'
            - `was_written_to` boolean, required
            - `was_created` boolean, required
          - SolanaProgramAccountDetailsSchema
            - `account_address` string, required — Encoded public key of the account
            - `description` string, nullable — Description of the account
            - `type` 'PROGRAM' | 'NATIVE_PROGRAM'
            - `was_written_to` boolean, required
            - `was_created` boolean, required
          - SolanaTokenAccountDetailsSchema
            - `account_address` string, required — Encoded public key of the account
            - `description` string, nullable — Description of the account
            - `type` 'TOKEN_ACCOUNT'
            - `was_written_to` boolean, required
            - `was_created` boolean, required
            - `mint_address` string, required — Encoded public key of the mint
            - `owner_address` string, required — Encoded public key of the owner
          - SolanaFungibleMintAccountDetailsSchema
            - `account_address` string, required — Encoded public key of the account
            - `description` string, nullable — Description of the account
            - `type` 'FUNGIBLE_MINT_ACCOUNT'
            - `was_written_to` boolean, required
            - `was_created` boolean, required
            - `name` string, required — Name of the mint
            - `symbol` string, required — Symbol of the mint
            - `logo` string, nullable, required — Logo of the mint
          - SolanaNonFungibleMintAccountDetailsSchema
            - `account_address` string, required — Encoded public key of the account
            - `description` string, nullable — Description of the account
            - `type` 'NON_FUNGIBLE_MINT_ACCOUNT'
            - `was_written_to` boolean, required
            - `was_created` boolean, required
            - `name` string, required — Name of the mint
            - `symbol` string, required — Symbol of the mint
            - `uri` string, required — URI of the mint
            - `logo` string, nullable, required — Logo of the mint
          - SolanaCnftMintAccountDetailsSchema
            - `account_address` string, required — Encoded public key of the account
            - `description` string, nullable — Description of the account
            - `type` 'CNFT_MINT_ACCOUNT'
            - `was_written_to` boolean, required
            - `was_created` boolean, required
            - `name` string, required — Name of the mint
            - `symbol` string, required — Symbol of the mint
            - `uri` string, required — URI of the mint
            - `logo` string, nullable, required — Logo of the mint
      - `account_summary` SolanaAccountSummary, required
        - `account_assets_diff` union[] — Assets diffs of the requested account address
          - union
            - SolanaNativeAssetDiff
              - …
            - SolanaSplFungibleAssetDiff
              - …
            - SolanaSplNonFungibleAssetDiff
              - …
            - SolanaCnftAssetDiff
              - …
        - `account_delegations` union[], required — Exposures made by the requested account address
          - union
            - SolanaCnftDelegation
              - …
            - SolanaFungibleSplTokenDelegation
              - …
            - SolanaNonFungibleSplTokenDelegation
              - …
        - `account_ownerships_diff` union[], required — Ownership diffs of the requested account address
          - union
            - SolanaNativeSOLOwnershipDiff
              - …
            - SolanaStakedSOLOwnershipDiff
              - …
            - SolanaFungibleSOLOwnershipDiff
              - …
            - SolanaNonFungibleSOLOwnershipDiff
              - …
        - `total_usd_diff` SolanaTotalUsdDiffSchema, required
          - `in` number, required — Total incoming USD transfers
          - `out` number, required — Total outgoing USD transfers
          - `total` number — Total USD transfers
        - `total_usd_exposure` object — Total USD exposure for each of the spender addresses during the transaction
      - `transaction_actions` union[], nullable
        - union
          - 'native_wrap' | 'native_transfer' | 'token_transfer' | 'swap' | 'mint' | 'stake' | 'approval' | 'proxy_upgrade' | 'ownership_change' | 'set_code_account'
          - string
    - `validation` SolanaValidationResultSchema, required
      - `result_type` 'Benign' | 'Warning' | 'Malicious' | 'Error', required
      - `description` string, required — A textual description about the validation result
      - `reason` string, required — A textual description about the reasons the transaction was flagged with result_type
      - `classification` string, required — A textual classification that can be presented to the user explaining the reason.
      - `features` string[], required — A list of features about this transaction explaining the validation
      - `extended_features` SolanaValidationFeature[], required — A list of features explaining what is happening in the transaction in different levels of severity
        - `type` 'Benign' | 'Warning' | 'Malicious' | 'Info', required
        - `feature_id` string, required
        - `description` string, required — Textual description
        - `address` string, nullable, required — Address the feature refers to
    - `gas_estimation` SolanaGasEstimationSchema, required
      - `network_fee` string, required — Base transaction fee in lamports
      - `priority_fee` string, required — Prioritization fee in lamports
      - `account_rent_fees` SolanaAccountRentFeeSchema[] — Rent deposit fees for newly created accounts
        - `account_address` string, required
        - `account_type` string, required
        - `lamports` string, required
      - `total` string, required — Total fee in lamports
      - `used` string, required — Total fee in lamports (equal to total; added for cross-chain consistency)
  - `error` string, nullable — Error message if the simulation failed
  - `error_details` union — Error details
    - SolanamodulesTransactionScanningControllersSchemasErrorApiErrorDetails
      - `type` 'ApiError'
      - `category` 'NODE_ERROR'
      - `message` string — Advanced message of the error
    - SolanamodulesTransactionScanningControllersSchemasErrorTransactionErrorDetails
      - `type` 'TransactionError'
      - `category` 'REVERT'
      - `message` string — Advanced message of the error
      - `transaction_index` integer, required — Index of the transaction in the bulk
    - SolanamodulesTransactionScanningControllersSchemasErrorInstructionErrorDetails
      - `type` 'InstructionError'
      - `category` 'REVERT'
      - `message` string — Human readable error
      - `number` integer, nullable — Error number
      - `code` string, nullable — Machine readable error code
      - `transaction_index` integer, required — Index of the transaction in the bulk
      - `instruction_index` integer, required — Index of the instruction in the transaction
      - `program_account` string, nullable — The program account that caused the error
  - `request_id` string, nullable, required — Unique identifier of the request

## 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/revisions/17c41f337b2e/schema)
