Tracked Assets

Issuers may want to issue an asset that only uses Liquid Securities to track ownership and transfers, leaving the handling of investor eligibility to rules managed outside of Liquid Securities. With this type of asset, transfers are only restricted by requiring that the receiving destination comes from a Blockstream Green Liquid Securities Account, or one of the issuer’s own Liquid treasury addresses. Investor and category records within Liquid Securities are not used for investor management, assignment and distribution. Although there may be external restrictions placed on the investors under this model, the lack of a Liquid Securities Investor record means we refer to them as ‘Tracked’ assets, as their ownership is only tracked by Liquid Securities, not restricted by investor categorization.

Note

Liquid Securities will also let an issuer define an API endpoint for each asset that will handle the authorization of transfer requests. When an ‘issuer authorization endpoint’ has been specified against an asset, Liquid Securities passes Blockstream Green transfer requests to the issuer for approval. The result from that is then returned to the Blockstream Green server. The process below outlines the default behaviour of tracked assets and assumes no use of the issuer authorization endpoint. If an issuer authorization endpoint has not been set, the issuer can only prevent someone from sending (through the use of a UTXO blacklist), but cannot prevent someone from receiving an asset.

The following process is applicable to Tracked Assets:

  • An issuer creates an asset flagged as not requiring investor registration.

  • The issuer creates a single Investor record and records their own Blockstream Green Liquid Securities Account ID (GAID) against it.

  • The issuer assigns the full amount of the issued asset to their own investor record.

  • The assignment is distributed in full to the issuer’s investor record.

  • All further transfers to investors, and between investors, are done via Blockstream Green transactions sending the asset between Liquid Securities Accounts. The transfers are authorized and transaction data recorded by Liquid Securities, making it available for reporting via Liquid Securities.

  • The /gaids/{gaid}/balance and /gaids/{gaid}/balance/{assetUuid} API endpoints, amongst others, can be used to view GAID balances.

Please refer to the definitions within the Investor-Restricted Assets section for explanations of the terminology used above, e.g. assignment and distributions.

Liquid Securities - Tracked Assets
  1. An Asset is issued by the Liquid Securities Server based upon an assets/issue API request by the issuer. The Asset, and any associated Reissuance Tokens, are issued directly to the address provided by the issuer. The initial issuance amounts can only be moved by the issuer’s Elements Core wallet.

  2. Distributions of the asset can only be performed by the issuer’s Elements Core wallet. The issuer should create a single Investor record, representing themselves, and record their own Blockstream Green Liquid Securities Account ID (GAID) against it. The token is then assigned to and then distributed to the issuer’s own investor record. From this point on, all transactions will be tracked and co-signed by the Blockstream Green server and the transactions recorded in Liquid Securities to maintain ownership and transfer history.

  3. The issuer can then send the asset from their own Blockstream Green Liquid Securities wallet to the Blockstream Green Liquid Securities wallets of their investors. Before the Blockstream Green server co-signs any transaction request it checks with Liquid Securities to ensure the receiving Investor is authorized to receive the asset. In the case of Tracked assets, this authorization only consists of a check to make sure that the receiving wallet is a valid Blockstream Green Liquid Securities Account. If authorization is successful, the Blockstream Green server co-signs the transaction and it is broadcast on the Liquid network. The change in ownership is noted by Liquid Securities.

  4. Being the only one holding the wallet keys controlling the asset’s reissuance token, only the issuer can perform Reissuances. The Liquid Securities API provides reissuance data (amount) to a Liquid Securities Python client that runs against the issuer’s Elements node and actions the reissuance request. The Python script sends data back to Liquid Securities so the distribution can be tracked. Once an asset has been reissued it can be distributed to investors through the process of assignment and distribution as above.

  5. If an Investor wishes to send some of the token to another Investor’s wallet, and have the Blockstream Green server co-sign the transaction request, it checks with Liquid Securities to ensure the receiving Investor is authorized to receive the asset. If authorization is successful, the Blockstream Green server co-signs the transaction and it is broadcast on the Liquid network. The change in ownership is noted by Liquid Securities.

  6. The process of redeeming a token begins with the Investor sending an amount of the token to the issuer by using one of the provided treasury addresses. The issuer then uses the Liquid Securities Python script to burn the required amount. The Python script sends data back to Liquid Securities so that changes to the circulating supply are recorded by Liquid Securities.

Note

Steps 3 and 5 are essentially the same action, the diagram shows them separately to distinguish that the issuer’s own Blockstream Green wallet is used to receive the initial distribution. A single Liquid Securities Python Script will perform all of the script tasks above.