> For the complete documentation index, see [llms.txt](https://hone.gitbook.io/hone-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hone.gitbook.io/hone-docs/types-of-token-streams.md).

# Types of token streams

There are two main types of token streams: **Fixed** or **Transferrable**.

### Fixed

Fixed token streams are *fixed* to a single recipient account at creation. This means that once the stream has been created the only account allowed to withdraw from the stream as tokens unlock is the recipient account assigned at creation.&#x20;

### Transferrable

The ownership of transferrable streams is, as the name suggests, *transferrable* between Algorand accounts. Each transferrable stream is associated with a separate escrow smart contract called a Vault and an NFT we call the Vault Key. When unlocked tokens are withdrawn from a transferrable stream they are only able to be withdrawn into the Vault that is associated with that stream. The account who currently holds the Vault Key can then to claim unlocked tokens from the Vault. The Vault Key can be transferred between any Algorand account that has opted-in to the Vault Key asset.&#x20;

## Differences

### Terminating streams

Besides their obvious differences, a key difference between a Fixed and a Transferrable stream is that a Fixed stream can (optionally) be allowed to be *terminated*. If this checkbox is checked when creating a Fixed stream, the deployer of the stream can terminate the stream at any time. Once terminated, any unlocked—though yet to be withdrawn—tokens are transferred to the recipient account. The remaining locked tokens are transferred back to the original deployer of the stream.&#x20;

Most streams should probably not have termination enabled, however it is useful for salary streams that may be set for 6 or 12 months (essentially scheduled transfers) but may need to be terminated if the project contributor ceases to work for the project before the end of the stream. In this situation, terminating a stream makes sense.
