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

# Squid SDK FAQ

> Frequently asked questions about Squid SDK — common errors, processor configuration, GraphQL setup, and migration guidance for indexer developers.

<AccordionGroup>
  <Accordion title="What are some real-world applications for which Squid SDK was a good fit?">
    Here is an incomplete list:

    * DeFi dashboards, tracking addresses and internal transactions
    * NFT marketplaces, with a dynamic sets of NFT contracts to watch
    * Historical price feeds, tracking Uniswap trades and Chainlink oracle contracts
    * Mining smart contract deployments and the bytecode
    * Real-time bots (\<1sec delay) triggered by on-chain activity
  </Accordion>

  <Accordion title="How does Squid SDK handle unfinalized blocks?">
    The SQD Network only serves finalized blocks and is typically \~1000 blocks behind the tip. The most recent blocks, as well as the unfinalized blocks are seamlessly handled by the SDK from a complementary RPC data source, set by the `chain` config. Potential chain reorgs are automatically handled under the hood. See [Indexing unfinalized blocks](/en/sdk/squid-sdk/resources/unfinalized-blocks) for details.
  </Accordion>

  <Accordion title="What is the latency for the data served by the squid?">
    Since the ArrowSquid release, the Squid SDK has the option to ingest unfinalized blocks directly from an RPC endpoint, making the indexing real-time.
  </Accordion>

  <Accordion title="How do I enable GraphQL subscriptions for local runs?">
    Add `--subscription` flag to the `serve` command defined in `commands.json`. See [Subscriptions](/en/sdk/squid-sdk/reference/openreader-server/configuration/subscriptions) for details.
  </Accordion>

  <Accordion title="How do squids keep track of their sync progress?">
    Depends on the data sink used. Squid processors that use [`TypeormDatabase`](/en/sdk/squid-sdk/resources/persisting-data/typeorm) keep their state in a [schema](https://www.postgresql.org/docs/current/sql-createschema.html), not in a table. By default the schema is called `squid_processor` (name must be overridden in [multiprocessor squids](/en/sdk/squid-sdk/resources/multichain)). You can view it with

    ```sql theme={"system"}
    select * from squid_processor.status;
    ```

    and manually drop it with

    ```sql theme={"system"}
    drop schema squid_processor cascade;
    ```

    to reset the processor status.

    Squids that store their data in [file-based datasets](/en/sdk/squid-sdk/resources/persisting-data/file) store their status in `status.txt` by default. This can be overridden by defining custom [database hooks](/en/sdk/squid-sdk/resources/persisting-data/file#hooks).
  </Accordion>

  <Accordion title="Is there a healthcheck endpoint for the indexer?">
    Yes, the processor exposes the key prometheus metrics at the `${process.env.PROMETHEUS_PORT}/metric` endpoint. The squids deployed to the SQD Cloud also publicly explose the metrics, see [Monitoring in the Cloud](/en/cloud/resources/monitoring)
  </Accordion>

  <Accordion title="Do squids have a debug mode?">
    Yes. To see all debug messages, set the `SQD_DEBUG` anv variable to `*`:

    ```bash title=".env" theme={"system"}
    SQD_DEBUG=*
    ```

    You can also enable debug messages just for a specific namespace. For example,

    ```bash title=".env" theme={"system"}
    SQD_DEBUG=sqd:processor:archive
    ```

    will show only the messages related to your squid's queries to the SQD Network.
  </Accordion>
</AccordionGroup>
