Skip to content

PDPServer

Defined in: packages/synapse-sdk/src/pdp/server.ts:167

new PDPServer(authHelper, serviceURL): PDPServer;

Defined in: packages/synapse-sdk/src/pdp/server.ts:176

Create a new PDPServer instance

ParameterTypeDescription
authHelper| PDPAuthHelper | nullPDPAuthHelper instance for signing operations
serviceURLstringThe PDP service URL (e.g., https://pdp.provider.com)

PDPServer

addPieces(
dataSetId,
clientDataSetId,
pieceDataArray,
metadata?): Promise<AddPiecesResponse>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:343

Add pieces to an existing data set

ParameterTypeDescription
dataSetIdnumberThe ID of the data set to add pieces to
clientDataSetIdbigintThe client’s dataset ID used when creating the data set
pieceDataArraystring[] | PieceLink[]Array of piece data containing PieceCID CIDs and raw sizes
metadata?MetadataEntry[][]Optional metadata for each piece (array of arrays, one per piece)

Promise<AddPiecesResponse>

Promise that resolves when the pieces are added (201 Created)

Error if any CID is invalid

const pieceData = ['bafkzcibcd...']
const metadata = [[{ key: 'snapshotDate', value: '20250711' }]]
await pdpTool.addPieces(dataSetId, clientDataSetId, pieceData, metadata)

createAndAddPieces(
clientDataSetId,
payee,
payer,
recordKeeper,
pieceDataArray,
metadata): Promise<CreateDataSetResponse>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:235

Creates a data set and adds pieces to it in a combined operation. Users can poll the status of the operation using the returned data set status URL. After which the user can use the returned transaction hash and data set ID to check the status of the piece addition.

ParameterTypeDescription
clientDataSetIdbigintUnique ID for the client’s dataset
payeestringAddress that will receive payments (service provider)
payerstringAddress that will pay for the storage (client)
recordKeeperstringAddress of the Warm Storage contract
pieceDataArraystring[] | PieceLink[]Array of piece data containing PieceCID CIDs and raw sizes
metadata{ dataset?: MetadataEntry[]; pieces?: MetadataEntry[][]; }Optional metadata for dataset and each of the pieces.
metadata.dataset?MetadataEntry[]-
metadata.pieces?MetadataEntry[][]-

Promise<CreateDataSetResponse>

Promise that resolves with transaction hash and status URL


createDataSet(
clientDataSetId,
payee,
payer,
metadata,
recordKeeper): Promise<CreateDataSetResponse>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:194

Create a new data set on the PDP server

ParameterTypeDescription
clientDataSetIdbigintUnique ID for the client’s dataset
payeestringAddress that will receive payments (service provider)
payerstringAddress that will pay for the storage (client)
metadataMetadataEntry[]Metadata entries for the data set (key-value pairs)
recordKeeperstringAddress of the Warm Storage contract

Promise<CreateDataSetResponse>

Promise that resolves with transaction hash and status URL


deletePiece(
dataSetId,
clientDataSetId,
pieceID): Promise<string>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:594

Delete a piece from a data set

ParameterTypeDescription
dataSetIdnumberThe ID of dataset to delete
clientDataSetIdbigintClient dataset ID of the dataset to delete
pieceIDnumberThe ID of the piece to delete

Promise<string>

Promise for transaction hash of the delete operation


downloadPiece(pieceCid): Promise<Uint8Array<ArrayBufferLike>>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:546

Download a piece from a service provider

ParameterTypeDescription
pieceCidstring | PieceLinkThe PieceCID CID of the piece

Promise<Uint8Array<ArrayBufferLike>>

The downloaded data


findPiece(pieceCid): Promise<FindPieceResponse>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:443

Find a piece by PieceCID and size

ParameterTypeDescription
pieceCidstring | PieceLinkThe PieceCID CID (as string or PieceCID object)

Promise<FindPieceResponse>

Piece information if found


getAuthHelper(): PDPAuthHelper;

Defined in: packages/synapse-sdk/src/pdp/server.ts:685

PDPAuthHelper


getDataSet(dataSetId): Promise<DataSetData>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:566

Get data set details from the PDP server

ParameterTypeDescription
dataSetIdnumberThe ID of the data set to fetch

Promise<DataSetData>

Promise that resolves with data set data


getDataSetCreationStatus(txHash): Promise<DataSetCreationStatusResponse>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:388

Check the status of a data set creation

ParameterTypeDescription
txHashstringTransaction hash from createDataSet

Promise<DataSetCreationStatusResponse>

Promise that resolves with the creation status


getPieceAdditionStatus(dataSetId, txHash): Promise<PieceAdditionStatusResponse>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:417

Check the status of a piece addition transaction

ParameterTypeDescription
dataSetIdnumberThe data set ID
txHashstringTransaction hash from addPieces

Promise<PieceAdditionStatusResponse>

Promise that resolves with the addition status


getPieceStatus(pieceCid): Promise<PieceStatusResponse>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:467

Get indexing and IPNI status for a piece

TODO: not used anywhere, remove?

ParameterTypeDescription
pieceCidstring | PieceLinkThe PieceCID CID (as string or PieceCID object)

Promise<PieceStatusResponse>

Piece status information including indexing and IPNI advertisement status

Error if piece not found or doesn’t belong to service (404)


getServiceURL(): string;

Defined in: packages/synapse-sdk/src/pdp/server.ts:681

Get the service URL for this PDPServer instance

string

The service URL


ping(): Promise<void>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:664

Ping the service provider to check connectivity

Promise<void>

Promise that resolves if provider is reachable (200 response)

Error if provider is not reachable or returns non-200 status


uploadPiece(data, options?): Promise<void>;

Defined in: packages/synapse-sdk/src/pdp/server.ts:505

Upload a piece to the PDP server using the commp-last protocol.

Accepts data as Uint8Array, AsyncIterable, or ReadableStream. For optimal performance with non-trivial sizes, prefer streaming types (AsyncIterable or ReadableStream) to avoid memory pressure and blocking behavior. See SIZE_CONSTANTS.MAX_UPLOAD_SIZE documentation for detailed guidance.

ParameterTypeDescription
data| Uint8Array<ArrayBufferLike> | AsyncIterable<Uint8Array<ArrayBufferLike>, any, any> | ReadableStream<Uint8Array<ArrayBufferLike>>The data to upload (Uint8Array, AsyncIterable, or ReadableStream)
options?UploadPieceOptionsOptional upload options

Promise<void>