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

Proposal: Indivisible assets #113

Closed
johansten opened this issue May 9, 2018 · 3 comments
Closed

Proposal: Indivisible assets #113

johansten opened this issue May 9, 2018 · 3 comments
Labels
CAP Represents an issue that requires a CAP. help wanted Open especially for those who want to write a CAP/SEP! stale

Comments

@johansten
Copy link
Contributor

CAP: 000x
Title: Indivisible assets
Author: Johan Stén johan@futuretense.io
Status: Draft
Created: 2018-05-09

Simple Summary

Getting company shares onto Stellar.

Abstract

Stellar currently doesn't have any good way of representing assets that should be indivisible.

Some suggest just ignoring the matter, but that leads to a situation where you end up with 90% of a CryptoKittie, without any hope of ever acquiring the final 10%

Others suggest ignoring the scaling done by SDK, and representing each unit as 0.0000001. This leads to various rounding errors in the trading engine, in addition to the fact that balances will look all strange if you don't know there's a multiplier.

We suggest adding indivisibility by using an account flag instead.

Motivation

Delaware recently started allowing corporations to put their shareholder registries on the blockchain (1).

Stellar currently fulfills three out of the four requirements listed in EIP-884 (2):

  • Using Authorization required lets issers white list identified holders

  • Using Authorization revocable lets an issuer to freeze the balance held by a certain account, after which it can re-issue shares to a different account held by the same user.

  • The ledger itself holds the transaction record

What is missing is fulfilling the requirement for indivisible shares.

Rationale

The motivation behind adding this functionality as an account flag comes from how the other account flags are used today. Since there is no asset entity, some asset behaviour is encoded in the account flags of the issuing account instead.

References:

  1. https://legis.delaware.gov/json/BillDetail/GenerateHtmlDocument?legislationId=25730&legislationTypeId=1&docTypeId=2&legislationName=SB69
  2. https://github.com/ethereum/EIPs/blob/master/EIPS/eip-884.md

See also:

#23

@MonsieurNicolas
Copy link
Contributor

MonsieurNicolas commented May 14, 2018

Can you comment on the semantics of that flag? I am not sure I am following how it would avoid order book rounding issues for example and how those assets can be transferred between accounts.
Last I looked at the indivisible problem it required quite a few more powerful constructs for the order book to stay useful.

@jedmccaleb jedmccaleb added the CAP Represents an issue that requires a CAP. label Aug 3, 2018
@theaeolianmachine theaeolianmachine added the help wanted Open especially for those who want to write a CAP/SEP! label Mar 15, 2019
@theaeolianmachine
Copy link
Contributor

@johansten do you have any additional thoughts on @MonsieurNicolas's question? Otherwise the idea is certainly interesting and feels like a good use case to support, so would like to keep pushing this forward if you're up for it. Also happy to take what you have now as a draft so you can link to it in the repo for additional discussion on the mailing list or other forums.

@github-actions
Copy link

This issue is stale because it has been open for 30 days with no activity. It will be closed in 30 days unless the stale label is removed, or a comment is posted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CAP Represents an issue that requires a CAP. help wanted Open especially for those who want to write a CAP/SEP! stale
Projects
None yet
Development

No branches or pull requests

4 participants