Developer PortalPolymesh DocsSDK DocsRust DocsCommunity

Token Studio Dashboard

Distribute assets with no code


Exercise

In Origination, ACME originated an asset. No shares exist yet.

In Secondary keys, we created distinct accounts for Alice and ACME, and Alice created a secondary key to use when she signs on behalf of ACME as the CEO.

Now, it's time to create some shares and distribute them.

To keep matters simple, let's suppose that Alice will receive 20,000 shares of a planned 100,000.

In practice, the distribution agent may be external to the company that issues the security tokens. Again, to keep matters simple, ACME will serve as its own distribution agent. When the shares are minted, they are initially sent to the distribution agent.

In summary:

  1. ACME will issue 20,000 shares;
  2. ACME will transfer them to Alice.

As we proceed, you will see how Polymesh assists with ensuring a compliant process.

Mint tokens

Open the wallet and select ACME's primary key. Then proceed to the dashboard, Explore and Token Studio. The token that was originated is displayed.

token studio

Click on Manage token to see the token details.

manage token

Open the Distribution tab.

distribution

Click on Mint tokens. Alice is to receive 20,000 tokens, so we need to mint 20,000 tokens. If more are needed for other distributions or shareholders we could, of course, mint them all now.

mint tokens

Confirm minting and sign.

info icon

For brevity's sake we will not include images of each signature request. You should be accustomed to signing on-chain transactions at this point or you may wish to opt for the Don't ask me for the next 15 minutes option that is available each time a signature is required.

confirm minting

In a few moments the minting operation is confirmed on the blockchain.

success

When the tokens have been issued, they will be in the custody of the distribution agent which defaults to the originator, so ACME.

agent balance

Now it is time for the distribution agent, which is ACME, to distribute the tokens. Click Distribute.

Each investor has a unique uID scope which the system suggests for you. The Polymesh Unique ID System records investor uniqueness claims. This is to detect cases where an individual attempts to use multiple accounts to avoid reporting requirements. These on-chain uniqueness claims work in concert with CDD and records, on chain, hashes that don't leak metadata about the investors but aim to identity accounts that are, in fact, controlled by the same investor. As a matter of course, each holder of a given token will create a "uID scope" for each token in their portfolio.

Click on Create uID.

create uID

In a few moments the process is confirmed.

uID scope success

Now we will create a distribution event.

Multiple distributions can be logically grouped into a single event, for example "Founder distributions". Since Alice and only Alice will receive shares, let's call this event "Alice's founder's shares".

Click on + Add new distribution event, give the event a name, and click Add.

This distribution will be to a single Polymesh account, Alice. Copy Alice's Polymesh account number (starts with 0x) from Alice's wallet. Be sure to choose Alice's personal account number because that's where ACME should send the shares. Lastly, 20,000 is the amount to send.

tip icon

The distribution agent may receive a warning to indicate that Alice's account is not compliant at this time. This will occur if the token has compliance rules because Alice has not completed KYC for ACME. As ACME, navigate to Compliance in the token studio and disable rules for primary distributions.

20,000 to alice

As always, confirm the transaction and sign.

confirm distribution

After a few moments, the distribution confirms.

distribution success

Now, when the transaction has confirmed, ACME will see a pending distribution. Why is this if the transaction has been confirmed?

Unlike most blockchains where transfers are final, a security token cannot be transferred without the consent of the recipient because the receipt may have legal or tax implications and the recipient may not agree. Therefore, the system waits for Alice to accept the distribution.

Switch to Alice's personal Polymesh account by bringing her personal primary key into focus in the wallet. Navigate to the dashboard Portfolios tab where Alice's incoming transfer is displayed.

incoming

Alice needs to create a uID Scope. Click Manage uID scopes and create a uID scope for the symbol you choose for the ACME shares.

The Polymesh Unique ID system helps prevent Sybil attacks on tokens, such as creating multiple accounts under the control of a single entity for the purpose of evading reporting requirements.

create uid scope

These shares are of upmost importance to Alice and she doesn't want to hold them in her default portfolio. Instead, she wants to create a special portfolio for them - Portfolios are logical containers that help manage permission or organise holdings.

Below holdings, click Create Portfolio.

create portfolio

Create a new portfolio called "cold store".

create cold store

Alice can now accept or reject the incoming transfer. Select Accept next to the incoming transfer, confirm, and sign.

accept

In a moment, the shares arrive in the default portfolio.

accepted

Now, it is a simple matter of moving Alice's shares from her default portfolio to her cold store portfolio.

Click the Send button and specify that 20,000 ACME shares should be moved to Alice's cold store portfolio. This happens without the accept/reject flow because there is no change of ownership.

to cold store

Success!

Alice has 20,000 ACME shares in her cold store portfolio.

success

Summary

Let's briefly summarise:

  1. Tokens are minted by originators and are distributed by distribution agents, which can be the same organisation;
  2. Newly minted tokens are held by distribution agents until they are actually distributed;
  3. Compliance rules are enforced in the transfer process and transfers will remain in a pending state until either the receiver achieves compliance with the help of a KYC service provider, or the distribution agent cancels the transfer;
  4. Compliance rules can be disabled for primary distributions at the originator's discretion;
  5. Transfers require the consent of the receiving party;
  6. Users can transfer assets between their portfolios in one step. There is no need to accept the transfer because there is no change of ownership.