ICO Analysis Framework — NEX case study.
I’ve spent the last few months researching and investing in early stage crypto projects. Most of my focus is on 1st (Ethereum, Zilliqa, Dfinity) and 2nd (0x, Aragon, NEX) layer solutions because they will be the building blocks for all future decentralized applications.
Some of the most observed features of Initial Coin Offerings (as of January 2018):
- Coin offering details are announced.
- Whitelisting/KYC for private sale — most projects started performing Know Your Customer checks where you have to upload your ID and your selfie holding your ID. Furthermore, to avoid regulatory risks, I’ve noticed many projects completely excluding U.S. and Chinese investors. If you are from U.S., you will most likely have to be an accredited investor in order to participate in this round.
- Private/Pre-sale starts — Typically investors are offered 10% of all the tokens to be offered in the crowd-sale with a 10–30% discount as early contributors. Not all projects offer pre-sales, some go directly for public crowd-sale. Stay clear of projects offering large discounts (upwards of 30%) and selling more than half of their entire token supply during the initial offering.
- Whitelisting/KYC for public sale — investors have to go through KYC checks for public sales as well. Only those who register and pass are eligible to contribute when the public crowd-sale starts. I’ve noticed many high quality projects close KYC registrations early because of overwhelming demand. Once you are approved, you have to whitelist your contribution wallet address. What does that mean? Most projects require you to contribute in crypto. So you will have to convert your USD into crypto first and then send it to the project’s contribution smart contract.
- Public sale starts —typically sale starts at a specified time or at a specified block. Countdown timers are available on official websites and telegram channels. If you are interested in participating, it is important to contribute as soon as the sale starts because if you send your contributions after the hardcap is reached, your transaction will be rejected. Everything is recorded on the blockchain so you cannot complain to anyone after. I’ve watched many multimillion dollar ICOs close out in seconds as a flood of investors initiated their contribution transactions.
- Tokens distributed to investor wallets — investors can immediately list and trade on decentralized exchanges supporting token’s standard. (ERC-20 tokens=EtherDelta). Typically once the hardcap is reached, tokens are unlocked and distributed to investors’ whitelisted wallet addresses. So the same wallet which you contributed from will receive your newly purchased tokens. It is important to create an appropriate wallet — projects launched on Ethereum require something like Myetherwallet because it’s able to store all ERC20 tokens while projects launched on NEO will require NEON wallet for their NEP-5 tokens. Different blockchain platforms require different wallets.
- Tokens are listed on exchanges. (Binance, Kucoin, Bittrex). Typically as tokens get listed on more and more exchanges, the price goes up because more investors are exposed to the asset. This is called accessibility discount. In my opinion, token price going up simply because it got listed on a new exchange is not enough for long-term sustainability. Unfortunately, today most crypto investing is speculative which is why it is important to look at the fundamentals and develop a framework to follow.
Team. Ideas are useless unless someone is executing on them. This is why analyzing the founding team is still one of the most important factors to look at when investing into any project (blockchain or not). Founders of blockchain-related projects face extra hurdles as they have to not only figure out market-fit, but also find the perfect combination of consensus mechanism, token economics, and governance model to implement for their use case.
Problem/Solution. Projects should be trying to solve real problems which they have observed on the market and providing either brand new solutions or 10x improvement to existing ones.
Blockchain applicability. Is the project simply trying to replicate existing solutions on the blockchain or is the project offering a unique solution that needs to utilize blockchains to keep track of the work contributed or value shared by the participants of their network?
Consensus protocol. How does the network reach consensus? How are smart contracts executed? Proof of Work and Proof of Stake models are most popular today but they are constantly being refined and sometimes used in combination to achieve scalability while attempting to maintain security.
Governance model. On-chain vs. Off-chain. How are decisions on updating the network made?
Token economics. How will the underlying network tokens be used and how are they being distributed? It’s best to focus on projects that realize that the underlying blockchain network tokens are not there to raise money through an ICO but to help keep track of the work contributed and incentivize network participants to keep contributing to the network.
Developer tools. Will the project be using a brand new turing complete language (Solidity, Scilla) or using an existing standard (WebAssembly, React)? What kind of documentation, tutorials, meetups, and other learning resources are available to new developers?
Elements of network effects. Who are the network participants and how will they be incentivized to join and keep providing value to the network? How many developers are building Dapps?
Interoperability. Ability to connect and exchange information with other blockchains and private networks.
Affordability. Provide services at a Gas cost that does not exceed users’ willingness to pay. Network users need to pay Gas fees but if these fees are too high it discourages them from using the network. But how can we measure if Gas costs for performing a certain action is ‘too high’? One of the ways to measure affordability is by comparing Gas costs between networks with similar utility. As more platforms join the market, investors will start measuring amount of code executed per Gas ratios between different platforms to see how efficiently their nodes are executing smart contracts.
Reliability. Operational reliability=Average Transactions Per Second Index + Average Transaction Duration Index. We can compare average transaction duration between different networks with similar utilities.
Resiliency. Robustness and recoverability indicators measure the ability to maintain operations during an extreme external disruption and it’s ability to return to normal operation following a disruption. Example: DAO attack — how was the network performing during the attack and how quickly did operations return to normal?
Flexibility. Measures the ability to cost-effectively respond to future uncertainties, such as new technologies, demand shifts, and governmental regulations that may stress the platform in the short term and require the system to adapt over the long term. Indicators: extensibility-ability to add new functionality to smart contracts, scalability-ability to meet demand (e.g. increasing TPS) , interoperability-ability to interact with other blockchains and connect a wide variety of real world resources.
Sustainability. Measures the ability to provide services to customers with limited negative impacts on natural resources. Even though Proof of Work has proven itself to be one of the most secure consensus mechanisms, electricity consumption by miners is raising concerns of long term sustainability of such a system.
Security. Measures the ability to resist external disruptions. Each network needs to calculate and actively monitor Cryptoeconomic Security Margin which ensures that at any given time if an attacker wants to make a fraudulent change to the network, the amount of money spent making that change always results in economic loss for the attacker.
Platform for complex decentralized cryptographic trade and payment service creation.
*I still have some questions (mentioned at the end) which I hope to get answers to when I meet the team @NEODevcon in San Fransisco on January 30–31st.
UPDATE: Fabio C. Canesin spent some time answering my questions @NEODevcon, interview video is up. Thank you Fabio C. Canesin for being so open with the community!
- Team members: 12
- Token type: NEP-5
- Platform: NEO
- Price: $1.00
- Tokens for sale: 25M
- Softcap/Hardcap: $25M
- Total tokens: 50M
- Total diluted value: $50M
- Discount: NONE
- Order matching is by far the most computationally expensive operation when running an exchange. Centralized exchanges (Coinbase, Bittrex, Binance) use their own servers to optimize throughput to handle large trading volumes but are vulnerable to attacks because they host user funds, order books and order matching on their own servers. Existing DEX solutions of (1) state channels are expensive to open and close (example: Raiden) while (2) off-chain relayers, aka market makers who broadcast an order off-chain, use fewer on-chain transactions to perform a trade, but still suffer from performance issues in comparison to centralized exchanges (example: 0x).
- Because NEO stores data about users’ balances in a structure based on unspent transaction outputs, it is difficult for smart contracts to program interactions with a user’s NEO or GAS balance.
NEX proposes a new kind of a DEX consisting of three main components:
(1) an off-chain trade matching engine,
(2) a smart contract where trades are executed, and
(3) a payment service where global assets such as NEO and GAS can be converted to tokens that can be transfered directly by smart contracts, making them compatible with the exchange.
(1) NEO itself doesn’t provide order book and matching functionalities, it’s only responsible for execution and settlement of the transaction. NEO puts the order book and matching function on the second layer, through a mechanism called “superconducting”.
Under the superconducting transaction, the two parties do not need to host the property to an intermediary (traditional exchange). Users only need send to the exchange an order signed with their private keys. After the exchange matches the buyer and seller orders and broadcasts transactions to NEO. From beginning to end, property does not leave the user’s control, putting an end to the traditional moral hazard. Exchange under the superconducting trading mechanism only plays the role of information matching. 
NEX’s matching engine works exactly like a centralized exchange, but only has control over active orders, and commits trades on-chain without access to the full balance of a user account — utilizing superconducting functionalities of the NEO blockchain described above.
NEX aims to store a user’s encrypted private key client-side in a user’s browser. This preserves the security guarantees of a decentralized account model while allowing users to login into NEX through a traditional web form that asks for a username and password.
To make sure that the engine is matching orders fairly, NEX will introduce provable fair off-chain matching. “Under this scheme, the off-chain matching engine follows a publicly specified deterministic algorithm. By combining this knowledge with a public ledger of the order in which trades have been sent to the exchange and fulfilled on the blockchain, any user can verify that the exchange is operating fairly.”  (My question: Who determines this deterministic algorithm and how?)
NEX will also expose a public JSON API that third-party applications can use to place, modify, and cancel orders on the matching engine.
(2) The NEX engine matches buyer/seller orders and submits them to a smart contract for execution.
(3) Because NEO stores data about users’ balances in a structure based on unspent transaction outputs, it is difficult for smart contracts to program interactions with a user’s NEO or GAS balance. To solve this, NEX introduced a payment service layer that converts global assets into smart contract tokens, which can then be easily interacted with by smart contracts on the NEO network. Example: NEO is converted to XNEO NEP-5 standard token, similarly to how ETH is converted to WETH ERC-20 standard within the 0x ecosystem.)
Why does this need a token?
The NEX token allows holders to claim a share of fees generated by the payment service and exchange. NEX holders can claim their profits through a staking process, where claims on the staked NEX operate similar to GAS claim calculations on the NEO network. In this way, token holders who stake NEX benefit directly from the success of the exchange services: as more fees are generated, holders will receive larger rewards. Hypothetical example: a user owns 1000 NEX, and NEX has generated fees in tokens equivalent to 100 million dollars at market value since they last made a claim. Assuming the user has staked NEX at a rate of 75%, they would be eligible for a claim worth $100M*(1000/50M)*0.75 = $1500. 
Token Valuation Model.
To better understand NEX’s token mechanics and long-term effects of different token distribution schemes, changes in exchange fees, addressable markets, etc., I created an interactive valuation model: https://docs.google.com/spreadsheets/d/1GFYUEO1J8qkMKcXoc__mKN0boHSA1Rc9M0WWLzWp5uQ
NEX token holders share exchange fees collected while their tokens were staked and regulators might quickly label NEX a security token, potentially forcing the team to change token mechanics. The team even mentions in their white-paper: “Please note: legal and regulatory policy may require changes in this token model.”
If NEX were to change their token mechanics, there could be interesting utility use cases for NEX tokens to incentivize safe and fair exchange:
- Voting on NEX matching engine development changes.
- Bounties for unfair exchange behavior.
- Once NEX introduces cross-chain exchange, hubs could be incentivized with NEX to monitor events that occur on one chain and push them to a smart contract on another.
NEX enables a long term vision of decentralized banking through a smart contract based funds management service. (1) Users buy assets from conventional services, (2) then interact with them on the NEO blockchain through the NEX smart contract. (3) These assets can also be traded on NEX through NEP-5 pairs, to enable cross-chain exchange. (4) Funds stored in the management contract have access to other services such as indexed investment accounts or peer-to-peer lending.
Most of the founding members have been in the blockchain space since 2014. Fabio holds a MSc in computational mechanics and variational multi-scale modeling. He’s the source of the original vision for the City of Zion community, which brought together the founders of NEX. Fabian has extensive knowledge in machine learning and AI through his PhD from ETH Zurich. NEX is also supported by NEO founders Da Hongfei and Eric Zhang which should help speed up its adoption within the NEO ecosystem.
IMO this is not just a power-point presentation, Fabio, Fabian, Ethan, and Luciano were all co-founding member of CoZ (City of Zion) with strong engineering backgrounds in blockchain scaling, machine learning and AI. In 5–10 years, blockchains will be mostly used by AI, seamlessly exchanging tokenized goods and services as end-users are anticipated to use them.
Community and network effects.
Although they do not have a telegram channel, NEX has a strong twitter following (over 20K) and will be attending various conferences and meetups throughout 2018. Being the very first DEX solution for NEO + backing from NEO founders themselves —creates a lot of hype around this project.
Their Github account is still looking empty, there’s only a handful of commits from 2 people.
Questions for the team:
- Since NEX smart contracts must hard-code all token pairs that are supported by the exchange, who will decide which token pairs to hard-code?
- How do you compare to 0x? Do you have plans to become the DEX platform for exchanges to build on top of?
- Could you provide more details on how hubs will monitor events that occur on one chain and push them to a smart contract on another? Will this work similar to the ‘channel watchers’ as in Raiden?
- To make sure that the matching engine is acting fairly, you propose the idea of provable fair off-chain matching. Under this scheme, the off-chain matching engine follows a publicly specified deterministic algorithm. Who determines this deterministic algorithm and how?
- “NEX smart contracts must hard-code all token pairs that are supported by the exchange.” What does this mean exactly?
 NEX White Paper: https://neonexchange.org/pdfs/whitepaper_v1.1.pdf
 Ethereum Design Rationale: https://github.com/ethereum/wiki/wiki/Design-Rationale#accounts-and-not-utxos
Would love your thoughts and suggestions!