Author Topic: Dividend feature timeline?  (Read 9902 times)

0 Members and 1 Guest are viewing this topic.

Offline Chuckone

  • Sr. Member
  • ****
  • Posts: 314
    • View Profile
The challenge is that the single operation is "unbounded" in the number of accounts it would have to credit.   If there are 1M people that need to receive the dividend then that single operation could take a very long time to apply and that would disrupt the flow of the network.

Recognizing this as something that would be nice to automate I will think about it.  It is not on our current issue list on github though.

I feel it's an essential feature in order for Bitshares to operate as an asset exchange market.

Dividends are essentially outside money regularly flowing into Bitshares (ie. when AAPL pays cash dividends, I'm forced to buy BitUSD with the cash and distribute to my investors, this will significantly help the valuation of BTS price.)

What you're saying is basically to emulate the dividend given by the original share from let's say AAPL, you would be buying the real stock using the money made from the UIA sale and then pay back the dividend you receive from the real asset?

Wouldn't the UIA holders be penalized by the spread and fees and receive less than intended?

Offline MrJeans

  • Hero Member
  • *****
  • Posts: 599
    • View Profile
  • BitShares: mrjeans
I'm a little late to the game with this one but its good to see people have already started discussing it.

Will this be a feature implemented on 2.0.

As a possible hack, I liked the idea of taking a snap shot of everyone who has a particular UIA.

Then share dropping a second dividend UIA and allowing people to claim their dividend.

Does this solve the transaction fees issues?

Offline BTSdac

  • Hero Member
  • *****
  • Posts: 1219
    • View Profile
  • BitShares: K1
The challenge is that the single operation is "unbounded" in the number of accounts it would have to credit.   If there are 1M people that need to receive the dividend then that single operation could take a very long time to apply and that would disrupt the flow of the network.

Recognizing this as something that would be nice to automate I will think about it.  It is not on our current issue list on github though.
I think we had have this similar feature , I don`t know how to airdrop the bts to AGS holder , PTS holder. dividend feather is very similar as this feather .


github.com :pureland
BTS2.0 API :ws://139.196.37.179:8091
BTS2.0 API 数据源ws://139.196.37.179:8091

Offline kokojie

  • Sr. Member
  • ****
  • Posts: 286
    • View Profile
ok so looks like blockchain based dividend distribution is not going to happen in the near future in Bitshares, does anyone have any suggestion on how would I easily distribute dividends to my shareholders?

Someone suggested "buyback", another person suggested "issue a new asset for dividends", not sure how these would work, can someone describe these in detail please? I need the solution to be fair, and benefits all shareholders.

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4669
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
Could this not be implemented the same way as yield is?
I do like to 'claim' rather than get some pieces while moving fund. The latter is annoying -- after you transferred all you fund out, you find there are still some left in the wallet, need to transfer again.
BitShares committee member: abit
BitShares witness: in.abit

Offline monsterer

Could this not be implemented the same way as yield is?
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4669
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
@toast recently pushed an update:
https://github.com/BitShares/bitshares/commit/bfabbd6919878b87a3e7adb8f0af8dfcb4d05206

it adds the call: wallet_asset_issue_to_addresses

maybe not what is needed here .. but it's a first step
Yes I have seen that. It's for share dropping. As BM said, maybe it's not as useful as expected. A good move though.
BitShares committee member: abit
BitShares witness: in.abit

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
@toast recently pushed an update:
https://github.com/BitShares/bitshares/commit/bfabbd6919878b87a3e7adb8f0af8dfcb4d05206

it adds the call: wallet_asset_issue_to_addresses

maybe not what is needed here .. but it's a first step

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4669
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
Arhag's post makes sense.
It could be a single transaction, withdraw the required amount of asset from the issuer's account and deposit it to a special account/address, which claims the target for share dropping (E.G. all BITAPPLE owners by a time, so we know the total supply is a fixed number) and a release date. After the date, all owners can claim his part. Expiration date is optional.

//Edit
We need some API's here:
wallet_issue_dividend <amount> <asset> <issuer> <release_time> <event_name> <description> <target_asset> <target_asset_snapshot_time> [expire_time]
blockchain_list_dividends <target_asset> [event_name] [some_time_range]
wallet_list_dividends [account_name] [target_asset] [event_name] [time_range]
wallet_claim_dividend <event_name> [account_name]
wallet_claim_expired_dividend <event_name>
« Last Edit: March 09, 2015, 03:38:12 am by abit »
BitShares committee member: abit
BitShares witness: in.abit

Offline sittingduck

  • Sr. Member
  • ****
  • Posts: 246
    • View Profile
I think dividends are a core feature that is needed by corporate entities.   Most dividend checks expire in 90 days to 180 days if they are not cashed.   

I like the idea.


Sent from my iPhone using Tapatalk

Offline kokojie

  • Sr. Member
  • ****
  • Posts: 286
    • View Profile
The challenge is that the single operation is "unbounded" in the number of accounts it would have to credit.   If there are 1M people that need to receive the dividend then that single operation could take a very long time to apply and that would disrupt the flow of the network.

Recognizing this as something that would be nice to automate I will think about it.  It is not on our current issue list on github though.

I feel it's an essential feature in order for Bitshares to operate as an asset exchange market.

Dividends are essentially outside money regularly flowing into Bitshares (ie. when AAPL pays cash dividends, I'm forced to buy BitUSD with the cash and distribute to my investors, this will significantly help the valuation of BTS price.)

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
The challenge is that the single operation is "unbounded" in the number of accounts it would have to credit.   If there are 1M people that need to receive the dividend then that single operation could take a very long time to apply and that would disrupt the flow of the network.

Recognizing this as something that would be nice to automate I will think about it.  It is not on our current issue list on github though.

It doesn't have to. You can simply record a dividend event for each UIA. For example, UIA-1 could have a dividend event at block N for a total of X BitUSD when the total UIA-1 supply at this time was Y UIA-1 (it would also record a mutable value of the accumulated amount of UIA-1 moved to claim this dividend, which starts with 0 always). It also stores that original X BitUSD in a pool associated with UIA-1. When someone is moving their UIA-1 they can collect the appropriate amount of yield in the form of the BitAssets distributed as dividends since the last time they movied their UIA-1.

So, let's say a UIA-1 balance existed prior to block N with a quantity of y1 UIA-1. There would be no way to add more UIA-1 to that particular balance anymore after the dividend event. A user could withdraw some portion of UIA-1 in the balance and deposit it to a new balance that exists after block N. If the user withdrew y2 UIA-1 out of that balance during a block after N, then the user would automatically receive (y2/Y)*X BitUSD from the pool as part of their transaction to be deposited wherever they wish (by default would be deposited to a new BitUSD balance with a condition identical to the one of the UIA-1 balance being withdraw from). The system would also add y2 to the accumulated amount of UIA-1 moved to claim the particular dividend. When the accumulated amount of UIA-1 moved to claim the particular dividend becomes equal to Y, the system knows that all of the dividends for that particular dividend event have been claimed (there might be some extra BitUSD in the pool because of rounding down, which is just free money that can be claimed back by the UIA-1 issuer).

There is the issue that if there are multiple dividend events that occur between the time a balance exists and the time it is moved, the system will need to do the above calculation for each of those dividend events. But the point is that this scales with D, where D = the number of dividend events, rather than with N, where N = the number of UIA-1 balances. I expect dividend events to be relatively infrequent that this wouldn't be a significant problem. It could also be possible to put a bound on D by having the ability to claim dividends expire. For example, if a UIA-1 holder doesn't claim the dividends of a dividend event that is more than 24 dividend events old, they would forfeit their right to claim the dividends of that dividend event (they could still claim the dividends of the most recent 24 dividend events though). This could be implemented by automatically setting the accumulated amount of UIA-1 moved to claim the dividend for that particular dividend event to its respective Y value, which would then allow the issuer reclaim the remaining unclaimed dividends for that dividend event. This would put an upper bound of 24 on D, which I think is reasonable when you consider that even if dividends are as frequent as once a month, a dividend receiver will not lose any dividends as long as they claim them (meaning move all of their UIA balances) at least once a year.

Offline bytemaster

The challenge is that the single operation is "unbounded" in the number of accounts it would have to credit.   If there are 1M people that need to receive the dividend then that single operation could take a very long time to apply and that would disrupt the flow of the network.

Recognizing this as something that would be nice to automate I will think about it.  It is not on our current issue list on github though.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline clayop

  • Hero Member
  • *****
  • Posts: 2033
    • View Profile
    • Bitshares Korea
  • BitShares: clayop
So in the Bitshares client, I would need a function that says "issue dividend", I enter the total amount and currency type (ie. BitUSD), then Bitshares blockchain deducts my BitUSD balance etc.., and sends this amount proportionately to all the investors of my "APPLE" asset investor in a single transaction.
You can emulate this feature by share dropping on your asset owners if you can identify them.
How about this proposal?
https://bitsharestalk.org/index.php?topic=14288.0

These all seem to be describing the same thing, which is the ability the construct a set of transactions that will distribute a pool of assets proportionally among the holders of a specified UIA. Am I correct?

Yes, preferably all in a single transaction, so the asset issuer only have to pay the transaction fee once. Otherwise transaction fee could add up quickly.

If this feature burdens network capacity, multiple transaction is ok for me, just need calculating total fee command.
Bitshares Korea - http://www.bitshares.kr
Vote for me and see Korean Bitshares community grows
delegate-clayop

Offline kokojie

  • Sr. Member
  • ****
  • Posts: 286
    • View Profile
So in the Bitshares client, I would need a function that says "issue dividend", I enter the total amount and currency type (ie. BitUSD), then Bitshares blockchain deducts my BitUSD balance etc.., and sends this amount proportionately to all the investors of my "APPLE" asset investor in a single transaction.
You can emulate this feature by share dropping on your asset owners if you can identify them.
How about this proposal?
https://bitsharestalk.org/index.php?topic=14288.0

These all seem to be describing the same thing, which is the ability the construct a set of transactions that will distribute a pool of assets proportionally among the holders of a specified UIA. Am I correct?

Yes, preferably all in a single transaction, so the asset issuer only have to pay the transaction fee once. Otherwise transaction fee could add up quickly.