# SynapseOptions

Defined in: [packages/synapse-sdk/src/types.ts:91](https://github.com/FilOzone/synapse-sdk/blob/8d8b407968f141ea7931036f0f8d36745d1ce74b/packages/synapse-sdk/src/types.ts#L91)

Options for initializing the Synapse instance

## Properties

### account

> **account**: `` `0x${string}` `` \| `Account`

Defined in: [packages/synapse-sdk/src/types.ts:111](https://github.com/FilOzone/synapse-sdk/blob/8d8b407968f141ea7931036f0f8d36745d1ce74b/packages/synapse-sdk/src/types.ts#L111)

Viem account

#### See

 - https://viem.sh/docs/accounts/jsonRpc
 - https://viem.sh/docs/accounts/local

***

### chain?

> `optional` **chain?**: [`Chain`](/reference/filoz/synapse-sdk/synapse/interfaces/chain/)

Defined in: [packages/synapse-sdk/src/types.ts:103](https://github.com/FilOzone/synapse-sdk/blob/8d8b407968f141ea7931036f0f8d36745d1ce74b/packages/synapse-sdk/src/types.ts#L103)

Filecoin chain

***

### requiredPermissions?

> `optional` **requiredPermissions?**: [`Permission`](/reference/filoz/synapse-core/session-key/type-aliases/permission/)[]

Defined in: [packages/synapse-sdk/src/types.ts:129](https://github.com/FilOzone/synapse-sdk/blob/8d8b407968f141ea7931036f0f8d36745d1ce74b/packages/synapse-sdk/src/types.ts#L129)

The set of session key permissions `Synapse.create` validates as authorized and unexpired.

Defaults to `SessionKey.DefaultFwssPermissions` (all four FWSS permissions:
`CreateDataSet`, `AddPieces`, `SchedulePieceRemovals`, `TerminateService`), which matches
the operations exposed by the high-level Synapse class.

Pass a narrower array (e.g. `[CreateDataSetPermission, AddPiecesPermission]`) to keep
least-privilege session keys on the `Synapse.create` happy path when the app only exercises
a subset of the SDK surface. Operations whose permissions are not listed here will revert
on-chain if attempted; the SDK does not enforce per-operation checks.

Only meaningful together with `sessionKey`.

***

### sessionKey?

> `optional` **sessionKey?**: [`SessionKey`](/reference/filoz/synapse-core/session-key/interfaces/sessionkey/)\<`"Secp256k1"`\>

Defined in: [packages/synapse-sdk/src/types.ts:113](https://github.com/FilOzone/synapse-sdk/blob/8d8b407968f141ea7931036f0f8d36745d1ce74b/packages/synapse-sdk/src/types.ts#L113)

***

### source

> **source**: `string` \| `null`

Defined in: [packages/synapse-sdk/src/types.ts:139](https://github.com/FilOzone/synapse-sdk/blob/8d8b407968f141ea7931036f0f8d36745d1ce74b/packages/synapse-sdk/src/types.ts#L139)

Application identifier for namespace isolation. When set to a non-empty string, datasets
are tagged with this value and only datasets with a matching source are reused. Set to
`null` to explicitly opt out.

***

### transport?

> `optional` **transport?**: `Transport`

Defined in: [packages/synapse-sdk/src/types.ts:97](https://github.com/FilOzone/synapse-sdk/blob/8d8b407968f141ea7931036f0f8d36745d1ce74b/packages/synapse-sdk/src/types.ts#L97)

Viem transport

#### See

https://viem.sh/docs/clients/intro#transports

***

### withCDN?

> `optional` **withCDN?**: `boolean`

Defined in: [packages/synapse-sdk/src/types.ts:132](https://github.com/FilOzone/synapse-sdk/blob/8d8b407968f141ea7931036f0f8d36745d1ce74b/packages/synapse-sdk/src/types.ts#L132)

Whether to use CDN for retrievals (default: false)