# Streaming

## User Streaming <a href="#user-streaming" id="user-streaming"></a>

User streaming enables individuals to set up continuous token flows to recipients.

Access user streaming at [stream.realms.today](https://stream.realms.today/)

## Creating a User Stream <a href="#creating-a-user-stream" id="creating-a-user-stream"></a>

{% stepper %}
{% step %}

### Access Streaming

Navigate to [stream.realms.today](https://stream.realms.today/)

and connect your wallet.
{% endstep %}

{% step %}

### Configure Stream <a href="#step-2---configure-stream" id="step-2---configure-stream"></a>

Set up your stream parameters:

* **Recipient**: The wallet address receiving the stream
* **Token**: The token to stream (SOL, USDC, etc.)
* **Amount**: Total amount to be streamed
* **Duration**: Time period for the stream (days, weeks, months)
* **Start Date**: When the stream begins
  {% endstep %}

{% step %}

### Fund and Start <a href="#step-3---fund-and-start" id="step-3---fund-and-start"></a>

Deposit the tokens and activate the stream.
{% endstep %}
{% endstepper %}

### Managing Your Streams <a href="#managing-your-streams" id="managing-your-streams"></a>

* **View Active Streams**: Monitor ongoing streams and remaining balances
* **Cancel Stream**: Stop the stream and reclaim remaining tokens
* **Withdraw**: Recipients can withdraw accumulated tokens at any time

## DAO Streaming <a href="#dao-streaming" id="dao-streaming"></a>

DAO streaming enables governance-controlled token distribution for grants, salaries, vesting, and other recurring payments.

* **User Side**: View and manage your incoming DAO payments at [v2.realms.today/my-payments](https://v2.realms.today/my-payments)
* **DAO Side**: Create and manage streams through DAO instructions

#### Use Cases <a href="#use-cases" id="use-cases"></a>

* **Contributor Payments**: Pay team members over time
* **Grant Distribution**: Stream funds to grant recipients
* **Token Vesting**: Distribute vested tokens to stakeholders
* **Partnership Deals**: Gradual payments for long-term agreements

### Creating a DAO Stream <a href="#creating-a-dao-stream" id="creating-a-dao-stream"></a>

{% stepper %}
{% step %}

### Step 1 - Create Proposal

Submit a proposal to create a new stream from the DAO treasury.
{% endstep %}

{% step %}

#### Define Parameters <a href="#step-2---define-parameters" id="step-2---define-parameters"></a>

Specify stream details in the proposal:

* **Recipient Address**: Who receives the stream
* **Treasury Account**: Source of funds
* **Token and Amount**: What and how much to stream
* **Schedule**: Duration and start time
  {% endstep %}

{% step %}

#### Community Vote <a href="#step-3---community-vote" id="step-3---community-vote"></a>

DAO members vote on the streaming proposal.
{% endstep %}

{% step %}

#### Execution <a href="#step-4---execution" id="step-4---execution"></a>

If approved, the stream is created and starts automatically.
{% endstep %}
{% endstepper %}

### Managing DAO Streams <a href="#managing-dao-streams" id="managing-dao-streams"></a>

* **View All Streams**: See active streams from the treasury
* **Cancel via Proposal**: Stop a stream through governance vote
* **Modify Streams**: Change parameters through new proposals

DAO streams can only be created, modified, or cancelled through governance proposals.

### Stream Details <a href="#stream-details" id="stream-details"></a>

#### How Tokens Accumulate <a href="#how-tokens-accumulate" id="how-tokens-accumulate"></a>

Tokens accumulate linearly over time. For example, a 30-day stream of 3000 USDC releases 100 USDC per day.

#### Withdrawal <a href="#withdrawal" id="withdrawal"></a>

* Recipients can withdraw accumulated tokens anytime
* No need to wait until stream completion
* Partial withdrawals are supported

#### Cancellation <a href="#cancellation" id="cancellation"></a>

When a stream is cancelled:

* Recipient keeps already-streamed tokens
* Remaining tokens return to the sender (user or DAO treasury)

{% hint style="warning" %}
Always ensure sufficient token balance in the source account for the entire stream duration.
{% endhint %}
