# calculate

> **calculate**(`input`): [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`PieceCID`](/reference/filoz/synapse-core/piece/classes/piececid/)\>

Defined in: [packages/synapse-core/src/piece/calculate.ts:23](https://github.com/FilOzone/synapse-sdk/blob/e6b9edfa98a2f726e470425e05558279dfe64dfb/packages/synapse-core/src/piece/calculate.ts#L23)

Compute the PieceCID of `input`. Always returns a Promise. For the
synchronous bytes case, use [hasher](/reference/filoz/synapse-core/piece/functions/hasher/) directly.

## Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | [`CalculateInput`](/reference/filoz/synapse-core/piece/type-aliases/calculateinput/) |

## Returns

[`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`PieceCID`](/reference/filoz/synapse-core/piece/classes/piececid/)\>