1 of 27

2 of 27

INTRODUCTION

The blockchain industry has proven to be fast moving with rapid adoption and evolution. With the advances of technology and innovation, previous standards and protocols are being replaced resulting in increased performance and efficiency.

At Coinvest, our goal is to develop and deploy solutions as quickly as possible in order to gather customer feedback and continuously iterate. A repeated cycle that ensures that we are collaboratively working with our partners and overall community to develop solutions that are in full alignment with expectations. Ultimately, to push the envelope against any or all competition.

When we first started development of our smart contracts and the COIN protocol seven months ago, the tools and standards available to-market enabled us to deploy an initial version of our protocol that achieved unique innovation – one that is still unparalleled in the today’s world of cryptocurrency investing, by removing the requirement to physically hold cryptonized assets to retain their value. With advancements in BIP and new standards, we have advanced our technology to optimize our execution while increasing simplicity for our end user.

Welcome to COIN Protocol V2...

3 of 27

SUMMARY

COIN V2 is an upgrade to the existing COIN protocol and smart contracts. These changes include an upgrade with standard ERC865 while downgrading the token from ERC223 to ERC20.

In the world of Ethereum, Ether is the fuel to execute transactions on its blockchain. Thus, requiring users to have Ether on hand to execute transactions regardless if the platform only uses one native token. Therefore, requiring two tokens to execute one objective. The ERC865 standard enables the payment of transfers in tokens instead of gas; therefore, eliminating the need to posses Ether and another token to execute single transactions. We are also using the signing capability that allows a party to transfer tokens on behalf of the token owner to make authorized sells on the investment contract. While it may sound trivial, this is powerful as it reduces the need for repeated authorizations from the owner which makes processes more efficient.

ERC223 is a token standard to prevent the loss of funds when sending tokens to a contract that is not intended to handle ERC20 tokens. As a result, the tokens will not be rejected and are stuck in the contracts balance leading to loss of funds for the sender. At Coinvest, we implemented this standard as one of our blockchain engineers, Dexaran Derat, was the founder of ERC223. Additionally, because we wanted to prevent any loss in funds as well as lead in innovation. Unfortunately, being on the bleeding edge of technology has not favored us as a number of exchanges have yet to upgrade and support the ERC223 standard. As a result, they are not able to support COIN at this time. To rectify the situation and offer COIN to masses, we understand the importance of aligning with current supported standards. Hence our decisions to downgrade our token standard from ERC223 to ERC20.

4 of 27

REQUIREMENTS

To improve our protocol architecture, our goal was to build on top of the original requirements from the previous version. New requirements are in red.

  • Requires no user account creation, login, or storage of user data�
  • Enables users to pay gas with COIN instead of ETH to avoid having the need for more than one asset to execute tasks�
  • Support and compatibility for legacy exchanges using only the ERC20 standard

  • Requires only the use of COIN for investment and all contract execution

  • All portfolio and investment data is written to and can be retrieved via the smart contract and blockchain by the Coinvest Wallet and DAPP

  • Supports the ability for any developer to build a frontend to interact with the contracts (web and mobile)

  • Simple, efficient, secure, reliable, scalable

5 of 27

TECH RESULTS

To meet our requirements, Coinvest refined the COIN token architecture to leverage ERC865 to allow transaction fees to be paid in COIN tokens instead of gas. Additionally, use the signing capability that allows a party to transfer tokens on behalf of the token owner to make authorized sells on the investment contract.. Here’s how it works:

  • The user chooses which address to send COIN to and how much COIN to send.

  • The frontend hashes this information along with the signature of the function to be used,the nonce of the transaction, and the gas price (in COIN) the user will pay for the transaction. All of this information can be confirmed in the hash before the user signs it to ensure the frontend is not submitting fake parameters.

  • The user is prompted to cryptographically sign this hash using their address that has the COIN to be sent in its balance.

  • Our server address submits this transaction information and signed hash to our token using the transferPreSigned function.

  • The token takes the given information, hashes it, then uses ecrecover to determine the signer of the message.

  • If the signature matches all given information, normal token actions are gone through and the given amount of COIN is sent to the “to” address.�

Please Note: To make a buy on the investment contract instead of a normal transfer, the same steps are taken but with the token’s “approveAndCall” function with the given data for the buy call. A sell is the same but directly on the investment contract without token actions (because no COIN needs to be sent).

6 of 27

BENEFITS

So what do these upgrades mean for Coinvest and our users?

  • No User Registration or Account

Users can trade on the Coinvest investment trading platform anonymously using their wallet address without having to create an account or supplying any personal information�

  • Simplicity Using One COIN
    • Users can invest in other assets using the Coinvest smart contracts and COIN protocol directly from their wallet using only COIN
    • Users can invest or transfer funds in the Coinvest ecosystem without requiring Ether to pay for gas�
  • Compatibility on Exchanges

Improve compatibility for exchanges that only support the ERC20 standard

COIN V2 includes improvements with security, privacy, performance, and efficiency. In addition to these improvements, COIN V2 would have full compatibility and support with current exchanges on the market today.

7 of 27

COIN PROTOCOL V2

8 of 27

TRADE PROCESS

  • User unlocks wallet by providing verification with private key. Upon authentication, Coinvest front-end pulls ALL wallet token balance and Coinvest account balance information from the blockchain and user can view portfolio and wallet data.

  • To Trade: User submits trade order by entering a buy or sell order condition on the Coinvest front-end.

  • To Transfer: User submits transfer order by entering a transfer request on the Coinvest front-end.

  • User signs order upon being prompted with a confirmation to confirm or cancel order.

If confirmed, order is signed.

  • Coinvest backend sends signed order to the investment contract, paying all Ethereum transaction fees (gas) for the user (in exchange for COIN from the user).

  • Investment contract manages fee schedule and user holdings (cryptonized assets and portfolio balances) to the blockchain and either:
    • Buy: Accepts COIN (for the equivalent value in purchased cryptonized assets) from the user’s balance COIN balance to the COIN reserve and takes a $4.99 from the user balance *
    • Sell: Sends COIN (for the equivalent value in sold cryptonized assets) to the user’s COIN balance from the COIN reserve minus the $4.99 trade fee *

* Trade fee is sent to Coinvest corporate wallet address

9 of 27

10 of 27

TRANSFER PROCESS

  • User unlocks wallet by providing verification with private key. Upon authentication, Coinvest frontend pulls ALL wallet token balance and Coinvest account balance information from the blockchain and user can view portfolio and wallet data.

  • To Transfer: User submits transfer order by entering a transfer request on the Coinvest frontend.

  • User signs order upon being prompted with a confirmation to confirm or cancel order.

If confirmed, order is signed.

  • Coinvest backend sends signed order to the investment contract, paying all Ethereum transaction fees (gas) for the user (in exchange for COIN from the user).

11 of 27

12 of 27

UPGRADES

  • Add ERC865 functionality to token, allowing one address to transfer for another as long as the owner has cryptographically signed the transfer information�
  • Use traditional ERC20 structure with approveAndCall for easy investments instead of our current ERC223 structure�
  • Remove broker functionality in investment contract to allow any frontend to use delegate transfers and sells�
  • Add receiveApproval function to investment contract

13 of 27

IMPACT

COIN V2 upgrades require a fork of the existing COIN token. Collectively, we have agreed that a fork is most beneficial now as opposed to the future for the following reasons:

  • Seamless distribution using a smart contract with no user interaction. New COIN V2 would automatically be sent to the wallet addresses of those that are currently holding OLD COIN (rendering OLD COIN with no value). Forking in the future would require a token swap and manually require token holders to be involved in the process.�
  • Coin V2 upgrades reduce complexity and decreases the time to bring the platform to market

14 of 27

TIMELINES

  • Completion of the new COIN V2 smart contracts (3/5–3/30)�
  • COIN V1 token hard fork and deployment of new smart contracts to COIN V2 (4/2–4/13)�
  • COIN V2 token professional security audit (4/16–4/27): Completed by Authio�
  • COIN V2 security audit fixes and revisions (4/30–5/4)�
  • COIN V2 community security audit and revisions (5/7–5/11)�
  • COIN V2 token swap and distribution (Week of 5/14)

15 of 27

ETHERLESS DEMO

16 of 27

DEMO

The purpose of the Coinvest Etherless demo is to demonstrate V2 of the Coinvest token contract. More specifically, the ability to allow one address to delegate the transfer of COIN on behalf of the owner after the owner has signed a message giving permission for the transfer, thus eliminating the need for the owner to send the transaction to the blockchain themselves.

  • Install Metamask for your browser (Requires Firefox, Chrome, or a Brave Browser)
  • Navigate to URL: http://etherless.coinve.st
  • Create a Metamask account, login, and change network to the “Ropsten TestNet” in order to unlock access to the demo
  • If your Total COIN balance is 0, tap the Refill button to replenish your account with 10,000 sample COIN
    • A popup will open displaying the TX ID of the sample COIN being transferred to your wallet. You can view this sample transaction on the Ropsten TestNet. Tap the OK button to close the pop-up.
    • Refresh the page
  • Enter the destination address in the “TO ADDRESS” field
  • Enter the desired amount of COIN to transfer in the “AMOUNT” field
  • Tap the SEND COIN button
  • A Metamask pop-up will appear asking for confirmation to sign and approve the transaction. Tap Sign to approve the transfer.
  • The TX ID link will appear with the results of the transfer on the TestNet blockchain
  • Refresh your page
  • The TOTAL COIN balance will be updated with your updated COIN balance minus the transfer

17 of 27

18 of 27

COINVEST APP V2

19 of 27

20 of 27

21 of 27

22 of 27

23 of 27

TECH STACK

HTML / CSS / JAVASCRIPT

VUE.JS

(Frontend UI Library/Framework)

NGINX

(Web Server)

NODE.JS

(Backend Server)

ETHEREUM NODE

(GETH / API Server / Blockchain / Smart Contracts)

MySQL

(Transactional Data Store)

UBUNTU

(Server Operating System)

AMAZON WEB SERVICES

(AWS Cloud Technology Services)

24 of 27

APPENDIX

25 of 27

DEFINITIONS

  • Coinvest Frontend - Coinvest frontend GUI to the Coinvest account contract and secure wallet storage for ERC20 compatible assets.

  • Coinvest Token Contract - The Coinvest Token (COIN) ERC20 token contract with ERC865 functionality. This token contract will employ traditional ERC20 structure (with an approveAndCall function for easy investing) instead of the current ERC223 and will include the ability to allow one address to delegate the transfer of COIN on behalf of the owner after the owner has signed a message permitting the transfer, thus eliminating the need for the owner to send the transaction to the blockchain themselves.

  • Coinvest Investment Contract - The contract that a user may access directly themselves or through Coinvest to buy and sell cryptonized assets and indexes using the COIN token.

  • Authorized Buy - A buy transaction whose data is cryptographically approved, signed by the user, and is sent by the Coinvest Account Contract

  • Authorized Sell - A sell transaction whose data is cryptographically approved, signed by the user, and is sent by the Coinvest Account Contract

26 of 27

RESOURCES

The technical constructs and details are each standard can be found below:

27 of 27