TABLE OF CONTENTS
The concept of Initial Coin Offerings (“ICO”s) gained popularity on Ethereum, so ICO tokens have traditionally been issued on the Ethereum network in the form of ERC20 tokens. ERC20 tokens are infinitely customizable using Solidity, Ethereum’s smart contract scripting language. However, recent events have highlighted and exacerbated some weaknesses of the network, including slow transaction transaction speed, increasingly expensive transactions cost, and a wide attack surface for Ethereum-based applications that allows for a slew of security vulnerabilities and exploitations.
While Ethereum is undoubtedly powerful, many organizations require more basic tokens; they adopt the risks conferred by Ethereum’s Turing complete programming language without taking advantage of its benefits.
Stellar is the best option for applications that require a platform that optimizes for the efficient transfer of value. Below is a summary of the advantages of issuing assets on Stellar:
● Cost / Speed / Scalability
Cost: As ether (ETH) obtains higher valuations, computation and transactions on Ethereum have become prohibitively expensive for many applications. Even at the current order of magnitude of price, Ethereum transaction fees are costly.
Stellar does not require any “gas” to execute programs and only requires a negligible transaction fee (.00001 XLM—a fraction of a fraction of a cent) to discourage users with malicious intent from flooding the network with transactions.
Speed: The median transaction time on Stellar is 5 seconds, compared to approximately 3.5
minutes on Ethereum, as of writing.
Scalability: Stellar supports up to 1,000 operations per second. Note that a transaction can consist of one or more operations. Many transactions use one operation, but some can have as many as 35.
● Exchange: Day 1 Trading
The influx of new tokens being launched is staggering. Each one will have to find an exchange to list them. Users will have to make accounts at random exchanges to be able to buy certain tokens and, inevitably, many tokens just won’t be able to get listed.
Stellar was designed from the ground up to support efficient trading. Any token issued on Stellar can be bought and sold immediately on Stellar’s decentralized exchange. An
organization does not have to rely on a third party exchange like Bittrex or Poloniex to list or make the market for them. This means enables immediate liquidity for your token from Day 1.
Importantly, your Stellar-based token can still be listed on other third party exchanges. The conversation with exchanges is more about the value and volume that listing your token will bring to the exchange, rather than whether the token is Ethereum- or Stellar-based.
For more information, see Exchange / Trading.
● Greater Security
Stellar takes a drastically different approach to computation and security as compared to Ethereum. In the Stellar network, the bulk of the computation, such as processing of contract requirements, is done outside of the core system, enabling a core protocol that is easier to audit for safety and correctness.
The simplicity of the Stellar transaction model creates fewer pitfalls and improves the security of applications that do not require the full generality of Turing-complete smart contracts. In addition, pushing the logic to the outside makes the network more scalable, as the nodes doing validation don’t also have to run millions of complex contract scripts.
● Multi-Currency Participation (Bifrost)
In order to keep the ICO experience the consistent, Stellar offers Bifrost, a tool that allows contributors to participate in Stellar-based ICOs using both ETH and BTC, in addition to XLM. This makes it a smooth experience for both the contributor and the entrepreneur as it obviates many manual steps without introducing additional barriers to entry.
- Thisis the main Stellar developer reference Though it is geared primarily towards financial institutions, it documents the entirety of the Stellar network.
- Setof tools that enables people to try out and learn about the Stellar Use the laboratory to build transactions and make requests to any of the Horizon API endpoints.
- Anopen source client for the Stellar Decentralized Exchange (SDEX). See more information below in the Exchange / Trading
- Dashboardshowing the current status of the live and test networks, as well as other network
Each token sale has different requirements in terms of Know Your Customer (KYC), token lock-up period, and other features. It is important to consider what the requirements of the ICO are before proceeding. Most token sales will develop a web service (ICO Wizard) to facilitate the sale and automate these features while guiding the user through the necessary steps.
Stellar was designed from the beginning around the concept of issuing tokens. Tokens on Stellar can represent various assets, including fiat currencies, cryptocurrencies, commodities such as gold, oil, or hemp, securities such as equity, or real estate, or miscellaneous tokens used in various ecosystems.
See step-by-step instructions on how to issue tokens here.
You can also refer to a video version of the guide using Stellar Laboratory here.
Many ICOs require a lock-up period for assets after they are sold, even if just for the duration of the public sale. This can be done for regulatory reasons, and/or to keep the token price stable during the sale, among other reasons. While there are various ways to achieve this in Stellar, we recommend using a multisig escrow account.
To implement this, rather than directly sending sold assets to the buyer, they are placed in an account with two signees: the buyer and the issuer. Together, they sign a time-locked transaction to remove the issuer as a signer at a predetermined time. Both the buyer and the issuer will retain a copy of this transaction, which can be submitted to the network by any party after the lockup period.
This mechanism provides assurance to the buyer that the tokens will indeed be unlocked after the unlock period.
Avoid using AUTH REVOCABLE. In the past, some ICOs have used the AUTH REVOCABLE flag in order to impose lock-up periods. This is a problematic mechanism because it does not provide the user any guarantees with regard to when or if the assets will be unlocked.
All operations on the Stellar network (create account, set options, payment, etc.) should be submitted as part of a single Stellar transaction. Transactions in Stellar are atomic, which means that either all operations succeed or fail together. That ensures that the sale will not get stuck in a middle state where an account was created but has not been funded, for example.
This feature is useful for organizations that wish to limit their contributor base to those who meet a predetermined criteria, such as accredited investor verification. An organization may also choose to collect KYC information from potential contributors to fulfill regulatory
anti-money-laundering and countering the financing of terrorism requirements. Depending on your requirement, you might choose to impose these KYC requirements for the duration of the initial sale or for the lifetime of the asset using AUTH REQUIRED.
The AUTH REQUIRED flag can be used by an asset issuer to restrict which accounts can hold the asset. When set to TRUE , it will require the issuer to authorize accounts using the ALLOW TRUST operation. Unauthorized accounts will not be able to establish trustlines to the asset. Going down this route entails building a service that binds KYC with Stellar ALLOW TRUST operations for the lifetime of the asset.
- Unlessrequired to do so for regulatory reasons, it is advised not to use the AUTH REQUIRED feature, as doing so can limit tradability/liquidity of the If KYC is only required for the initial sale, manage the sale through an ICO wizard, and only allow access to vetted buyers.
- Whetherusing AUTH REQUIRED or not, stick to your Changing this after an asset has been distributed will require maintenance overhead. Moreover, it’s recommended to set AUTH IMMUTABLE on the issuer account, which ensures these settings can’t be changed in the future and provides transparency into your token economics.
Launching a public token sale can be as easy as issuing tokens and submitting sell offers for them in the Stellar decentralized exchange (SDEX). However, in order to implement more advanced features such as token lock-ups, KYC checks, and multi-currency participation, most companies will choose to build a web service to facilitate the sale and guide the user through the steps necessary to participate. We refer to such a service as an ICO Wizard. One tool that can help with building such a wizard is Bifrost.
As aforementioned, Bifrost is a tool that allows for multicurrency participation in Stellar-based token sales. Essentially, Bifrost is a highly available and secure Bitcoin/Ethereum → Stellar bridge that streamlines the process of moving BTC/ETH into the Stellar network, giving ICO contributors the ability to contribute not only XLM but also BTC/ETH.
- Developersdon’t have access to users’ Stellar keys
- NoBitcoin/Ethereum private keys for receiving accounts uploaded to any application machine
- Canbe deployed to multiple availability zones (one or more machines can fail)
- Capableof handling high loads
- Ease ofUse
- Simpleprocess for users
- Easyinstallation for developers
Bifrost Demo: https://bifrost.stellar.org
Deployment instructions: https://github.com/stellar/go/tree/master/services/bifrost
General infrastructure requirements to deploy Bifrost:
Public ICOs tend to attract a lot of attention and internet traffic. Make sure to closely follow Bifrost’s high availability deployment instructions. In addition, make sure that the Horizon server that Bifrost communicates with is also highly available. See instructions here.
- EC2for virtual servers:
- Bifrostshould work without problems on large. Use ELB to deploy more servers and scale horizontally.
- Horizonand core should work without problems on large. Both require 100GB SSD disk for full-catch-up mode. Use ELB to deploy more Horizon servers.
- Forbitcoin-core and geth check minimum requirements on the Use ELB for horizontal scaling.
- RDSfor databases (bifrost, horizon and core). Use the multi-AZ
- S3+ CloudFront for highly available static JS
● Stellar Decentralized Exchange (SDEX)
In addition to supporting the issuance and movement of assets, the Stellar network also acts as a decentralized exchange for any type of asset that people have added to the network. The on-chain ledger stores both balances held by user accounts and offers that user accounts make to buy or sell assets.
In early 2018, we announced plans to develop an in-house user interface for the SDEX, which will be the world-class front-end that our underlying technology has long deserved. We expect an MVP to be released in late Q2 or early Q3.
● Immediate Trading
Once your token exists on the Stellar network and people have it, it can immediately be traded (as long as there are no lock-up periods in place). To increase visibility for the token, you’ll want to get the token featured on StellarTerm by taking the following steps:
- Adda toml file to the project website, as follows:
- Werecommend this be hosted on a domain that will persist after the token sale
- Submita pull request to StellarTerm asking to add your token
- Includea 100×100 png logo and specify your brand color: #rrggbb format
- Specifythe exact URL/path to where your .toml file is hosted
● Listing on 3rd Party Exchanges
As aforementioned, your token can also be listed for trading on other exchanges, such as Poloniex, Bittrex, etc.
While any exchange can add support for Stellar-based tokens, those that already list lumens (XLM) will find it very simple. You can share this checklist to help exchanges understand the process.
Of course, trade volume for your token will depend on whether there is depth on the orderbook from both the buy and sell side. To support trading, many companies will engage 3rd party market makers that specialize in providing orderbook depth and liquidity to the market. If you’re interested in learning more about these services, reach out to us and we can introduce you to liquidity providers.
There are a variety of community built and maintained existing wallets that support Stellar-based assets. You can see a list of them here. Many of them are open source, so you can choose to whitelabel one, or just build your own.
A particularly popular hardware wallet is Ledger Nano S, which supports lumens. Though it does not support Stellar-based tokens out of the box, there are steps you can take to configure your Nano S to be able to receive, hold and send Stellar-based tokens. See instructions here.
We’ve written extensively on the topic of asset issuance, token sales and ICOs on our blog. For more information, see the following articles:
- UnderstandingInitial Coin Offerings: Technology, Benefits, Risks, and Regulations What others have written about why they chose Stellar as the backbone for their projects:
- IreneEnergy: The 6 Reasons Why Irene Energy Moved from Ethereum to Stellar
● How do smart contracts work on Stellar?
As aforementioned, our philosophy is to have business logic lie primarily outside the system, which allows the ledger to do what it’s good at – facilitating the efficient and secure transfer of value.
Stellar offers a menu of discrete operations within the core protocol, which can be combined to achieve a wide variety of contract formats. Any logic that cannot be implemented on the chain level can (and likely should) be written outside of the system.
● What is the relationship between Stellar.org and Lightyear.io?
Stellar.org is a nonprofit organization that contributes to the development and maintenance of the Stellar network. Lightyear.io is a commercial entity that builds products on top of the Stellar protocol and works with financial institutions integrating with Stellar for cross-border payments.
● What services and support does Stellar/Lightyear provide?
Stellar.org is first and foremost a technology company that is focused on developing world class software. The following characterizes how we work with companies building on Stellar outside of the cross-border payments space:
- We are available to provide light-touch, occasional direction on high-level architecturaldesigns and Actual development work is to be done by the project team itself or by third party service providers.
- Ifwe deem the project relevant to the Stellar community, at our discretion, we will include a mention of it in our monthly newsletter, as well as potentially other media
- We take advisory positions on an ad hoc, case by case basis. Please understandthat we get asked to serve on advisory boards on a daily basis and cannot accept each
● Does Stellar sponsor projects building on the Stellar network?
Stellar sponsors two programs for partners:
- TheStellar Build Challenge is an ongoing program to reward innovation and development in the Stellar This program is meant for startups and
early-stage projects building on the Stellar network. Awards vest immediately and can be used to fund operations. Most projects that are issuing tokens are well suited as candidates for the Stellar Build Challenge.
- ThePartnership Grant Program is meant specifically for financial institutions and exchanges as a long-term incentivize program for established
● How much does Stellar cost? What are the network fees?
The Stellar network is free to use. Our mission is to connect people to low-cost financial services to fight poverty and maximize individual potential. To that end, we don’t charge people or institutions for use of the Stellar network.
Though there are no “gas”-like payments for computation, the network does impose a set of nominal fees that act as an anti-spam mechanism. See more information on fees here.