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.
What you get
For protocols
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.
For LPs
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.
How a stream works
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.Turtle tracks balances
The indexer tracks the target token balance of every holder and builds a time-series of TVL contributions.
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.
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.
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.
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. |
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.
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). |
Kaito Yapper and Staking plugins are planned, not yet live.
adapters array at creation. See Create a 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.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 and the Streams API for contract detail and addresses.
Get started
Before you start
Prerequisites, supported chains, and what to fund before creating a stream.
Create a stream
Walk through launching a campaign from the Client Portal.
Choosing a reward model
Compare the five stream types and pick the right one for your goal.
Claiming rewards
How LPs receive rewards: on Turtle, on your front end, or claimed for them.
Streams API
Request bodies, parameters, and the full create-and-claim reference.

