# getClientDataSetsCall

> **getClientDataSetsCall**(`options`): `object`

Defined in: [packages/synapse-core/src/warm-storage/get-client-data-sets.ts:118](https://github.com/FilOzone/synapse-sdk/blob/7fdc04df4e3c52366a9f0cd55da4c05e20b2ed82/packages/synapse-core/src/warm-storage/get-client-data-sets.ts#L118)

Create a call to the [getClientDataSets](/reference/filoz/synapse-core/warm-storage/functions/getclientdatasets/) function for use with the Viem multicall, readContract, or simulateContract functions.

## Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `options` | \{ `address`: `` `0x${string}` ``; `chain`: `Chain`; `contractAddress?`: `` `0x${string}` ``; \} | [getClientDataSetsCall.OptionsType](/reference/filoz/synapse-core/warm-storage/namespaces/getclientdatasetscall/type-aliases/optionstype/) |
| `options.address` | `` `0x${string}` `` | Client address to fetch data sets for. |
| `options.chain` | `Chain` | The chain to use to make the call. |
| `options.contractAddress?` | `` `0x${string}` `` | Warm storage contract address. If not provided, the default is the storage view contract address for the chain. |

## Returns

`object`

The call to the getClientDataSets function [getClientDataSetsCall.OutputType](/reference/filoz/synapse-core/warm-storage/namespaces/getclientdatasetscall/type-aliases/outputtype/)

### abi

> **abi**: readonly \[\{ `inputs`: readonly \[\{ `internalType`: `"contract FilecoinWarmStorageService"`; `name`: `"_service"`; `type`: `"address"`; \}\]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"address"`; `name`: `"payer"`; `type`: `"address"`; \}\]; `name`: `"clientDataSets"`; `outputs`: readonly \[\{ `internalType`: `"uint256[]"`; `name`: `"dataSetIds"`; `type`: `"uint256[]"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"address"`; `name`: `"payer"`; `type`: `"address"`; \}, \{ `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; \}\]; `name`: `"clientNonces"`; `outputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\]; `name`: `"filBeamControllerAddress"`; `outputs`: readonly \[\{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}\]; `name`: `"getAllDataSetMetadata"`; `outputs`: readonly \[\{ `internalType`: `"string[]"`; `name`: `"keys"`; `type`: `"string[]"`; \}, \{ `internalType`: `"string[]"`; `name`: `"values"`; `type`: `"string[]"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"pieceId"`; `type`: `"uint256"`; \}\]; `name`: `"getAllPieceMetadata"`; `outputs`: readonly \[\{ `internalType`: `"string[]"`; `name`: `"keys"`; `type`: `"string[]"`; \}, \{ `internalType`: `"string[]"`; `name`: `"values"`; `type`: `"string[]"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"offset"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"limit"`; `type`: `"uint256"`; \}\]; `name`: `"getApprovedProviders"`; `outputs`: readonly \[\{ `internalType`: `"uint256[]"`; `name`: `"providerIds"`; `type`: `"uint256[]"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\]; `name`: `"getApprovedProvidersLength"`; `outputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"count"`; `type`: `"uint256"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"address"`; `name`: `"client"`; `type`: `"address"`; \}\]; `name`: `"getClientDataSets"`; `outputs`: readonly \[\{ `components`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"pdpRailId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"cacheMissRailId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"cdnRailId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"address"`; `name`: `"payer"`; `type`: `"address"`; \}, \{ `internalType`: `"address"`; `name`: `"payee"`; `type`: `"address"`; \}, \{ `internalType`: `"address"`; `name`: `"serviceProvider"`; `type`: `"address"`; \}, \{ `internalType`: `"uint256"`; `name`: `"commissionBps"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"clientDataSetId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"pdpEndEpoch"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"providerId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}\]; `internalType`: `"struct FilecoinWarmStorageService.DataSetInfoView[]"`; `name`: `"infos"`; `type`: `"tuple[]"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\]; `name`: `"getCurrentPricingRates"`; `outputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"storagePrice"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"minimumRate"`; `type`: `"uint256"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}\]; `name`: `"getDataSet"`; `outputs`: readonly \[\{ `components`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"pdpRailId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"cacheMissRailId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"cdnRailId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"address"`; `name`: `"payer"`; `type`: `"address"`; \}, \{ `internalType`: `"address"`; `name`: `"payee"`; `type`: `"address"`; \}, \{ `internalType`: `"address"`; `name`: `"serviceProvider"`; `type`: `"address"`; \}, \{ `internalType`: `"uint256"`; `name`: `"commissionBps"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"clientDataSetId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"pdpEndEpoch"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"providerId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}\]; `internalType`: `"struct FilecoinWarmStorageService.DataSetInfoView"`; `name`: `"info"`; `type`: `"tuple"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"string"`; `name`: `"key"`; `type`: `"string"`; \}\]; `name`: `"getDataSetMetadata"`; `outputs`: readonly \[\{ `internalType`: `"bool"`; `name`: `"exists"`; `type`: `"bool"`; \}, \{ `internalType`: `"string"`; `name`: `"value"`; `type`: `"string"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"leafCount"`; `type`: `"uint256"`; \}\]; `name`: `"getDataSetSizeInBytes"`; `outputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; \}\]; `stateMutability`: `"pure"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}\]; `name`: `"getDataSetStatus"`; `outputs`: readonly \[\{ `internalType`: `"enum FilecoinWarmStorageService.DataSetStatus"`; `name`: `"status"`; `type`: `"uint8"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\]; `name`: `"getPDPConfig"`; `outputs`: readonly \[\{ `internalType`: `"uint64"`; `name`: `"maxProvingPeriod"`; `type`: `"uint64"`; \}, \{ `internalType`: `"uint256"`; `name`: `"challengeWindowSize"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"challengesPerProof"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"initChallengeWindowStart"`; `type`: `"uint256"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"pieceId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"string"`; `name`: `"key"`; `type`: `"string"`; \}\]; `name`: `"getPieceMetadata"`; `outputs`: readonly \[\{ `internalType`: `"bool"`; `name`: `"exists"`; `type`: `"bool"`; \}, \{ `internalType`: `"string"`; `name`: `"value"`; `type`: `"string"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"providerId"`; `type`: `"uint256"`; \}\]; `name`: `"isProviderApproved"`; `outputs`: readonly \[\{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"setId"`; `type`: `"uint256"`; \}\]; `name`: `"nextPDPChallengeWindowStart"`; `outputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\]; `name`: `"nextUpgrade"`; `outputs`: readonly \[\{ `internalType`: `"address"`; `name`: `"nextImplementation"`; `type`: `"address"`; \}, \{ `internalType`: `"uint96"`; `name`: `"afterEpoch"`; `type`: `"uint96"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}, \{ `internalType`: `"uint256"`; `name`: `"periodId"`; `type`: `"uint256"`; \}\]; `name`: `"provenPeriods"`; `outputs`: readonly \[\{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}\]; `name`: `"provenThisPeriod"`; `outputs`: readonly \[\{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}\]; `name`: `"provingActivationEpoch"`; `outputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"setId"`; `type`: `"uint256"`; \}\]; `name`: `"provingDeadline"`; `outputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"railId"`; `type`: `"uint256"`; \}\]; `name`: `"railToDataSet"`; `outputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\]; `name`: `"service"`; `outputs`: readonly \[\{ `internalType`: `"contract FilecoinWarmStorageService"`; `name`: `""`; `type`: `"address"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\]; `name`: `"serviceCommissionBps"`; `outputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; \}\]; `stateMutability`: `"view"`; `type`: `"function"`; \}, \{ `inputs`: readonly \[\{ `internalType`: `"uint256"`; `name`: `"dataSetId"`; `type`: `"uint256"`; \}\]; `name`: `"ProvingPeriodNotInitialized"`; `type`: `"error"`; \}\] = `chain.contracts.fwssView.abi`

### address

> **address**: `` `0x${string}` ``

### args

> **args**: \[`` `0x${string}` ``\]

### functionName

> **functionName**: `"getClientDataSets"` = `'getClientDataSets'`

## Throws

Errors [getClientDataSetsCall.ErrorType](/reference/filoz/synapse-core/warm-storage/namespaces/getclientdatasetscall/type-aliases/errortype/)

## Example

```ts
import { getClientDataSetsCall } from '@filoz/synapse-core/warm-storage'
import { createPublicClient, http } from 'viem'
import { multicall } from 'viem/actions'
import { calibration } from '@filoz/synapse-core/chains'

const client = createPublicClient({
  chain: calibration,
  transport: http(),
})

const results = await multicall(client, {
  contracts: [
    getClientDataSetsCall({
      chain: calibration,
      client: '0x0000000000000000000000000000000000000000',
    }),
  ],
})

console.log(results[0])
```