Skip to main content
This page walks through launching a stream end to end. There are two ways to do it. The no-code path runs entirely through the Client Portal and is the focus here. If you would rather create streams from your own backend, the API path covers the same flow programmatically. Before you start, confirm your organization is approved and has the streams-create permission, and (for token streams) that the creating wallet already holds enough reward token to cover the total plus the creation fee. See Before you start.

Choosing a reward model

Decide between the five stream types before you configure rates.

Create from the API

Build the request, get the signed transaction params, and broadcast it yourself.

Create from the Client Portal

1

Open the Client Portal and connect your wallet

Go to dashboard.turtle.xyz and connect the wallet you will create the stream from. For token streams this wallet pays the reward token and the creation fee, so connect the one that holds the funds on the right chain.
Reward token selection is currently supported on Ethereum, Base, Avalanche, BSC, and Sepolia. Make sure your wallet is on one of these chains before you continue.
2

Start a new stream

From the streams area, start a new stream to open the configuration flow.
3

Choose your reward source

A stream pays either a reward token or points, never both.
  • Reward token: pays a real ERC-20 on-chain. The token must be an allowlisted reward token on a supported chain.
  • Points: tracks off-chain points that can convert to tokens at a future TGE. Point streams are created instantly, with no on-chain transaction, no funding, and no creation fee.
Choosing points removes the later approval and signing steps, since there is no on-chain creation transaction. See Get tokens and Get points for what is available.
4

Select a stream type

Pick one of the five types. The type determines which rate field you fill in next.
  • Fixed Rate: a set number of reward tokens per 1,000 USD of TVL per day.
  • Fixed APR: an annualized rate, converted to a daily token figure at each snapshot.
  • Daily Budget: a fixed daily token budget split pro-rata across all LPs.
  • Airdrop: manual or retroactive allocations you upload yourself.
  • Yield Match: a dynamic rate derived from the vault’s performance.
For the tradeoffs and how to pick, read Choosing a reward model.
5

Configure rewards

Set the target vault or token, the rate for your type, and the schedule.
  • Target: the vault or token whose on-chain balance is tracked to measure each wallet’s TVL contribution (the target token). This is distinct from the reward token you pay out.
  • Rate: the field depends on your type. Fixed Rate takes a tokensPerUSD value, Fixed APR takes an apr, Daily Budget takes a tokensPerDay, and Yield Match takes a targetApy (gap-fill mode) or an optional apyOffset (mirror mode). Airdrop has no rate; you upload allocations later through a dedicated snapshot endpoint.
  • Schedule: a start time and an optional end time.
See Create a stream for exact formats and base-units rules.
For Daily Budget, the total is computed automatically from the daily budget times the duration, so there is no separate total amount to enter.
Start and end times must align to 15-minute boundaries in UTC. If an end time is set, it must be at least one hour after the start.
6

Add boost plugins (optional)

Boosts adjust rewards between the base computation and the final distribution. Common ones:
  • Turtle User: boost wallets registered as Turtle members.
  • X (Twitter): boost wallets with a verified X account link.
  • Telegram: boost wallets with a verified Telegram link.
  • Forwarder: forward rewards earned by a vault address through to that vault’s underlying LPs (for example a Euler Earn Vault).
Boosts are configured through the adapters array. See Create a stream for the full plugin list and parameters.
7

Set restrictions (optional)

Limit who can earn from the stream.
  • Whitelist: restrict eligibility to a defined set of wallets.
  • Blacklist: exclude specific wallets.
8

Review the summary

Check the reward source, type, target, rate, schedule, and any boosts or restrictions before you commit anything on-chain.
For token streams, the creating wallet must already hold the full total amount plus the creation fee. For Yield Match, the mode (gap-fill or mirror) is locked at creation and cannot be changed later.
9

Approve the reward token and sign the transaction

For token streams, approve the reward token spend, then sign the createStream transaction. The Turtle backend issues a signature and your wallet submits the transaction to the StreamFactory. Point streams skip this step and are created immediately.
10

Confirmation

The stream is live. The indexer begins tracking target token balances, and the first reward snapshot lands within about 12 hours. Track participants and accrued rewards from the Distribution Dashboard. Once the first Merkle root is committed, LPs can start claiming; see Claiming rewards for the three ways to offer that.
Rewards accrue from creation, but the first claimable balance appears only once the first on-chain Merkle root is committed, roughly every 12 hours.

Launching from a multisig (Safe)

If the creating wallet is a Safe, create the stream through the API rather than signing in the browser. Call Create a stream to obtain the signed txParams, then submit the reward token approval and the createStream call from the Safe Transaction Builder to the StreamFactory for your chain. The submitting Safe must match the expected sender encoded in the signed params, or the transaction will revert. Contract addresses and the full broadcast walkthrough are in Create a stream.

Prefer to integrate programmatically?

Create a stream via the API

Request bodies, signing, base-units rules, and the StreamFactory broadcast guide for every chain.