LINK TO DECK: LINK TO THE DECK
Developed by Elio Jordan Lopes and Ramesh Sachan
Enabling your $cUSD to flow like the river in real time. Let's make money more beautiful than ever.
View the project demo on YouTube
How to run locally
-
Navigate to interface in your terminal using
cd interface
-
yarn && yarn dev
Our contracts have been deployed to Celo Alfajores Testnet
Celo Alfajores Testnet 0x671580C2d0e99Bb17690B5D4D805F1902d26f5b0
- Stream cUSD from one wallet to another in real time
- You can connect your wallet to the platfrom running on Celo Alfajores Network.
- You can view an ongoing recurring stream by referencing to the created streamID else you can create a new stream.
- To start the stream, you have to enter:
- The receipient's wallet address
- The token that you want to stream. For now we enable cUSD flows on Alfajores Testnetwork
- The amount of token you want to stream (say: 10cUSD)
- The time you want the stream to end. Let's say you start the stream at
x
seconds. You choose a time interval ofx+T
for the stream to end, where bothx
andT
can be measured in seconds and can amount to minutes, hours, days, weeks, months, years, and even centuries. - The token stream would be live for
T
duration of time - The platform also displays the
total number of token streamed
and theamount of tokens remaining for withdrawal
in real time. - If
y
is the total number of tokens to be streamed, then you can withdraw a certain amount of token, let's sayx
tokens outy
at a time, and then, anotherz
amount of tokens out of the remainingy-x
tokens.Tokens
here refers to$cUSD
on Alfajores Test Network. - Once the stream ends, the entire token is to be withdrawn to the receipients wallet, and then the platform would redirect you to create a new stream.
A money stream has six properties:
- Sender.
- Recipient.
- Fixed deposit amount.
- ERC-20 token used as streaming currency.
- Start time
- Stop Time
A. Smart Contract Deployed to Celo Alfajores Testnet 0x671580C2d0e99Bb17690B5D4D805F1902d26f5b0
B. We use Celo Contract Kit
and Truffle
to deploy our contracts to Celo Alfajores testnet, web3js
, wagmi.js
and ethers
to interact with the smart contract.
C. The front end is built on React
, and Chakra UI
, and many third part libraries.
- To enable multiple streams and display status of recurring multiple streams in real time.
- To enable streaming for other tokens on the Celo Network, like $CELO, $cEUR, $cREAL, $PACT, and many more.
- To expand the use cases of LightningCelo to projects building on Celo
- Sender's wallet has 14 $cUSD. Sender wants to start a stream of 5 $cUSD
- Sender enters the details of the receipient, start and end time, and amount to be streamed, and creates a recurring stream of tokens in real time to the receiver's wallet.
-
Stream starts initially with 0 cUSD streamed and 0 cUSD withdrawable, local time
23:30pm (IST - Indian Standard Time)
-
Middle of the stream, we see that 1.6cUSD has been streamed already and 1.6cUSD is withdrawable.
-
Meanwhile receiver claimed 1.63cUSD of the stream, midway, and the stream finished in two minutes (
23:33 local time IST- Indian Standard Time
). The receiver is yet to claim 3.37 cUSD. After claiming the remaining cUSD, the streamID, expires and the user can create another stream -
So the protocol enables a user to stream money in real time as well as withdraw money at any instant. Look at the potential use case above. Also watch the demo video linked above.