> ## Documentation Index
> Fetch the complete documentation index at: https://docs.turtle.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Streams

> Self-serve, on-chain liquidity incentive campaigns that pay LPs in proportion to their TVL contribution.

Streams is Turtle's liquidity incentive distribution product. A protocol creates a self-serve reward campaign (a stream) that pays tokens or points to liquidity providers in proportion to how much TVL each wallet contributes over time. Contributions are tracked continuously, rewards are computed off-chain for flexibility, and each distribution is committed on-chain as a Merkle root so anyone can verify it. The contracts are non-custodial and were audited in January 2026.

If you run a vault, a pool, or any position you want LPs to deposit into and hold, a stream attaches a reward to that behavior without you building distribution infrastructure.

<Info>
  Two tokens matter in every stream. The **reward token** (or points) is what gets paid out. The **target token** is the token whose on-chain balance Turtle tracks to measure each wallet's TVL contribution. They are usually different. See the [glossary](/resources/glossary).
</Info>

## What you get

<CardGroup cols={2}>
  <Card title="For protocols" icon="rocket">
    Self-serve creation from the Client Portal or the API. Five reward models, from a fixed cost per unit of TVL to dynamic yield matching. Audience targeting through boost plugins. Pay in real tokens or in points that convert at a future TGE. Each stream holds its own funds and every distribution is verifiable on-chain.
  </Card>

  <Card title="For LPs" icon="users">
    Claim anytime, on their own schedule. A single cumulative claim always pays the full outstanding balance. Rewards stack on top of the vault's native yield. No lockup, and LPs keep custody of their position throughout.
  </Card>
</CardGroup>

## How a stream works

<Steps>
  <Step title="You configure a stream">
    Set the reward source, stream type, target vault, rate, and duration in the Client Portal or via the API. For token streams, the Turtle backend issues a signature and your wallet submits an on-chain `createStream` transaction to the StreamFactory. Point streams are created instantly, with no on-chain step.
  </Step>

  <Step title="Turtle tracks balances">
    The indexer tracks the target token balance of every holder and builds a time-series of TVL contributions.
  </Step>

  <Step title="Rewards compute about twice a day">
    A reward updater runs roughly twice daily and computes each wallet's accrued rewards from its TVL contribution and the stream rate, saved as snapshots.
  </Step>

  <Step title="A Merkle root is committed on-chain">
    The latest snapshot is committed as a Merkle root, roughly every 12 hours, which makes the distribution verifiable.
  </Step>

  <Step title="LPs claim">
    LPs submit a Merkle proof to claim, at any time. Claims are cumulative, so a single transaction always pays the full outstanding balance. Claiming can happen on Turtle, on your own front end, or automatically on the LP's behalf. See [Claiming rewards](/partner-products/streams/claiming-rewards).
  </Step>
</Steps>

Rewards begin accruing after creation, and the first snapshot lands within about 12 hours. For the full pipeline (indexer, snapshots, Merkle commitments, claim flow), see the [Streams API overview](/sdk/streams/overview).

## Reward models at a glance

A stream uses one of five types, chosen at creation. Each decides how the per-wallet reward rate is set.

| Type            | What it does                                                                                                                | Best for                                |
| --------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
| Fixed Rate      | A fixed number of reward tokens per 1,000 USD of TVL per day. Total emission scales with TVL.                               | A predictable cost per unit of TVL.     |
| Fixed APR       | An annualized rate (for example 10 percent APR), converted to a per-day token figure at each snapshot using current prices. | Advertising a headline APR.             |
| Daily Budget    | A fixed daily token budget split pro-rata across LPs, so per-user rewards fall as more TVL joins.                           | A fixed spend per day.                  |
| Airdrop         | Manual or retroactive distribution. You upload allocations yourself; there is no automatic computation.                     | One-off or retroactive rewards.         |
| Yield Match     | A dynamic rate derived from the vault's performance, in gap-fill or mirror mode (set once, then locked).                    | Topping up or doubling a vault's yield. |
| Deposit Vesting | A lump-sum bonus claimable by LPs for deposits held for some defined time period.                                           | Incentivizing long-term holdings.       |

See [Choosing a reward model](/partner-products/streams/choosing-a-reward-model) to compare the types in detail and pick one.

## Token streams and point streams

A stream is either token-based or point-based, never both.

* **Token streams** pay a real ERC-20 on-chain. The reward token must be an allowed reward token, and your funding wallet must hold the tokens the stream distributes (plus the creation fee). Reward-token selection for creation is currently supported on Ethereum, Base, Avalanche, BSC, and Sepolia.
* **Point streams** track off-chain points that can convert to tokens at a future TGE. They are created instantly with no on-chain transaction, which makes them useful before a token exists.

Target tokens are supported on a broader set of chains than reward tokens. See [Before you start](/partner-products/streams/before-you-start) for funding and chain requirements.

## Boost plugins

Boost plugins shape who earns and how much. They are applied between the base reward computation and the final Merkle tree. Six are live today.

| Plugin      | Effect                                                                                                     |
| ----------- | ---------------------------------------------------------------------------------------------------------- |
| Turtle User | Boosts wallets registered as Turtle members.                                                               |
| X (Twitter) | Boosts wallets with a verified X account link.                                                             |
| Telegram    | Boosts wallets with a verified Telegram link.                                                              |
| Whitelist   | Restricts eligibility to a defined set of wallets.                                                         |
| Blacklist   | Excludes specific wallets.                                                                                 |
| Forwarder   | Forwards rewards earned by a vault address to the vault's underlying LPs (for example a Euler Earn Vault). |

Plugins are attached through the `adapters` array at creation. See [Create a stream](/sdk/streams/create-stream) for the exact configuration.

## Where Streams is live

Streams runs on Ethereum, BSC, Avalanche, and Base, with Sepolia for testing. A new chain is added by deploying a StreamFactory and configuring an indexer webhook.

<Note>
  Streams are non-custodial. The StreamFactory deploys a separate Stream contract per campaign; each holds its own funds and exposes a permissionless claim. All admin operations are gated by an AccessManager owned by the Turtle multisig. The contracts were audited in January 2026. See the [audit reports](/resources/audits) and the [Streams API](/sdk/streams) for contract detail and addresses.
</Note>
