BitShares Forum

Main => General Discussion => Topic started by: kokojie on March 07, 2015, 06:13:32 pm

Title: Dividend feature timeline?
Post by: kokojie on March 07, 2015, 06:13:32 pm
When will dividend feature be activated for user assets? I plan to run some passthru assets, and would need an easy way to pay regular dividend to investors.
Title: Re: Dividend feature timeline?
Post by: clayop on March 07, 2015, 06:59:28 pm
I was also wondering about this. I need this feature too.
Title: Re: Dividend feature timeline?
Post by: vikram on March 07, 2015, 08:43:57 pm
Please describe the feature; I don't think I am familiar with this.
Title: Re: Dividend feature timeline?
Post by: kokojie on March 07, 2015, 09:46:38 pm
Please describe the feature; I don't think I am familiar with this.

Basically, if I sell a user asset called for example "APPLE" as a pass thru to the AAPL stock on nasdaq, so that foreign investors (ie. from China) can invest in the US company "Apple Inc".

Then when AAPL pay me a quarterly dividend, I would also need to pay a dividend to the investors of my user asset.

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.
Title: Re: Dividend feature timeline?
Post by: monsterer on March 07, 2015, 10:06:33 pm
You can emulate this feature by share dropping on your asset owners if you can identify them.

In addition, a different way of providing a similar feature is to offer a buy back price for your asset which reflects your profits - so you buy back higher than you sold.
Title: Re: Dividend feature timeline?
Post by: kokojie on March 08, 2015, 12:23:02 am
You can emulate this feature by share dropping on your asset owners if you can identify them.

In addition, a different way of providing a similar feature is to offer a buy back price for your asset which reflects your profits - so you buy back higher than you sold.

Buy back isn't the same as paying a dividend.

Not sure what's share dropping, I'd rather not maintain my own list of asset owners, since I can make mistakes, but the blockchain won't.
Title: Re: Dividend feature timeline?
Post by: joele on March 08, 2015, 01:22:51 am
Paying dividend is a challenge in Bitshares UIA because you don't know who is holding the shares.

If there is a new command to list all the accounts that hold specific UIA with owner authentication then dividend is possible.
The owner will create another UIA like bitDividend and make a share dropping or pay bitUSD directly.
Title: Re: Dividend feature timeline?
Post by: kokojie on March 08, 2015, 01:54:23 am
Paying dividend is a challenge in Bitshares UIA because you don't know who is holding the shares.

If there is a new command to list all the accounts that hold specific UIA with owner authentication then dividend is possible.
The owner will create another UIA like bitDividend and make a share dropping or pay bitUSD directly.

I thought non-TITAN transaction are going to be a thing?
Title: Re: Dividend feature timeline?
Post by: clayop on March 08, 2015, 02:07:29 am
How about this proposal?
https://bitsharestalk.org/index.php?topic=14288.0
Title: Re: Dividend feature timeline?
Post by: vikram on March 08, 2015, 02:31:10 am
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?
Title: Re: Dividend feature timeline?
Post by: kokojie on March 08, 2015, 02:33:25 am
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.
Title: Re: Dividend feature timeline?
Post by: clayop on March 08, 2015, 02:55:46 am
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.
Title: Re: Dividend feature timeline?
Post by: bytemaster on March 08, 2015, 05:07:36 am
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.
Title: Re: Dividend feature timeline?
Post by: arhag on March 08, 2015, 07:14:21 am
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.
Title: Re: Dividend feature timeline?
Post by: kokojie on March 08, 2015, 02:35:50 pm
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.)
Title: Re: Dividend feature timeline?
Post by: sittingduck on March 08, 2015, 02:58:11 pm
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
Title: Re: Dividend feature timeline?
Post by: abit on March 09, 2015, 03:25:34 am
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>
Title: Re: Dividend feature timeline?
Post by: xeroc on March 09, 2015, 06:59:21 am
@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
Title: Re: Dividend feature timeline?
Post by: abit on March 09, 2015, 07:33:42 am
@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.
Title: Re: Dividend feature timeline?
Post by: monsterer on March 09, 2015, 09:26:58 am
Could this not be implemented the same way as yield is?
Title: Re: Dividend feature timeline?
Post by: abit on March 09, 2015, 10:00:14 am
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.
Title: Re: Dividend feature timeline?
Post by: kokojie on March 15, 2015, 10:34:34 pm
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.
Title: Re: Dividend feature timeline?
Post by: BTSdac on March 17, 2015, 02:53:13 am
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 .


Title: Re: Dividend feature timeline?
Post by: MrJeans on July 20, 2015, 01:40:15 pm
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?
Title: Re: Dividend feature timeline?
Post by: Chuckone on July 20, 2015, 02:05:14 pm
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?