> ## 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.

# Running bare bones

> Using a pipe as a plain async iterator without extra services

By default, `evmPortalSource` activates a console logger. Passing `metrics` and `progress` enables those services. To embed a pipe into external code with no side effects, disable them all:

```ts theme={"system"}
import { commonAbis, evmDecoder, evmPortalStream } from '@subsquid/pipes/evm'

const stream = evmPortalStream({
  portal: 'https://portal.sqd.dev/datasets/ethereum-mainnet',
  outputs: evmDecoder({
    range: { from: 0 },
    events: { transfers: commonAbis.erc20.events.Transfer },
  }),
  logger: false,   // disable all log output
  profiler: false, // profiler disabled under all circumstances
  // omit `metrics` — no metrics server
  // omit `progress` — no progress reporting
})

for await (const { data } of stream) {
  // data.transfers is available here
  console.log(data.transfers.length)
}
```

The source becomes a plain async iterable that yields `{ data, ctx }` per batch. `ctx.logger` is a no-op when `logger: false`.
