# SubgraphRetrievalService

Defined in: [packages/synapse-sdk/src/types.ts:161](https://github.com/FilOzone/synapse-sdk/blob/32f86959b0bf15557657ea412e31a0897440ca98/packages/synapse-sdk/src/types.ts#L161)

Defines the contract for a service that can retrieve provider information from a data source,
typically a Synapse-compatible subgraph.

This interface allows for custom implementations to be provided in place of the default
SubgraphService. Any service that implements this interface can be used with the
Synapse SDK by passing it via the `subgraphService` option when creating a Synapse instance.

This enables integration with alternative data sources or custom implementations
while maintaining compatibility with the SDK's retrieval system.

## Properties

### getApprovedProvidersForPieceCID()

> **getApprovedProvidersForPieceCID**: (`pieceCid`) => [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`PDPProvider`](/reference/filoz/synapse-sdk/synapse/interfaces/pdpprovider/)[]\>

Defined in: [packages/synapse-sdk/src/types.ts:168](https://github.com/FilOzone/synapse-sdk/blob/32f86959b0bf15557657ea412e31a0897440ca98/packages/synapse-sdk/src/types.ts#L168)

Finds providers that have registered a specific data segment (PieceCID).

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `pieceCid` | `PieceLink` | The PieceCID of the data segment. |

#### Returns

[`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`PDPProvider`](/reference/filoz/synapse-sdk/synapse/interfaces/pdpprovider/)[]\>

A promise that resolves to an array of `ProviderInfo` objects.

***

### getProviderByAddress()

> **getProviderByAddress**: (`address`) => [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`PDPProvider`](/reference/filoz/synapse-sdk/synapse/interfaces/pdpprovider/) \| `null`\>

Defined in: [packages/synapse-sdk/src/types.ts:176](https://github.com/FilOzone/synapse-sdk/blob/32f86959b0bf15557657ea412e31a0897440ca98/packages/synapse-sdk/src/types.ts#L176)

Retrieves details for a specific provider by their address.

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `address` | `` `0x${string}` `` | The unique address (ID) of the provider. |

#### Returns

[`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`PDPProvider`](/reference/filoz/synapse-sdk/synapse/interfaces/pdpprovider/) \| `null`\>

A promise that resolves to `PDPProvider` if found, otherwise `null`.