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

# Connected nodes

> Every resolver node connected to the relay right now, with its live state and inventory.

This is the relay's in-memory view: what each node said in its last heartbeat. For the registry with
reliability scores, use [`GET /v1/resolvers`](/integrators/api/resolvers).

<ResponseField name="nodes" type="object[]">
  <Expandable title="Node">
    <ResponseField name="address" type="address">The node's identity.</ResponseField>

    <ResponseField name="name" type="string" />

    <ResponseField name="version" type="string">Node software version.</ResponseField>
    <ResponseField name="state" type="string">`quoting`, `degraded` or `paused`.</ResponseField>
    <ResponseField name="degraded" type="string | null">The decline reason while degraded.</ResponseField>

    <ResponseField name="region" type="string | null" />

    <ResponseField name="signerType" type="string | null">`keyfile`, `turnkey` or `mpcvault`.</ResponseField>
    <ResponseField name="fresh" type="boolean">Whether a heartbeat arrived inside the staleness window (35 s).</ResponseField>
    <ResponseField name="corridors" type="object[]">`{ chainId, baseToken, quoteToken }` the node advertised.</ResponseField>
    <ResponseField name="inventory" type="object[]">`{ chainId, token, balance, allowance }` from the last heartbeat.</ResponseField>

    <ResponseField name="connectedAt" type="string" />

    <ResponseField name="lastHeartbeat" type="string | null" />

    <ResponseField name="solanaAddress" type="string">Present once the node proved a Solana key.</ResponseField>
    <ResponseField name="chains" type="object[]">`{ chainId, state, degraded }` per chain, from nodes that report them.</ResponseField>
  </Expandable>
</ResponseField>
