Stellar asset sandbox
Introducing Stellar for Asset Tokenization.
Stellar is a blockchain network natively designed for asset issuers, allowing fine grained control over asset ownership, and protocol level extensibility for issuers to define custom asset controls. This helps developers better manage and control a range of risks related to financial product issuance.
Stellar’s native operations and asset flags can be combined to create unique asset profiles, all with minimal coding.
In addition to permissionless assets, a powerful feature of Stellar is the ability to create a fully permissioned asset using SEP-8 (Stellar Ecosystem Proposal (SEP)-8 - Regulated Assets), an ecosystem protocol which allows issuers to define a pluggable authorization server which will enforce custom issuer policy definitions down to the ledger transaction level.
Stellar Asset Sandbox is a tool built by Cheesecake Labs, a key technology partner for SDF, and deployed in testnet to demonstrate the power and simplicity of these asset issuance features. In a simple to use interface, you can issue, mint, burn, and enable asset flags on testnet assets, and emulate an access controlled workflow for distribution of assets on the Stellar network. Try it out at stellar.cheesecakelabs.com.
We set out below in detail a summary of the various steps and features related to issuing assets on Stellar. We also have a new tool that makes it easy for issues to experiment on testnet - the Stellar Asset Sandbox. The Stellar Asset Sandbox provides an easy way for issuers to get started. As a non-custodial application, the Stellar Asset Sandbox does not hold the private keys of the Stellar account, instead the account holder does. The Stellar Asset Sandbox enables a Stellar account holder to create new assets and manage the assets that they have already issued with ease. The current set of features supported by the Stellar Asset Sandbox represents the basic functionality needed for asset issuance on Stellar Mainnet.
A detailed paper on Stellar asset issuance is available here.
There is no dedicated “mint” or “issue” operation on Stellar. Assets are typically created on Stellar by using a payment operation. In Stellar, an asset is issued when an asset is transferred from an issuing account to a distribution account.
The distribution account acts as the starting point for newly minted assets before it is distributed onwards to other accounts. The distribution account is generally defined as the first account to create a trustline for the new asset.
Stellar Asset Sandbox provides a user-friendly way to create assets using issuer and distribution accounts on testnet. These accounts can be created via Freighter, a non-custodial Stellar wallet extension, also on testnet. Once the relevant test wallets are available, an asset can be created after certain asset properties are defined (for example, token name and maximum supply).
After the asset has been created and transferred to the distribution account, this transaction can be seen in the Stellar Expert, one of the Stellar ledger explorers. The newly created asset will be displayed under the list of tokens issued by the account. By clicking on the asset name, any asset controls associated with the asset will be public.
When it comes to managing the circulation and distribution of assets, the Stellar network handles these processes through a simple payment operation.
By design, accounts hold their balances in the trustlines identified by the issuer of the asset. Since the issuer account cannot create a trustline referring to itself, it cannot hold balances of the asset it issues. Therefore, any payment-sending tokens from the issuer account will add these tokens to the circulating supply, while any payments-sending tokens to the issuer account will remove these tokens from circulation.
The Stellar Asset Sandbox bundles these processes under three sections: ‘Mint’, ‘Burn’, and ‘Transfer’.
Both Mint and Burn operations work in a similar way. Following the design pattern previously mentioned, the Stellar Asset Sandbox will automatically fill in the distribution account as the receiver for the mint operation and as the sender for the burn operation; therefore, it is only necessary to input the amount.
To learn more about minting or burning an asset on Stellar visit our in depth article here.
The Transfer operation is used to transfer tokens between two non-issuer accounts. By default, the distribution account is selected automatically as the source but can be changed to any other account as long as the signing key is stored in the Freighter wallet to authorize the transfer.
In the event that the receiving account does not have a trustline for the asset, the Stellar Asset Sandbox automatically identifies it and sets the payment to be sent as a claimable balance. This functionality allows for account holders to review a transfer beforehand and decide whether to accept the asset, along with creating a trustline.
An important step for an issuer is to connect the on-chain asset to the institution that controls it in a secure and transparent manner. This is achieved by a two-part procedure described in the standards defined in SEP-1.
In the first step, an issuer updates the home domain associated with the account pointing to the domain of the entity that controls the account. This domain address becomes publicly available for anyone who checks the issuer account on-chain. This is the first step in establishing a trust relationship between the entity that controls the domain and the issuer account on chain.
The second step is to publish a Stellar TOML file, which is an essential trust link between the on-chain issuer account, the associated asset, and the entity that controls the domain. It accomplishes this by specifying the on-chain accounts which belong to the entity at that domain. By creating this bi-directional reference, users and applications on the network can be sure that the issuer also controls the domain.
Stellar Asset Sandbox was designed to facilitate some key aspects of creating the TOML file. The Stellar Asset Sandbox will populate a template TOML file with data from the entity issuing the asset.
In the ‘Home Domain’ section, one can quickly define a new home domain associated with the issuer account, while in the ‘Generate TOML’ section, one has a simple interface to input core information about this token; the file will be generated automatically.
When issuing multiple tokens from the same domain, the existing file will be automatically loaded when accessing this table, so it can be edited quickly and easily.
Two important features included in the Stellar Asset Sandbox are ‘Freeze’ and ‘Clawback’ functionality.
To use these features, under the ‘Settings’ section for an issuer account, one can enable or disable these control mechanisms, which will make it so that any trustlines created for an asset issued by this account will have those features enabled from that moment on. There is also another flag called auth_immutable that isn’t present in this version of the tool but is very important for the asset issuance process as it locks the flag configuration and provides confidence for the users that there won’t be any further changes.
The freeze feature allows an issuer to stop asset activity in an account (that is, the asset holder cannot move the asset from the account until the issuer unfreezes it). This functionality allows, for example, an issuer to freeze the balance of an account suspected of suspicious or malicious activity.
The clawback feature allows an issuer account to remove the assets it issued from any account that holds them. Clawback can be used, for example, in situations where an asset has been acquired by a malicious actor or when a verified user loses access to their account. Tokens that are clawbacked are automatically burned in the process. If they need to be moved elsewhere, these tokens need to be reissued.
The Stellar Asset Sandbox was created to enable experimentation with the strong issuer controls built inside the Stellar protocol. These controls allow for any number of configurations to meet issuer needs and preferences.
To see what native asset issuance looks like in action, we encourage you to check out our session at Meridian 2022 on the topic:
If you are interested in institutional assets on Stellar, start your journey by either exploring the Stellar Asset Sandbox or reach out to [email protected]. If you need technical assistance on the Stellar Asset Sandbox or want to provide feedback about the product, reach out to Cheesecake Labs.