# Introduction


# What Is Token Streaming?

New financial horizons and monetization opportunities

Token streaming is an innovative financial technology that reimagines the way we perceive and execute transactions with digital assets.&#x20;

Unlike traditional transaction methods, which occur in discrete, singular events, token streaming introduces the concept of continuous, real-time asset transfer. It allows for a seamless flow of value, akin to streaming video or music, but in the realm of digital currencies and tokens.&#x20;

Token streaming not only enhances transaction efficiency but also opens up new possibilities for dynamic, time-based financial agreements, such as subscriptions, salaries, and contracts, executed in a decentralized and secure manner.


# What Is Fluxity?

Token streaming through the eyes of Fluxity

Fluxity is at the forefront of the movement to disrupt payment conventions and business models with token streaming, offering a specialized solution within the Stellar blockchain ecosystem. It provides a platform that facilitates the smooth and continuous flow of digital assets.&#x20;

Fluxity integrates advanced features like variable streaming rates, comprehensive streaming schedules, and vested streams into a simple and tangible UI with easy stream management capabilities.&#x20;

By leveraging the Stellar network's speed and scalability, Fluxity delivers a robust, user-friendly platform for both everyday users and developers.


# Why Choose Fluxity?

Things that set Fluxity apart

Choosing Fluxity is synonymous with embracing a future where financial transactions are not only more efficient but also inherently more flexible and aligned with the digital age's demands.&#x20;

The platform's unique capabilities, such as creating customizable streaming contracts, managing streams through user-friendly interfaces, and ensuring secure, transparent operations, make it an attractive option for anyone looking to leverage blockchain technology for real-time financial transactions.&#x20;

Additionally, Fluxity's emphasis on inclusivity and its potential to facilitate innovative economic models, such as microtransactions and decentralized finance (DeFi) applications, underscore its role as a catalyst for unlocking new business models and financial activities.


# Who Is Fluxity For?

Use cases of token streaming with Fluxity

Fluxity is designed to serve a broad spectrum of users within the digital finance ecosystem. From individuals looking for more efficient ways to manage personal transactions to businesses and organizations seeking to automate and streamline payments and contracts, Fluxity offers solutions that cater to a wide range of needs.&#x20;

Whether it's enabling artists to receive real-time royalties, facilitating seamless salary distributions in corporations, supporting new forms of crowdfunding, or providing the most flexibility for subscription services that would benefit both service providers and consumers, Fluxity's versatility makes it an essential tool for anyone interested in exploring the potential of token streaming to transform financial interactions.


# Getting Started

How to setup Fluxity and start token streaming

The first thing you need to consider for using Fluxity is that it currently supports Futurenet, a new Stellar network.

To start using Fluxity:

* Install the Freighter extension for your browser,
* Create a new wallet or import an older one to Freighter,
* Click "Launch App" from Fluxity's [homepage](https://fluxity.finance/).
* Click "Connect Wallet" from the menu.
* Confirm connecting your wallet to Fluxity from Freighter.
* All done! Happy streaming :)


# Roadmap

How Fluxity evolves with time

According to the team's goals, Fluxity will reach three milestones, each taking the app to a higher level of maturity.

### V1: Initial release

***Q1 2024***

**Goal**: Showcasing smooth token streaming and management with Fluxity

**Features**:

* Scheduled streams
* Non-cancellable streams
* Vesting
* Cliff time
* Back-end API

### V2: Feature expansion

***Q2 2024***

**Goal**: Expanding Fluxity's capabilities for the most token streaming customizability

**Features**:

* Off-chain tracker
* Batch streaming
* Auto transferring
* Hooks
* NFT streams
* Address Book
* SDK

### V3: Integration

***Q3 2024***

**Goal**: Extending Fluxity's capabilities for maximum utility and easy integration by other businesses

**Features**:

* Indefinite streams
* Interest accrual from lending pools
* Off-chain payment gateway without Debt/Buffer fee
* Shopify plugin
* WordPress Plugin


# Features

The set of things you can do with Fluxity


# Cancellable Streams

In Fluxity, you can set up various types of streams to manage how digital assets or tokens are distributed over time. These include:

* **Cancellable Streams**: The creator can terminate the stream at any moment (unless all tokens have already been released to the receiver, rendering cancellation redundant). For example, an employer might set up a cancellable stream for an employee's salary, allowing for immediate termination if the employee leaves the company. Unlike traditional payment methods, payments are made continuously, providing the employee with a steady flow of income and a guarantee of available funds.
* **Non-Cancellable Streams**: Once established, these streams run their course until the end date, with no option for early termination. This ensures that all tokens will eventually be distributed to the receiver. A practical use case is for blockchain projects conducting token airdrops, intending to gradually release tokens to community members without causing sudden price fluctuations in the market.
* **Time-Bound Cancellable Streams**: These offer a middle ground, where the stream can only be canceled after a specified date but before the end date. This setup guarantees that the creator cannot abruptly stop the stream without notice yet retains some flexibility to terminate it within a defined timeframe. This feature is particularly useful for commitments that may need reassessment or adjustment over time.

Each stream type offers different levels of commitment and flexibility, catering to various scenarios, from ensuring employee compensation to managing token distributions in blockchain projects. Fluxity's protocol facilitates these diverse needs, providing a secure and transparent mechanism for real-time financial transactions.


# Standard Streams

Streams represent a method for transferring tokens between addresses in a manner that spreads the transfer over time rather than instantaneously. In other words, tokens are gradually unlocked for the receiver at regular intervals, meaning they gain access to a portion of the tokens every second rather than receiving the entire amount at once.

To initiate a new stream, the creator must first deposit the tokens they intend to transfer into the Fluxity contract. This process requires initial approval, which is why users must complete an "Approve Token" transaction before they can proceed with the "Create Stream" transaction on the Fluxity dashboard.

The Fluxity contract is designed to be open-source and ownerless, ensuring transparency and security. As such, no one can confiscate the tokens except for the designated receiver or the creator, who retains the option to cancel the stream if it has not yet reached its conclusion. This structure provides a secure and flexible framework for token distribution, safeguarding the interests of both the sender and the receiver.


# Vesting

Vesting is another way of creating streams in Fluxity. The difference is that instead of tokens getting unlocked every second,  they unlock every day/week/month/year based on the preferred vesting rate at the time of the stream creation.

The current rates that are selectable are:

* Daily = 86400 seconds
* Weekly = 604800  seconds
* Monthly = 2592000 seconds
* Quarterly = 10368000 seconds
* Annually = 31536000 seconds


# Cliff Time

Cliff is another feature that can be added to any stream for free. The cliff time withholds the flow of the stream until it reaches the cliff time. After the cliff time arrives, all the tokens that were supposed to be streamed until that time will be unlocked instantly at the cliff time, and the rest of the stream will continue normally.

A standard or vested stream can have a cliff time set during the stream creation. Note that the cliff time must be greater than the start date and lower than the end date.


# Off-Chain Tracker

Fluxity API tracks all streams and stores them in the database. This way, it will be easier for users to access their data on the dashboard. Other than that, each data entry on the Soroban network has a TTL (time to live), and if nobody extends that TTL, the data will expire from the ledger. The API is responsible for extending all streams' TTLs to make sure that all streams and everything related to them will stay on the ledger for a long.

Also, the server checks whether each stream is fully settled, and if so, the server would call the `withdraw_stream` function for that stream, and the receiver would get their remaining tokens. This is possible because anyone can call `withdraw_stream` every stream, even if they are not the receiver.

The motivation behind withdrawing someone else's stream is that after a stream is marked as "settled", then there would not be a need to extend its TTL anymore. This way, the API would not be spending XLM, and the receivers would automatically get their remaining tokens.


# Fee

Fluxity API is responsible for maintaining all streams' TTLs.&#x20;

When creating a new stream, the Fluxity contract is responsible for calculating the lifespan of the stream and `transfer_from` that amount from the creator of the stream.

Here's the formula that the contract uses to calculate the fee as Stellar Lumens:

`(end date - now) / 30 days * BASE_XLM_FEE_PER_MONTH`


# Status

A stream has different statuses:

* Pending = Meaning that start\_date has not been reached.
* Ongoing = Meaning that start\_date has been reached but end\_date has not been reached.
* Canceled = Means that during Ongoing status and after calcellable\_date, the stream has been canceled.
* Settled or Expired = Meaning that the stream has reached end\_date without getting canceled.


# User Guide

How to make the most of the Fluxity app


# Claim Test Tokens

Try streaming at no cost.

To claim test tokens:

* Navigate to the app's Homepage.
* Click the "Claim Tokens" buttons from the "Claim Testnet Tokens" box.
* Click "Claim Tokens" in the modal to confirm receiving the tokens to the wallet address shown.
* Wait for a while until test tokens are received.
* You're now free to try out Fluxity's functionalities at no cost.

**Note**: You cannot claim test tokens to your wallet if you have done it before.


# Creating Streams

To stream tokens, you first need to make sure your wallet is connected. After connecting your wallet, everything else is straightforward:

* Navigate to the "Create Stream" section from the menu.
* For the current version, the linear model is set as default.
* Enter the recipient's address.
* Select the token you want to stream from the list that pops up after clicking the relevant space.
* Specify your desired rate of the stream.
* Specify if you want the stream to be cancellable by toggling on "Cancellable stream."
* Toggle on "Cliff time" if you wish and set the time. \
  *Learn more about cliff time* [*here*](/features/cliff-time)*.*
* Specify the start and end time for the stream.

  ***Note 1**: Without specifying a start time, the stream will start right after it is created.*\
  ***Note 2**: The current version does not support indefinite streams, so you need to specify the end time before being able to create the stream.*
* Click "Create Stream," approve token access, confirm stream creation, and wait until your stream is created.
* After the stream is successfully created, you will get a success message with some info about the created stream as well as a button to take you straight to the stream's details page.


# Create Vested Streams

To create vested token streams, you first need to make sure your wallet is connected. After connecting your wallet, follow the below steps:

* Navigate to the "Vesting" section from the menu.
* For the current version, the linear model is set as default.
* Enter the recipient's address.
* Select the token you want to stream from the list that pops up after clicking the relevant space.
* Specify your desired vesting rate.
* Specify if you want the stream to be cancellable by toggling on "Cancellable stream."
* Toggle on "Cliff time" if you wish and set the time. \
  *Learn more about cliff time* [*here*](/features/cliff-time)*.*
* Specify the start and end time for the stream.

  ***Note 1**: Without specifying a start time, the stream will start right after it is created.*\
  ***Note 2**: The current version does not support indefinite streams, so you need to specify the end time before being able to create the stream.*
* Click "Create Vesting," approve token access, confirm vesting creation, and wait until your vested stream is created.
* After the stream is successfully created, you will get a success message with some info about the created stream as well as a button to take you straight to the stream's details page.


# Cancel a Stream

By enabling the cancellable stream capability while creating your standard or vested stream, you may cancel an outgoing stream at any time before the start of the stream or during an active one.

* Navigate to the desired stream's details page from the "Activity History" section.
* Click "Cancel Stream" and confirm the transaction.


# Track Streaming Activity

To track your active or inactive streams, whether outgoing or incoming:

* Go to the "Activity History" page from the menu.
* Choose any of the "Ongoing," "Pending," or "Expired" tabs to view the current, future, and past streams.
* Choose the search bar or the filtering options to find the specific stream you are looking for.
* Click the stream of your desire to view more details about it.

***Note 1**: For outgoing streams, i.e. streams you created, you would see the button "*[*Cancel Stream*](/user-guide/cancel-a-stream)*" if you had activated the cancellable stream option while creating the stream.*

***Note 2**: For incoming streams, you can click the "*[*Withdraw*](/user-guide/withdraw-tokens)*" button to transfer the tokens received so far from Fluxity to your wallet.*


# Withdraw Tokens

By navigating to the details page of an incoming stream, you are able to transfer tokens received so far to your wallet simply by clicking the "Withdraw" button.

The button will be deactivated in case there are no tokens left to withdraw or the stream is pending.


# FAQ

Answers and solutions for your frequent questions and problems


# About token streaming

* What is token streaming?

Token streaming is a continuous, real-time flux of tokens from a sender to a receiver. In this scenario, instead of a lump-sum transfer of money for a task to be done over a time span, the payment becomes distributed over every fraction of time over the span.

* What are the major use cases for token streaming?

Token streaming is useful to incentivize consistent quality work of a service provider, while the service consumer can still have control over the portion of money not yet sent. Additionally, for subscription-based services, token streaming creates the opportunity to monetize even on seasonal users, creating a pay-as-you-go option without handling financial overhead.

* Where is token streaming better than traditional payment solutions?

Token streaming makes sense for scenarios where one party pays for services offered by the other one. Reward programs, payrolls, freelancers, and subscription services are among the prominent examples of where token streaming is more favorable.


# Using Fluxity

* What do I need to do to start streaming with Fluxity?

First, you need to install the Freighter Wallet extension. Secondly, you need to make sure you add the Futurenet network to your wallet.

* What is the Freighter extension, and how can I install it?

Freighter is a wallet extension to interact with Stellar and Soroban. You can install it from the Firefox Add-ons section or Google Chrome Store.

* Can I use Fluxity on my mobile phone?

Due to the limitations of the Freighter extension, you can only use Fluxity on a desktop or any other device that supports it. Fluxity will be available on all devices in the near future, so you can leave your email \[here] to be there first to hear about it.

* How can I get test tokens to try token streaming on Fluxity?

You can receive test tokens to try out Fluxity at no cost by clicking the Claim Test Tokens button from the Home page of the app.

* What kinds of tokens can I use in Fluxity?

All ERC20-like tokens available on Soroban or Stellar tokens bridged to Soroban can be used to create streams in Fluxity.

* Why can’t I see my test tokens in my wallet?

You need to manually add the test token’s address to your Freighter Wallet. You can find the relevant addresses from the stream details on the Activity History page.

* What networks does Fluxity support?

Fluxity currently supports standard Futurenet networks supported by Stellar.

* Can I stream between different blockchains?

No. However, you can use your trustline in Stellar on Futurenet.


# Creating token streams

* What is the difference between linear and exponential streaming?

In the linear streaming model, the rate of streaming stays the same throughout the process; however, in the exponential model, the rate increases over time following a certain formula. Note that exponential streaming is not currently available on Fluxity.

* What happens if I don’t set a start time for my streams?

Without picking a start time, the stream starts immediately after it is created.

* What is vesting?

Vesting is a type of token streaming with the lump-sum transfer of tokens according to your desired parameters.

* What is the application of vesting?

Vesting is a method for distributing tokens over time to stakeholders, incentivizing long-term involvement and reducing the risk of market volatility by preventing large, immediate sell-offs.

* What happens if I set a cliff time?

After setting a cliff time, the amount of stream from the stream start time will be withheld until the arrival of the cliff time, at which the accrued amount is sent immediately. The remaining of the stream will continue normally. To understand it better, see the figures below.

* When do I need to set a cliff time?

Depending on the intended purpose, setting cliff times could be useful for times when the stream is created to provide proof of funds for the sender, but it is withheld until certain criteria are met by the stream receiver until a specific time.

* Can I create vested or normal streams without an end time?

It is currently not possible to create a stream without picking an end time for it, but indefinite streams will be possible with Fluxity in the near future.

* Do I need to have the total amount of a stream to be able to start streaming?

Yes. The total amount of a vested/normal stream should be available in your wallet when you create it. The amount will be locked in Fluxity’s smart contract after creating the stream as proof of funds.

* What is the advantage of token streaming when all the tokens required for the stream are taken from the wallet in advance?

By locking all the required tokens in the contract at once, token streaming acts as proof of funds for the service provider (payee), while the service consumer (payer) would still be in control of their funds.

* How can I stream tokens that are in my wallet but do not show on the token selection window?

By entering the token’s contract address, you can stream tokens available in your wallet that do not show on the token selection window.

* Where can I track the streams I created?

You can navigate to the Activity History page to easily track all the active, pending, and expired streams. Alternatively, you can click on the wallet icon in the app and click Open in Explorer to see your wallet activity.


# Tracking your activity

* How can I see the streams I created?

The easiest way is to navigate to the Activity History page and easily find all the past, present, and future streams you created. Additionally, you can see your streams in the Explorer using your wallet address.

* Where can I find a record of token streams sent from another address to my address?

You need to navigate to the Activity History page and easily find all the past, present, and future incoming streams.

* How can I cancel a stream that I created?

If you enabled the “Cancellable” option for your stream at the time of creating the stream, you could find the desired ongoing or pending stream in the Activity History section and click the Cancel Stream button from the stream details page.

* Do assets automatically transfer to the wallet after canceling a stream?

Yes. After canceling a stream, the remaining tokens of the sending end and withdrawable tokens for the receiving end will be automatically transferred to their corresponding wallets.

* Why can’t I see the streams I receive from another address in my wallet?

You can only see the tokens you have withdrawn from the incoming streams. If you still cannot see those tokens, you need to add their address in Freighter manually.

* How can I find all the expired streams with withdrawable tokens?

All streams with withdrawable tokens are marked with the \[coin] icon on the Activity History page. By navigating to the expired tab of the page, you can select the “Unclaimed tokens” filter to find them.

* How can I withdraw tokens from streams?

By entering the details page of all the active streams you receive, you can click the Withdraw button to transfer the received tokens to your wallet. For expired received streams, of course, the Withdraw button would only work for streams with unclaimed tokens.


