---
title: "Transaction Details by Hash"
method: GET
path: "/gateway/v1/onchain/tx"
tags: ["Onchain"]
---

# Transaction Details by Hash

`GET /gateway/v1/onchain/tx`

Look up one transaction by hash. Example: `chain=ethereum` with a 0x-prefixed 64-character hash.

All numeric fields are hex-encoded. Convert them with `parseInt(hex, 16)`.

Supported chains: `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, `linea`, `cyber`.

## Query parameters

- `hash` string, required — Transaction hash (0x-prefixed hex)
- `chain` 'ethereum' | 'polygon' | 'bsc' | 'arbitrum' | 'optimism' | 'base' | 'avalanche' | 'fantom' | 'linea' | 'cyber', required — Chain. Can be `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, `linea`, or `cyber`.
- `include` string — Comma-separated enrichments to attach. Currently valid: `labels` — adds `from_label` and `to_label` fields with entity information for the from/to addresses.

## Response `200`

OK

- DataResponseOnchainTxItem
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `data` OnchainTxItem[], nullable, required
    - `accessList` AccessListEntry[], nullable, required — List of addresses and storage keys. Empty array for legacy; populated for EIP-2930+
      - `address` string, required — Account address (0x-prefixed)
      - `storageKeys` string[], nullable, required — List of storage slot keys (0x-prefixed hex)
    - `blobVersionedHashes` string[], nullable — Versioned hashes of blob commitments. EIP-4844 only
    - `blockHash` string, nullable, required — Block hash, null if pending
    - `blockNumber` string, nullable, required — Block number (hex), null if pending
    - `chainId` string — Chain ID (hex)
    - `from` string, required — Sender address (0x-prefixed)
    - `from_label` WalletLabelItem
      - `address` string, required — Wallet address
      - `entity_name` string — Name of the associated entity like `Binance` or `Aave`
      - `entity_type` string — Type of entity like `exchange`, `fund`, or `whale`
      - `labels` WalletLabelInfo[], nullable, required — List of labels assigned to this address
        - `confidence` number, double — Confidence score 0.0-1.0
        - `label` string, required — Human-readable label for this address like `Binance Hot Wallet`
    - `gas` string, required — Gas limit (hex)
    - `gasPrice` string — Gas price in wei (hex). Present in all types; for EIP-1559 this is the effective gas price
    - `hash` string, required — Transaction hash (0x-prefixed)
    - `input` string, required — Call data (hex)
    - `maxFeePerBlobGas` string — Max fee per blob gas in wei (hex). EIP-4844 only
    - `maxFeePerGas` string — Max fee per gas in wei (hex). EIP-1559/EIP-4844 only
    - `maxPriorityFeePerGas` string — Max priority fee per gas in wei (hex). EIP-1559/EIP-4844 only
    - `nonce` string, required — Sender nonce (hex)
    - `r` string, required — Signature R (hex)
    - `s` string, required — Signature S (hex)
    - `to` string, nullable, required — Recipient address, null for contract creation
    - `to_label` WalletLabelItem
      - `address` string, required — Wallet address
      - `entity_name` string — Name of the associated entity like `Binance` or `Aave`
      - `entity_type` string — Type of entity like `exchange`, `fund`, or `whale`
      - `labels` WalletLabelInfo[], nullable, required — List of labels assigned to this address
        - `confidence` number, double — Confidence score 0.0-1.0
        - `label` string, required — Human-readable label for this address like `Binance Hot Wallet`
    - `transactionIndex` string, nullable, required — Index in block (hex), null if pending
    - `type` string, required — Transaction type: 0x0=legacy, 0x1=EIP-2930, 0x2=EIP-1559, 0x3=EIP-4844
    - `v` string, required — Signature V (hex). Legacy: recovery ID (0x1b/0x1c); EIP-2930+: parity (0x0/0x1)
    - `value` string, required — ETH value in wei (hex)
    - `yParity` string — Signature Y parity (hex). Present in EIP-2930+ transactions
  - `meta` OffsetMeta, required
    - `cached` boolean, required — Whether this response was served from cache
    - `credits_used` integer, required — Credits deducted for this request
    - `empty_reason` string — Hint explaining why the data array is empty, when applicable
    - `has_more` boolean — Whether more items may exist beyond this response. For offset-paged endpoints, continue with a larger offset. For time-series endpoints without offset/cursor controls, true means the requested time range hit an upstream cap; narrow from/to to continue. Omitted when exhaustion cannot be proven.
    - `limit` integer, required — Maximum number of items returned in this response
    - `offset` integer, required — Number of items skipped (pagination offset)
    - `total` integer — Total number of matching items (before pagination). Omitted when total is unknown.
    - `watermark` integer — Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades/aggregate) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.

## Other responses

- `default` — Error

---

[API](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api.md) · [All operations](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/asksurf/asksurf-public-rest-api/revisions/4153a9cb5145/schema)
