Fractional Ownership

Followed the Private NFT token application build in Introduction to DAML course in that need to give frictional ownership of the created token. I don’t know how to do

Hi @Karthi_Palani :wave:

Can you give more details on how this fractional ownership should work?

Actually,

If I have created the token, before creating the token need to give that token for number of party allocation for that token ownership.

Need to give that token for multiple party ownership instead of single party.

They can own shared token buy sell and do anything

@Karthi_Palani
If you’d like to implement a token that can be owned by multiple parties, you could specify the data type of the “owner” field in the template that implements the token as a list of parties.

template Token with
    issuer : Party
    owner : [Party]
  where
    signatory issuer, owner

Is this what you’re looking for? If not, could describe the workflow you’re looking to implement in detail?
Note that in the above the authority of all owner parties will be required to do anything with the token. See Multiple party agreement article in Daml documentation, which discusses the design pattern to implement templates that require the authority of multiple parties.

1 Like

@a_putkov

If party A, creates token with himself as owner and able to set n number of owners to own eg: (100 owners) ?

If he issue token to party B, party B can issue to other party like party C, that time requires all owner parties authority (like part A) or else party B is only enough !

@Karthi_Palani
I see two parts in your question, and I’m not sure how they relate to each other.

You can model this any way you like. You can design the templates so that a transfer of the ownership of a token requires only the current owner’s authority. And you can design the templates so that all previous owners’ authority would be required. Pretty much all use cases I’m familiar with implement the former workflow. But Daml does not limit you here, and if the latter workflow is desired, it can be implemented in Daml.

I don’t quite understand what you’re asking here. Would you mind elaborating? Or if this was not meant to be a question, but an intro to the question about authority required to transfer a token, then I don’t quite understand how this intro relates to the authority for a token transfer. Could you explain? What do you mean by setting a 100 owners? Do you mean simultaneous owners, whereby a token is collectively owned by 100 parties? Or do you mean the max number of successive owners, i.e. the token can transferred up to a 100 times from one party to the next? Sorry, I’m quite lost here and I need you to elaborate and clarify.

@a_putkov

For example,
Party A creates a token with how many persons to own this token (Lets take 100).

If party A issues one share ownership to party B (now its 99)

Again party A issues one share ownership to part C (now its 98)

Need a track of how many owners occupied in the created token (like 2 out of 100)

Party B & C issue token to party x, y etc.,.

Like that way expecting

When party B issues the token to party X are they

  • creating a new share of the already shared token (and further fractioning the original token) or
  • simply transferring directly the ownership’

@Karthi_Palani
To add to the question from @nemanja, would it be correct to rephrase the model you’re interested in building as “the issuer party A creates a series of identical transferable tokens, where the supply in the series is capped at 100. I.e. there may never be more than 100 tokens issued in this series. The issuer party A then transfers one token from this series to party B, and one to party C. Parties B & C acting as owners of the tokens may then transfer their tokens to parties X & Y”?
If this is what you’d like to model, then you either need to trust that party A will never issue more than 100 tokens, because, when the issuer is a sole party, nothing prevents the issuer from creating additional token contracts. Or you need to distribute the issuance authority among multiple parties. E.g. require that the issuer is a set of parties that you trust collectively (perhaps a set that includes all participants in the model). Then it would be impossible for any single party to create a token using “create” command, as the authority of all parties would be required to create a token. You would also create a role template, which collects the authority of all participants using multiparty agreement pattern, keeps the record of already issued tokens and implements a choice that creates the token. In this model the issuance of a token is only possible by exercising a choice on the role contract, and the code in the choice enforces the supply cap (checks how many tokens have already been issued and raises an exception if one attempts to issue more tokens than the supply cap allows). If the only thing you want to enforce in this model is the supply cap, then the transfer of the token needs no restrictions and could be done on the authority of the sole owner party.
Am I making sense? I appreciate this is quite a mouthful to digest.