---
title: "Get a normalized transaction."
method: GET
path: "/api/v2/tx/{txid}"
tags: ["Transactions"]
---

# Get a normalized transaction.

`GET /api/v2/tx/{txid}`

Returns normalized transaction data with the same general structure for
all supported coins. Coin-specific fields that do not fit the common
shape are omitted here; use getTransactionSpecific for backend-native
JSON.

Bitcoin-like confirmed transactions include blockHash, confirmations,
blockTime, size/vsize, value/valueIn, fees, and hex. Unconfirmed
transactions can include confirmationETABlocks and
confirmationETASeconds.

Ethereum-like transactions have one vin and one vout, tokenTransfers,
ethereumSpecific execution data, and optional addressAliases. Parsed
input data is included when the 4byte signature can be resolved.

For mined transactions, blockTime is the block timestamp. For mempool
transactions, blockTime is when this Blockbook instance first learned
about the transaction and can differ between instances.

Load estimate: Medium; grows with inputs, outputs, token transfers,
address aliases, and spending=true extra lookups.

## Path parameters

- `txid` string, required

## Query parameters

- `spending` boolean

## Response `200`

Normalized transaction.

- Tx
  - `txid` string, required
  - `version` integer
  - `lockTime` integer
  - `vin` Vin[], required
    - `txid` string
    - `vout` integer
    - `sequence` integer
    - `n` integer, required
    - `addresses` string[]
    - `isAddress` boolean, required
    - `isOwn` boolean
    - `value` string — Integer amount in the lowest chain denomination, encoded as a string.
    - `hex` string
    - `asm` string
    - `coinbase` string
  - `vout` Vout[], required
    - `value` string — Integer amount in the lowest chain denomination, encoded as a string.
    - `n` integer, required
    - `spent` boolean
    - `spentTxId` string
    - `spentIndex` integer
    - `spentHeight` integer
    - `hex` string
    - `asm` string
    - `addresses` string[], nullable, required
    - `isAddress` boolean, required
    - `isOwn` boolean
    - `type` string
  - `blockHash` string
  - `blockHeight` integer, required — -1 for unconfirmed transactions.
  - `confirmations` integer, required
  - `confirmationETABlocks` integer
  - `confirmationETASeconds` integer
  - `blockTime` integer, required
  - `size` integer
  - `vsize` integer
  - `value` string — Integer amount in the lowest chain denomination, encoded as a string.
  - `valueIn` string — Integer amount in the lowest chain denomination, encoded as a string.
  - `fees` string — Integer amount in the lowest chain denomination, encoded as a string.
  - `hex` string
  - `rbf` boolean
  - `coinSpecificData` unknown
  - `chainExtraData` TxChainExtraData
    - `payloadType` string, required — Discriminator for normalized chain-specific payloads, for example tron.
    - `payload` unknown
  - `tokenTransfers` TokenTransfer[]
    - `type` '' | 'XPUBAddress' | 'ERC20' | 'ERC721' | 'ERC1155' | 'BEP20' | 'BEP721' | 'BEP1155' | 'TRC20' | 'TRC721' | 'TRC1155', required — Token standard name. Empty string means no token standard is known.
    - `standard` '' | 'XPUBAddress' | 'ERC20' | 'ERC721' | 'ERC1155' | 'BEP20' | 'BEP721' | 'BEP1155' | 'TRC20' | 'TRC721' | 'TRC1155', required — Token standard name. Empty string means no token standard is known.
    - `from` string, required
    - `to` string, required
    - `contract` string, required
    - `name` string
    - `symbol` string
    - `decimals` integer, required
    - `value` string — Integer amount in the lowest chain denomination, encoded as a string.
    - `multiTokenValues` MultiTokenValue[]
      - `id` string — Integer amount in the lowest chain denomination, encoded as a string.
      - `value` string — Integer amount in the lowest chain denomination, encoded as a string.
  - `ethereumSpecific` EthereumSpecific
    - `type` integer
    - `createdContract` string
    - `status` integer, required — 1 success, 0 failed, -1 pending.
    - `error` string
    - `nonce` integer, required
    - `gasLimit` integer
    - `gasUsed` integer
    - `gasPrice` string — Integer amount in the lowest chain denomination, encoded as a string.
    - `effectiveGasPrice` string — Integer amount in the lowest chain denomination, encoded as a string.
    - `maxPriorityFeePerGas` string — Integer amount in the lowest chain denomination, encoded as a string.
    - `maxFeePerGas` string — Integer amount in the lowest chain denomination, encoded as a string.
    - `baseFeePerGas` string — Integer amount in the lowest chain denomination, encoded as a string.
    - `l1Fee` integer
    - `l1FeeScalar` string
    - `l1GasPrice` string — Integer amount in the lowest chain denomination, encoded as a string.
    - `l1GasUsed` integer
    - `data` string
    - `parsedData` EthereumParsedInputData
      - `methodId` string, required — First 4 bytes of the input data.
      - `name` string, required — Parsed function name when recognized.
      - `function` string — Full function signature when recognized.
      - `params` EthereumParsedInputParam[]
        - `type` string, required
        - `values` string[]
    - `internalTransfers` EthereumInternalTransfer[]
      - `type` integer, required
      - `from` string, required
      - `to` string, required
      - `value` string — Integer amount in the lowest chain denomination, encoded as a string.
  - `addressAliases` AddressAliases

## Other responses

- `default` — Public API error. Public validation errors are HTTP 400; internal errors are HTTP 500.

## Changes

- **2026-07-22** `aef157c19369` — 1 info
  - added the optional property `ethereumSpecific/effectiveGasPrice` to the response with the `200` status
- **2026-06-21** `b72e9a46af25` — 1 info
  - the response property `tokenTransfers/items/decimals` became required for the status `200`
- **2026-05-26** `0ff90309c70d` — 1 breaking
  - response property `vout/items/addresses` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
- **2026-05-25** `4fca91df0bb0` — 1 breaking, 1 info
  - the response property `tokenTransfers/items/decimals` became optional for the status `200`
  - response property `vout/items/addresses` list-of-types was narrowed by removing types `null` from media type `application/json` of response `200`

[Change history](https://skmtc.dev/trezor/apis/blockbook-api/changes/api/v2/tx/:txid/get.md)

---

[API](https://skmtc.dev/trezor/apis/blockbook-api.md) · [All operations](https://skmtc.dev/trezor/apis/blockbook-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/trezor/blockbook-api/revisions/01c375da86bc/schema)
