> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbscan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v1/tx/{txHash} — Retrieve Transaction Details

> GET endpoint that decodes a transaction hash into a plain-English summary and a breakdown of every individual on-chain fill it contains.

Use this endpoint to look inside a single on-chain transaction. Pass a transaction hash and receive a human-readable `sentence` that summarises the entire trade, plus an `actions` array that breaks it down into every individual fill. This is useful when you want to understand exactly what happened inside a complex transaction — for example, how many counterparties were matched, at what prices, and how the shares and USDC were distributed across each fill.

## Request

**`GET https://orbscan.com/open-api/v1/tx/{txHash}`**

### Path Parameters

<ParamField path="txHash" type="string" required>
  The transaction hash to decode. Must be a valid 0x-prefixed Ethereum transaction hash.

  **Example:** `0x66dc87fb47faf587002b89d183dbb9505fc7ef80da5e6ec49e271278e8d95fad`
</ParamField>

## Example Request

<CodeGroup>
  ```bash curl theme={null}
  curl "https://orbscan.com/open-api/v1/tx/0x66dc87fb47faf587002b89d183dbb9505fc7ef80da5e6ec49e271278e8d95fad" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```python Python theme={null}
  import requests

  tx_hash = "0x66dc87fb47faf587002b89d183dbb9505fc7ef80da5e6ec49e271278e8d95fad"
  url = f"https://orbscan.com/open-api/v1/tx/{tx_hash}"

  headers = {
      "Authorization": "Bearer YOUR_API_KEY",
  }

  response = requests.get(url, headers=headers)
  print(response.json())
  ```
</CodeGroup>

## Response

<ResponseField name="success" type="boolean">
  `true` when the request succeeds, `false` otherwise.
</ResponseField>

<ResponseField name="code" type="string">
  Application-level status code. `"0"` indicates success.
</ResponseField>

<ResponseField name="message" type="string">
  Human-readable status message, for example `"success"`.
</ResponseField>

<ResponseField name="data" type="object">
  The decoded transaction detail.

  <Expandable title="TransactionDetail fields">
    <ResponseField name="txHash" type="string">
      The transaction hash that was queried.
    </ResponseField>

    <ResponseField name="blockNumber" type="integer">
      Block height at which this transaction was confirmed.
    </ResponseField>

    <ResponseField name="blockTimestamp" type="integer">
      Unix timestamp (seconds) of the block containing this transaction.
    </ResponseField>

    <ResponseField name="profileAddress" type="string">
      The primary wallet address this transaction is attributed to.
    </ResponseField>

    <ResponseField name="sourceType" type="string">
      High-level source classification for the transaction, for example `TRADE`.
    </ResponseField>

    <ResponseField name="actionType" type="string">
      Top-level action for the transaction, for example `Buy` or `Sell`.
    </ResponseField>

    <ResponseField name="sentence" type="string">
      A plain-English summary of the entire transaction. For example: `"Buy 3604.58 No for $3546.12269 in Will Bitcoin dip to $59,000 on June 9?"`. Use this field when you need a ready-to-display description without any further parsing.
    </ResponseField>

    <ResponseField name="marketSlug" type="string">
      URL-friendly slug for the market this transaction occurred in.
    </ResponseField>

    <ResponseField name="marketId" type="string">
      Polymarket market ID.
    </ResponseField>

    <ResponseField name="actions" type="TransactionAction[]">
      Array of every individual on-chain fill contained in this transaction. A single trade can produce multiple fills because one order is often matched against several counterparties at slightly different prices.

      <Expandable title="TransactionAction fields">
        <ResponseField name="actionType" type="string">
          Action type for this fill, for example `Buy` or `Sell`.
        </ResponseField>

        <ResponseField name="assetId" type="string">
          Polymarket outcome token ID involved in this fill.
        </ResponseField>

        <ResponseField name="shares" type="string">
          Number of shares exchanged in this fill.
        </ResponseField>

        <ResponseField name="price" type="string">
          Price per share for this fill, **in cents**. Divide by 100 to convert to dollars.
        </ResponseField>

        <ResponseField name="txValue" type="string">
          USDC value of this fill (shares × price, adjusted for decimals).
        </ResponseField>

        <ResponseField name="actor" type="string">
          Wallet address that performed this fill.
        </ResponseField>

        <ResponseField name="txHash" type="string">
          On-chain transaction hash (same as the top-level `txHash`).
        </ResponseField>

        <ResponseField name="blockTimestamp" type="integer">
          Unix timestamp (seconds) of the block containing this fill.
        </ResponseField>

        <ResponseField name="fee" type="string">
          Fee charged for this fill, in USDC.
        </ResponseField>

        <ResponseField name="marketId" type="string">
          Polymarket market ID for this fill.
        </ResponseField>

        <ResponseField name="marketSlug" type="string">
          URL-friendly slug for the market.
        </ResponseField>

        <ResponseField name="eventSlug" type="string">
          URL-friendly slug for the parent event.
        </ResponseField>

        <ResponseField name="marketTitle" type="string">
          Human-readable title of the market.
        </ResponseField>

        <ResponseField name="positionSide" type="string">
          Which outcome this fill is on. Either `Yes` or `No`.
        </ResponseField>

        <ResponseField name="outcomeIndex" type="integer">
          Zero-based index of the outcome: `0` = Yes, `1` = No.
        </ResponseField>

        <ResponseField name="marketLogo" type="string">
          URL of the market's logo image.
        </ResponseField>

        <ResponseField name="liquidityRole" type="string | null">
          Whether the actor was a `MAKER` or `TAKER` in this fill. `null` for non-trade actions.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## Example Response

```json theme={null}
{
  "success": true,
  "code": "0",
  "message": "success",
  "data": {
    "txHash": "0x66dc87fb47faf587002b89d183dbb9505fc7ef80da5e6ec49e271278e8d95fad",
    "blockNumber": 88229726,
    "blockTimestamp": 1781049574,
    "profileAddress": "0xaac2469db4c243a2931acc252967b171bd97e8ce",
    "sourceType": "TRADE",
    "actionType": "Buy",
    "sentence": "Buy 3604.58 No for $3546.12269 in Will Bitcoin dip to $59,000 on June 9?",
    "marketSlug": "will-bitcoin-dip-to-59k-on-june-9",
    "marketId": "2475928",
    "actions": [
      {
        "actionType": "Buy",
        "assetId": "38163660360188728397792916713023875464787138529265352624189549073473314732690",
        "shares": "3604.58",
        "price": "98.378249",
        "txValue": "3546.12269",
        "actor": "0xaac2469db4c243a2931acc252967b171bd97e8ce",
        "txHash": "0x66dc87fb47faf587002b89d183dbb9505fc7ef80da5e6ec49e271278e8d95fad",
        "blockTimestamp": 1781049574,
        "fee": "4.02564",
        "marketId": "2475928",
        "marketSlug": "will-bitcoin-dip-to-59k-on-june-9",
        "eventSlug": "what-price-will-bitcoin-hit-on-june-9",
        "marketTitle": "Will Bitcoin dip to $59,000 on June 9?",
        "positionSide": "No",
        "outcomeIndex": 1,
        "marketLogo": "https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC-fullsize.png",
        "liquidityRole": "TAKER"
      }
    ]
  }
}
```

## Understanding the Response

### The `sentence` field

The `sentence` field gives you a single, ready-to-read plain-English summary of everything the transaction did. In the example above, `"Buy 3604.58 No for $3546.12269 in Will Bitcoin dip to $59,000 on June 9?"` tells you the direction (`Buy`), the quantity (`3604.58` shares), the outcome (`No`), the total USDC spent (`$3546.12269`), and the market title — all in one string. Use this field whenever you need a compact, human-readable label for a transaction without further parsing.

### The `actions` array

The `actions` array breaks the transaction down into its individual on-chain fills. A single trade often contains more than one fill because a market order can be matched against multiple resting limit orders at slightly different prices. Each element in `actions` represents one such match: it records the exact `shares`, `price` (in cents), `txValue` (USDC), the `actor` wallet, and whether they acted as the `MAKER` or `TAKER`. Summing the `txValue` across all fills gives you the total USDC value for the transaction, which matches the figure in `sentence`.
