Skip to main content
Every stream runs on the same infrastructure: an indexer tracks the target token balance of every wallet, a reward updater computes accrued rewards about twice a day, and a Merkle root is committed on-chain so LPs can claim. What changes between streams is what you pay for (the reward type) and how the rate is set (the mechanic). Pick by your goal, not by the math.

Quick chooser

Every model can pay either a token or points (points support the mechanics that need no token price — Fixed Rate, Daily Budget, and Airdrop), and every model tracks a target token whose balance measures each wallet’s contribution. The reward source and the target token are independent of the model you pick. See Before you start and the glossary for the terms used here.

TVL-based streams

TVL-based streams pay by token value held — holders earn continuously against their balance, and each Merkle commit makes newly accrued rewards claimable. Choose one of the mechanics below.
The Create Stream dialog with TVL-Based selected, showing Fixed APR, Fixed Rate, and Daily Budget under Standard Rewards, and Target APR and Reference Rate under Gap-Fill Rates.

Selecting a mechanic for a TVL-based token stream: standard rewards and gap-fill rates.

Fixed Rate

You set a flat number of reward tokens per 1,000 USD of TVL per day. Each wallet earns in direct proportion to how much it holds, and your total emission rises and falls with the pool TVL. Cost per unit of TVL stays constant no matter how large the pool gets. Best for: a predictable, fixed cost for each dollar of liquidity you attract. Example: you pay 2 reward tokens per 1,000 USD per day. A wallet holding 50,000 USD of the target token earns 100 tokens a day. If the pool grows, your daily spend grows with it, but the rate each LP sees never changes. Decision parameter: tokensPerUSD. See Create a stream (API) for the exact format and base-units rules.

Fixed APR

You set an annualized percentage rate, for example 10 percent APR, paid on top of the native rate. At each snapshot, Turtle converts that APR into a per-day token figure using current prices, so the headline rate holds even as the token price moves. This is the model to use when you want LPs to see a clean APR number. Best for: advertising a headline APR in your marketing and on listings. Example: you set 10 percent APR. A wallet holding 50,000 USD of TVL earns roughly 5,000 USD worth of reward tokens over a year, paid out continuously as the stream runs. The token amount per day shifts with price so the percentage stays at 10. Decision parameter: apr. See Create a stream (API) for the exact format.

Daily Budget

You fix a daily token budget and it is split pro-rata across all participating LPs. The pool total stays flat, so per-user rewards fall as more TVL joins and rise if TVL leaves — the APR it implies moves with TVL. Your spend is capped per day regardless of how much liquidity shows up. Best for: a fixed daily spend where you want to cap total cost, not cost per LP. Example: you budget 1,000 tokens a day. With 10 LPs holding equal amounts, each earns 100 tokens a day. If 10 more equal LPs join, the same 1,000 tokens now split 20 ways, so each earns 50.
The total emission is computed automatically from the daily budget times the duration, so you do not specify a total amount for this type.
Decision parameter: tokensPerDay. See Create a stream (API) for the exact format.

Target APR

A gap-fill rate. You set a target APR, and the stream pays only the difference between the target and the vault’s native APY, measured against a trailing average over a lookback window you choose: 7 days, 1 month, 3 months, or 6 months. The window changes the calculation, not just the chart — a longer lookback smooths the native APY the gap is measured against. If the vault yields 4 percent and your target is 4.75 percent, the stream pays the gap. If the vault already meets or exceeds the target, the stream pays nothing — the boost is never negative, and you never overpay when the vault is already performing. Best for: guaranteeing depositors a minimum total yield without overpaying.
The Target APR configuration screen showing the native APR curve, a draggable target line, the reward boost gap, estimated TVL, duration, and the estimated stream cost panel.

Configuring a Target APR stream: drag the target line above the native APY; the stream pays only the shaded gap.

Target APR measures the gap against the target token’s own native yield, so it is only offered for targets that have one. If your target has no native yield, a gap against zero is just a flat rate — use Fixed APR instead.
Decision parameters: targetApy, plus the lookback window (7 days / 1 month / 3 months / 6 months) for the trailing native-APY average. See Create a stream (API) for each. In the API this runs under the Yield Match type with targetApy set.

Reference APR

The second gap-fill rate. Instead of a fixed target, the stream tracks another vault’s rate plus an optional offset, and pays only the shortfall between that reference and your vault’s native yield. Best for: matching or beating a competing vault’s yield without overpaying when your own vault keeps up. Decision parameters: in the API this runs under the Yield Match type with targetApy unset — set the reference vault and an optional apyOffset. See Create a stream (API).
For gap-fill streams, the configuration is locked at creation and cannot be changed later, so decide the target or reference before you create the stream.

Deposit-based streams

Deposit-based streams pay by deposit characteristics rather than ongoing value held: you reward how long depositors commit. You define duration tiers — each tier is a holding period with its own rate — and rewards for each tier unlock at its cliff, the end of that tier’s window.
The deposit-based configuration screen showing a stepped reward-APR-by-tier chart, per-tier hold-days and rate inputs, the blended reward APR, and the estimated stream cost.

Configuring duration tiers for a deposit-based stream: each tier pays its rate over its window, unlocking at its cliff.

The tiers run in series, measured from each deposit’s own arrival: with tiers of 14 days at 0 percent, 30 days at 3 percent, and 60 days at 5 percent, a deposit earns nothing over its first window, then each later tier’s rate over that tier’s window, claimable at the end of it. There is no mid-cliff claiming, and withdrawing before a cliff forfeits that tier’s unvested rewards. The editor shows the blended reward APR across the full series and the total time to claim everything. Best for: sticky liquidity — paying more to depositors who stay longer, without paying for hot money. Example: you set three tiers: hold 14 days for 0 percent, 30 days for 3 percent, 60 days for 5 percent. A depositor who stays 60 days earns the blended rate across all three windows; one who leaves on day 20 earns only what vested at the first cliff. Today the rate per tier reads as a percent APR (Fixed APR) or an amount per 1,000 USD per day (Fixed Rate). Tiering by deposit size, gap-fill rates, and a daily budget for deposit-based streams are visible in the flow but not yet available.
The estimated stream cost for a deposit-based stream assumes every deposit completes all tiers — it is the ceiling on what the stream can pay, not a forecast. The budget is allocated to deposits first in, first out, paying day by day while it lasts; when the budget runs out the stream stops.

Airdrop

A manual or retroactive distribution with no automatic reward computation. You decide the allocations yourself and upload them through a dedicated snapshot endpoint — as a CSV or by tag. Use it to reward past activity or to run a one-off distribution on your own terms. Best for: setting allocations by hand, rewarding retroactively, or running a one-time payout. Example: you decide to reward 500 early depositors with a fixed grant each, based on a snapshot you took last month. You upload that allocation list and LPs claim against it. There is no continuous accrual. Allocations are uploaded through a dedicated snapshot endpoint rather than computed from a rate. A single airdrop stream can carry multiple snapshots and payouts. See Create a stream (API) and the Streams API overview for how to submit them.

Paying in points

Point streams pay units of a points program instead of a token. Because points have no market price until TGE, the mechanics that price the reward asset — Fixed APR and the gap-fill rates — are not available. Points support:
  • Fixed Rate: a fixed number of points per 1,000 USD of TVL per day.
  • Daily Budget: a flat daily pool of points, split pro-rata.
  • Airdrop: a one-time points distribution defined by a recipient list.
Point amounts are denominated in points throughout; a dollar valuation is optional and never gates creation.

Target your campaign

Whatever model you pick, the final configuration screen shapes who earns and how much: eligibility by deposit route (All Deposits, Turtle Only, or Select Distributors), whitelist and blacklist controls with OFAC screening on by default, percentage bonuses for linked X or Telegram accounts, referrals, and holders of a chosen asset, and reward forwarding to route a vault’s earned rewards through to its underlying LPs. See the overview for the full list and Create a stream for where each control appears in the flow.