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

# FAQ

> Frequently asked questions about developing with Squid SDK

Common questions about developing with Squid SDK.

## Real-World Applications

### What are some real-world applications for which Squid SDK was a good fit?

Squid SDK is well-suited for a wide range of blockchain indexing applications:

* **Starknet Analytics** - Track Cairo contract events and transactions
* **DeFi Dashboards** - Monitor protocol interactions on Starknet
* **NFT Tracking** - Index NFT transfers and marketplace activity

<Tip>
  Squid SDK excels at applications requiring high-performance indexing, complex
  data transformations, and real-time processing.
</Tip>

## Technical Questions

### My squid is slow, failing, or misbehaving — where do I start?

Start with the diagnostic sequence in
[Squid SDK tips and troubleshooting](./guides/advanced/tips-and-troubleshooting):
it covers indexing speed, batch behavior, memory, reorgs, debug logging, and
common error messages. Many production issues can also be prevented by following
the [SQD Cloud best practices guide](/en/cloud/resources/best-practices).

### How does Squid SDK handle unfinalized blocks?

The SQD Network serves finalized blocks and is typically \~1000 blocks behind the tip. Recent and unfinalized blocks are seamlessly handled by the SDK from a complementary real-time data source (RPC, GraphQL, or HTTP API, depending on the chain) configured in your processor. Potential chain reorganizations are automatically handled under the hood, ensuring data consistency.

For detailed information, see [Indexing unfinalized blocks](./guides/advanced/unfinalized-blocks).

### How do squids keep track of their sync progress?

Sync progress tracking depends on the data sink used:

**TypeORM Database**: Processors using [`TypeormDatabase`](./reference/data-stores/typeorm-store) store their state in a PostgreSQL [schema](https://www.postgresql.org/docs/current/sql-createschema.html) (not a table). By default, the schema is called `squid_processor`.

<Note>
  The schema name must be overridden in [multiprocessor
  squids](./guides/advanced/multichain-indexing).
</Note>

View sync status:

```sql theme={"system"}
SELECT * FROM squid_processor.status;
```

Reset processor status:

```sql theme={"system"}
DROP SCHEMA squid_processor CASCADE;
```

**File-based datasets**: Squids using [file-based storage](./guides/other-data-destinations) store their status in `status.txt` by default. This can be customized via the `hooks` [database option](./reference/data-stores/file-store#database-options).

### How fresh is the data served by squids?

Squid SDK can ingest unfinalized blocks directly from an RPC endpoint, making indexing real-time with minimal latency. Configure your RPC endpoint in the processor to enable real-time indexing of the latest blocks.

### How do I enable GraphQL subscriptions for local runs?

Add the `--subscription` flag to the `serve` command in your `commands.json`:

```json theme={"system"}
{
  "commands": {
    "serve:dev": {
      "cmd": ["npx", "squid-graphql-server", "--subscription"]
    }
  }
}
```

<Note>
  See
  [Subscriptions](./reference/openreader/configuration/subscriptions)
  for detailed configuration options.
</Note>

### Is there a healthcheck endpoint for the indexer?

Yes! The processor exposes Prometheus metrics at the `/metrics` endpoint (port from `PROCESSOR_PROMETHEUS_PORT`, falling back to `PROMETHEUS_PORT`).

<Info>
  For squids deployed to SQD Cloud, metrics are publicly exposed. See
  [Monitoring in the Cloud](/en/cloud/resources/monitoring) for details.
</Info>

### Do squids have a debug mode?

Yes. Enable debug mode by setting the `SQD_DEBUG` environment variable:

```bash theme={"system"}
# Enable all debug messages
SQD_DEBUG=*

# Enable specific namespace (e.g., SQD Network queries)
SQD_DEBUG=sqd:processor:archive
```

<Tip>
  Use specific namespaces to focus on particular components and reduce log noise
  during debugging.
</Tip>
