Skip to content

StorageContext

Defined in: packages/synapse-sdk/src/storage/context.ts:100

new StorageContext(options): StorageContext

Defined in: packages/synapse-sdk/src/storage/context.ts:186

Creates a new StorageContext

ParameterTypeDescription
optionsStorageContextOptionsThe options for the StorageContext StorageContextOptions

StorageContext

readonly serviceProvider: `0x${string}`

Defined in: packages/synapse-sdk/src/storage/context.ts:113

get dataSetId(): bigint | undefined

Defined in: packages/synapse-sdk/src/storage/context.ts:130

bigint | undefined


get dataSetMetadata(): Record<string, string>

Defined in: packages/synapse-sdk/src/storage/context.ts:125

Record<string, string>


get provider(): PDPProvider

Defined in: packages/synapse-sdk/src/storage/context.ts:120

PDPProvider


get withCDN(): boolean

Defined in: packages/synapse-sdk/src/storage/context.ts:116

boolean

commit(options): Promise<CommitResult>

Defined in: packages/synapse-sdk/src/storage/context.ts:829

Commit pieces on-chain by calling AddPieces (or CreateDataSetAndAddPieces).

Pieces must be stored on the provider (via store() or pull()) before committing. Creates a new data set if this context doesn’t have one yet.

ParameterTypeDescription
optionsCommitOptionsPieces to commit with optional pieceMetadata, extraData, and onSubmitted callback

Promise<CommitResult>

Transaction hash, confirmed pieceIds, dataSetId, and whether a new data set was created


deletePiece(options): Promise<`0x${string}`>

Defined in: packages/synapse-sdk/src/storage/context.ts:1080

Delete a piece with given CID from this data set.

ParameterTypeDescription
options{ piece: string | bigint | PieceCID; }Options for the delete operation
options.piecestring | bigint | PieceCIDThe PieceCID identifier or a piece number to delete by pieceID

Promise<`0x${string}`>

Transaction hash of the delete operation


download(options): Promise<Uint8Array<ArrayBufferLike>>

Defined in: packages/synapse-sdk/src/storage/context.ts:973

Download data from this specific service provider

ParameterType
optionsDownloadOptions

Promise<Uint8Array<ArrayBufferLike>>


getPieces(options?): AsyncGenerator<PieceRecord>

Defined in: packages/synapse-sdk/src/storage/context.ts:1024

Get all active pieces for this data set as an async generator.

ParameterTypeDescription
options{ batchSize?: bigint; }Optional configuration object
options.batchSize?bigintThe batch size for each pagination call (default: 100)

AsyncGenerator<PieceRecord>

Object with pieceCid and pieceId


getPieceUrl(pieceCid): string

Defined in: packages/synapse-sdk/src/storage/context.ts:903

Get the retrieval URL for a piece on this provider.

Used by pull() to construct source URLs when pulling from this context to another provider.

ParameterType
pieceCidPieceCID

string


getProviderInfo(): Promise<PDPProvider>

Defined in: packages/synapse-sdk/src/storage/context.ts:1001

Get information about the service provider used by this service.

Promise<PDPProvider>

Provider information including pricing (currently same for all providers)


getScheduledRemovals(): Promise<readonly bigint[]>

Defined in: packages/synapse-sdk/src/storage/context.ts:1010

Get pieces scheduled for removal from this data set.

Promise<readonly bigint[]>

Array of piece IDs scheduled for removal


pieceStatus(options): Promise<PieceStatus | null>

Defined in: packages/synapse-sdk/src/storage/context.ts:1112

Check if a piece exists on this service provider and get its proof status. Also returns timing information about when the piece was last proven and when the next proof is due.

Note: Proofs are submitted for entire data sets, not individual pieces. The timing information returned reflects when the data set (containing this piece) was last proven and when the next proof is due.

ParameterTypeDescription
options{ pieceCid: string | PieceCID; }Options for the piece status
options.pieceCidstring | PieceCIDThe PieceCID (piece CID) to check

Promise<PieceStatus | null>

Status information including data set timing and retrieval URL


presignForCommit(pieces): Promise<`0x${string}`>

Defined in: packages/synapse-sdk/src/storage/context.ts:709

Pre-sign EIP-712 extraData for the given pieces.

The returned Hex can be passed to both pull() and commit() to avoid redundant wallet signature prompts during multi-copy uploads.

ParameterTypeDescription
piecesobject[]Pieces to sign for, with optional per-piece metadata

Promise<`0x${string}`>

Signed extraData hex to pass to pull() or commit()


pull(options): Promise<PullResult>

Defined in: packages/synapse-sdk/src/storage/context.ts:743

Request this provider to pull pieces from another provider.

Used for multi-copy uploads: data stored once on primary, then pulled to secondaries via SP-to-SP transfer.

ParameterTypeDescription
optionsPullOptionsPull options: pieces to pull, source (URL or StorageContext), optional extraData, signal, and onProgress

Promise<PullResult>

Status per piece (‘complete’ or ‘failed’) and overall result


store(data, options?): Promise<StoreResult>

Defined in: packages/synapse-sdk/src/storage/context.ts:665

Store data on the service provider without committing on-chain.

First step of the split upload flow: store -> pull -> commit. After storing, the piece is “parked” on the provider and ready for pulling to other providers via pull(), on-chain commitment via commit(), or retrieval via getPieceUrl() (not yet committed; eligible for GC).

ParameterTypeDescription
dataUploadPieceStreamingDataRaw bytes or readable stream to upload
options?StoreOptionsOptional pieceCid (skip CommP), signal, and onProgress callback

Promise<StoreResult>

PieceCid and size of the stored piece


terminate(options?): Promise<TerminateServiceResult>

Defined in: packages/synapse-sdk/src/storage/context.ts:1225

Terminate the storage service for this context’s data set.

Relays through this provider by default (immediate); pass skipProvider: true to submit the transaction directly and wind down over the lockup period. See StorageManager.terminateService for full semantics.

ParameterTypeDescription
options?Pick<TerminateServiceOptions, "onSubmitted" | "skipProvider">Optional skipProvider and onSubmitted TerminateServiceOptions

Promise<TerminateServiceResult>

The termination outcome TerminateServiceResult


upload(data, options?): Promise<UploadResult>

Defined in: packages/synapse-sdk/src/storage/context.ts:925

Upload data to the service provider and commit on-chain.

Combines store() and commit() into a single call. Accepts Uint8Array or ReadableStream; prefer streaming for large files to minimize memory.

When uploading to multiple contexts, pieceCid should be pre-calculated and passed in options to avoid redundant computation. For streaming uploads, pieceCid must be provided as it cannot be calculated without consuming the stream.

ParameterTypeDescription
dataUploadPieceStreamingDataRaw bytes or readable stream to upload
options?UploadOptionsUpload options including callbacks, pieceMetadata, pieceCid, and signal

Promise<UploadResult>

Upload result with pieceCid, size, and a single-element copies array


static create(options): Promise<StorageContext>

Defined in: packages/synapse-sdk/src/storage/context.ts:301

Static factory method to create a StorageContext Handles provider selection and data set selection/creation

ParameterType
optionsStorageContextCreateOptions

Promise<StorageContext>


static createContexts(options): Promise<StorageContext[]>

Defined in: packages/synapse-sdk/src/storage/context.ts:207

Creates storage contexts with specified options.

Three mutually exclusive modes:

  1. dataSetIds provided: creates contexts for exactly those data sets
  2. providerIds provided: creates contexts for exactly those providers
  3. Neither provided: uses smart selection with count (default 2)
ParameterType
optionsContextCreateContextsOptions

Promise<StorageContext[]>


static resolveByDataSetId(dataSetId, warmStorageService, spRegistry, clientAddress): Promise<ProviderSelectionResult>

Defined in: packages/synapse-sdk/src/storage/context.ts:409

Resolve using a specific data set ID. Also used by StorageManager.terminateService to locate the data set’s provider.

ParameterType
dataSetIdbigint
warmStorageServiceWarmStorageService
spRegistrySPRegistryService
clientAddressstring

Promise<ProviderSelectionResult>