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

# Tron quickstart

> Stream TRC-20 transfer logs from Tron with Pipes SDK.

Pipes SDK streams filtered Tron data from SQD Portal into TypeScript. This example reads live USDT transfer logs and decodes the transferred amount.

<Note>
  The Pipes CLI currently scaffolds EVM and SVM projects only. Set up Tron and Hyperliquid pipes manually as shown here.
</Note>

## Prerequisites

* Node.js 22.15 or later
* npm, pnpm, or yarn

## Create the project

```bash theme={"system"}
mkdir tron-pipe && cd tron-pipe
npm init -y
npm pkg set type=module
npm install @subsquid/pipes@beta tsx
```

Create `index.ts`:

```ts theme={"system"}
import { tronPortalStream, tronQuery } from '@subsquid/pipes/tron'

const USDT = 'a614f803b6fd780986a42c78ec9c7f77e6ded13c'
const TRANSFER_TOPIC = 'ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'

const stream = tronPortalStream({
  id: 'tron-usdt-transfers',
  portal: 'https://portal.sqd.dev/datasets/tron-mainnet',
  outputs: tronQuery()
    .addFields({
      block: { number: true, timestamp: true },
      log: { logIndex: true, topics: true, data: true },
    })
    .addLogRequest({
      range: { from: 'latest' },
      request: { address: [USDT], topic0: [TRANSFER_TOPIC] },
    }),
})

for await (const { data } of stream) {
  for (const block of data) {
    for (const log of block.logs) {
      if (!log.data || !log.topics?.[1] || !log.topics[2]) continue

      console.log({
        block: block.header.number,
        from: `41${log.topics[1].slice(-40)}`,
        to: `41${log.topics[2].slice(-40)}`,
        amount: BigInt(`0x${log.data}`),
      })
    }
  }
}
```

Run it:

```bash theme={"system"}
npx tsx index.ts
```

Tron Portal hex values do not use a `0x` prefix. Transaction addresses use the 21-byte `41...` form, while log addresses use the 20-byte form shown above.

## Next steps

* [Handle Tron data](./guides/basic-development/handling-tron-data) for transaction families, address formats, and value types.
* [Query builder reference](./reference/basic-components/query-builder) for every field and filter.
* Use the shared [Postgres](../evm/reference/basic-components/target/postgres-drizzle), [ClickHouse](../evm/reference/basic-components/target/clickhouse), [BigQuery](../evm/reference/basic-components/target/bigquery), or [Parquet](../evm/reference/basic-components/target/parquet) target APIs when you are ready to persist the stream.


## Related topics

- [Choose your first Portal query](/en/portal/introduction/first-query.md)
- [Quickstart](/en/sdk/squid-sdk/tron/quickstart.md)
- [Hyperliquid fills quickstart](/en/sdk/pipes-sdk/hyperliquid/quickstart.md)
- [Tron](/en/data/tron/tron-mainnet.md)
