Cross Chain Streaming using Superfluid

A set of features built on top of the SuperFluid protocol to allow seamless cross-chain streaming and real-time asset conversion.

The problem Cross Chain Streaming using Superfluid solves

What may happen is that a user may have some funds on a chain (say mainnet) and wished to interact with a DApp deployed on another chain (like polygon). In the case of SuperFluid streams, a conventional method would require the user to manually transfer the tokens from one chain to another using a Token Bridge, however, this is not ideal and defeats the purpose of gasless streams.

The project aims to solve this issue by utilizing Pools of SuperTokens deployed on various chains that would act as entry and exit points of cross-chain streams. This is done by starting a stream from an EOA to a Pool on the same chain, and then starting an equivalent stream on another from the chain's Pool to the EOA on that chain, effectively starting a cross-chain stream b/w the EOAs involved. This allows users to seamlessly start a SuperFluid stream from one chain to another without manually transferring the tokens to the second chain.

The use of token pools also allows real-time asset conversion, for example converting a stream of DAIx to an equivalent USDTx stream. This is done by starting a stream of DAIx to a Pool, and then starting an equivalent stream of USDTx back to the user from the pool, which the user is then free to use for their usecase. This is useful in situation where a DApp may only accept streams in a particular token, one which the user may not have at the moment.

The pools act as reserves of SuperTokens, and the liquidity is provided by LPs. LPs are incentivised to give their tokens to the Pool by paying them a fraction of all streams opened using the system, in proportion to the LP's contribution. (this is still in development).

Challenges I ran into

The architecture currently depends on a web2 service to coordinate between the Pools. While this is not ideal I went this route due to my relative inexperience with Cross Chain systems and to quickly come up with a PoC of the idea and see if it actually holds merit. I'm still looking into better ways to coordinate b/w Pools deployed on different chains in a more decentralized way.