Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New BSIP: TOKEN STREAM transfer type #128

Closed
OpenLedgerApp opened this issue Nov 26, 2018 · 6 comments
Closed

New BSIP: TOKEN STREAM transfer type #128

OpenLedgerApp opened this issue Nov 26, 2018 · 6 comments

Comments

@OpenLedgerApp
Copy link
Contributor

Motivation

For specific services there might be a need to have a regularly paid transfer: daily, hourly or weekly. A good example would be running a worker for BitShares.
A similar mechanism could be useful for helping services with automatic regular payments.

Abstract

A new type of a transfer transaction - token stream is created - to transfer certain amount of an asset for a specified period of time.
The following parameters can be specified:

  • Total amount
  • Transfer duration (seconds)
    or
    Transfer speed (amount/second)
  • Transfer frequency (seconds between transfers)

The Sender can pause or cancel the stream at any time.
The of Receiver the transaction can cancel the stream at any time as well.

Both Sender and Receiver can see a list of all active streams in their UI.

Example:

A stream of 1000 "Super" assets is configured from account Sender to account Receiver:

Transfer duration: 10 days (864 000 seconds)
Transfer speed is calculated as 0.00115 assets per second.
Transfer frequency is specified as 1 hour (3600 seconds)
After signing of the transaction, 
1000 Super tokens will be frozen on the Sender account, 
4.166 Super assets will be sent from Sender to Receiver each hour.

This shall be similar to worker functionality, but applied to a specific account and potentially utilized with a higher frequency (workers are paid daily, the token stream should be done hourly or even more frequent).

Please let us know your thoughts,
OpenLedger team

@cogutvalera
Copy link
Member

this can be implemented as 3rd party app

@cogutvalera
Copy link
Member

Why we need to change BitShares core to integrate it ?

@cogutvalera
Copy link
Member

I've got answer on my own question in this comment of @jmjatlanta #126 (comment)

@abitmore
Copy link
Member

I think the withdraw_permission operations can already serve most of functionalities described in this issue. BTW automated recurrent transfer is expensive so we should think about how to discourage abuse (e.g. high fee) in advance if want to implement such a feature.

@OpenLedgerApp
Copy link
Contributor Author

thanks, @abitmore. I can see quite a lot of different discussion going on withdraw_permission.
We will look into this.

@OpenLedgerApp
Copy link
Contributor Author

It turns out that most of the suggested functionality is already implemented in core.
The original idea was described here:
bitshares/bitshares-core#540
There are great use cases done by @TheTaconator here :
https://github.com/TheTaconator/bsips/blob/bsip42-draft/bsip-0042.md
And the UI is in the works for this feature:
bitshares/bitshares-ui#30
So, I am closing the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants