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

# Lineage Overview

> Understand lineage traversal patterns before hitting record endpoints.

## Overview

The lineage suite lets you reconstruct how a BlockDB record was produced. Each endpoint focuses on a specific slice of the lineage graph so you can tune limits, caching, and latency budgets independently.

### Endpoint Matrix

| Endpoint                                                          | Summary                                                  | Default Limit | Typical Latency |
| ----------------------------------------------------------------- | -------------------------------------------------------- | ------------- | --------------- |
| [`POST /evm/lineage/record`](/api-reference/evm/lineage/record)   | Fetch the latest copy of a record by tracing identifier. | `1`           | \< 200 ms       |
| [`POST /evm/lineage/parents`](/api-reference/evm/lineage/parents) | Traverse the dependency graph of parent records.         | `128` nodes   | up to 1 s       |

### Parameter Conventions

<ParamField body="chain_id" type="number" required>
  Chain identifier to disambiguate networks. Refer to the [Chain](/api-reference/enumerations/chain) enumeration for supported values.
</ParamField>

<ParamField body="tracing_id" type="string" required>
  Selector for lineage requests (hex string (no `0x` prefix)). Matches values emitted in `_tracing_id` fields.
</ParamField>

<ParamField body="cursor" type="string">
  Pagination cursor returned from prior responses; persist per endpoint when traversing large graphs.
</ParamField>

<ParamField body="limit" type="number">
  Maximum number of records to return per page; lower values help manage payload size on expansive graphs.
</ParamField>

### Usage Guidance

* Start with `/evm/lineage/record` to confirm that a `tracing_id` exists before requesting heavier expansions.
* Apply conservative `limit` settings when exploring new datasets; payload size grows with artifact volume and graph breadth.
* Cache lineage responses client-side where possible—records are immutable once written.
* Monitor `truncation_reason` (when present) to detect when depth or fan-out limits stop traversal.

### See Also

* [`POST /evm/lineage/record`](/api-reference/evm/lineage/record)
* [`POST /evm/lineage/parents`](/api-reference/evm/lineage/parents)
