Chintai Community Update #2 — August 2018: Chintai Has Arrived!
The Chintai team is very excited to announce the forthcoming release of Chintai Version 1.0 on the EOS.io blockchain. We anticipate the release date for this inaugural version of the Chintai platform on August 21st. This is the culmination of many months of work by the Chintai core team, and we are proud of the progress that has been made to date.
We would like to reiterate that, given the complexity of the EOS leasing market, we have tried to consider as many of the potential issues and consequences that may result from the introduction of this marketplace as possible. Our primary focus has been on ensuring user trust and security, which is why we have not rushed to release the initial product. Our main concern is that Chintai users have their funds secured, and are able to utilize the Chintai platform without sacrificing any benefits innate to EOS token holders. Chintai Version 1.0 will be the first release of the Chintai token leasing marketplace. Accordingly, there is still much to be done, and future iterations will provide much of the advanced functionality discussed in this update. Thus, even though the August 21st release will more closely resemble an MVP for the project, the platform will be optimized continually in order to provide the most advanced and secure product for the community. Once again, we would like to thank the community for all their support thus far, and we could not be more excited to bring this platform to you: the future is EOS income!
II. Technical Overview
III. User Interface
IV. Backend Functionality
V. Chintai Smart Contract
VI. Other Features
For those unfamiliar with the project, Chintai is a decentralized application (dApp) built on the EOS blockchain. The EOS.io protocol is powered by the EOS utility token, which provides CPU/Bandwidth resources for dApp development on the EOS network. Chintai will be the go-to marketplace for peer-to-peer token leasing on the EOS.io blockchain. Intrinsic to the EOS.io blockchain is its ability to allow users to delegate EOS tokens to peers attempting to utilize the tokens for their intended development purpose. This feature provides developers access to EOS tokens to power their dApp’s without having to purchase tokens outright. The platform will allow users to generate passive income by offering to lease their tokens to developers, while, in turn, providing a liquid pool of EOS available to developers looking to rent tokens at reduced costs. Most importantly, Chintai will be a feeless platform, providing the interface for peer-to-peer lending, enabling maximum efficiency and ease of operability for all EOS token holders.
We’d also like to note that we are very aware of Dan Larimer’s recent CPU/Bandwidth proposal for the EOS.io platform. First of all, we’d like to reiterate that we welcome any other staking and leasing solutions in the space. We believe this will be a very competitive market, and the end goal is to provide the best overall product on EOS; competition only pushes the market forward and there is room for multiple solutions. Regarding Dan’s proposal, we will wait and see how it progresses; however, we remain ready to evolve and adapt Chintai if this ever becomes a necessity. Regardless, we intend to launch Chintai as planned, and believe Chintai will provide an immediate benefit to the EOS community in becoming the predominant EOS leasing/staking solution in the space.
II. Technical Overview
The Chintai platform will be divided into two components: a distinct frontend and backend, with the following core functionality:
· Ability to create and cancel orders
· Ability to store unfulfilled orders on the blockchain
· Create leases for matched orders
· Transfer any outstanding EOS back to users upon lease expiration
· Remove any stored information once orders and leases are complete
· Support of airdrops/airgrabs and BP voting
To support this core functionality, the platform code has been written based on each of these frontend and backend components respectively. Furthermore, the platform has been programmed with flexibility in mind to support future Chintai development and expansion. The features listed above reflect much of the core functionality that will be available for the initial release of the platform at the end of August. However, development of more complex features is already in progress, with future iterations allowing for advanced functionality such as spot-market pricing, auto-renewal and various other token lending features. The breakdown of the individual frontend and backend components will be discussed in further detail below.
III. User Interface
The Chintai user interface will interact directly with the EOS blockchain using EosJS in order to push transactions and read data. All users will authenticate with the EOS.io network, through Scatter (https://get-scatter.com/), to login to the frontend interface. This will essentially be each user’s unique user profile, where they can choose specific account configurations such as email alerts, which will also be added in future iterations. Similar to the way in which Facebook authenticates users on other applications, Scatter will be used to integrate seamlessly with the blockchain without adding complexity for those wishing to utilize Chintai and the EOS network. When a user visits the Chintai login page, users will be able to click a button in order to authenticate with the blockchain via Scatter. Therefore, users will need to create a Scatter log-in to transact on Chintai. We have used this method to ensure maximum security of EOS private keys and token funds, as well as for seamless integration with the EOS blockchain.
Order Management & Execution
Users will have access to a list of both “Stake” and “Lease” orders available on the Chintai open market. The list will be available by querying the Chintai backend order table containing all outstanding unmatched orders. Orders will be sorted by interest rate, and then by time (in milliseconds). Once retrieved from the backend by the user interface, orders will be grouped further, so that all orders with the same interest rate are consolidated. For example, the backend order table may have two separate requests: User A requests 150 EOS at 1.5% interest while User B requests 200 EOS at 1.5% interest; these requests must occur within milliseconds of each another in order to be grouped. However, the actual display on the user page will portray an open order request of 350 EOS at 1.5% interest. This will ensure that users see all outstanding orders, as well as a continually-updated display of new orders occurring in the market.
Order Creation & Cancellation
In terms of order creation, each user will have one primary way of creating an order. The market screen that displays the order book will have a panel with user inputs for staking and leasing. This panel will be split into two sections for both “Stake” and “Lease” orders. Users will then input the quantity they wish to stake or lease, together with the interest rate they wish to match for their order. A transaction will then be generated by the frontend moving the funds via the eosio.token contract, with a memo attached relating the interest rate associated with the order. The transaction must then be signed using the Scatter Chrome Extension. Orders may initially have limitations such as minimum/maximum quantity and interest depending on demand and liquidity, but this is subject to change. If the order is outside of these limitations, the order will be rejected by the smart contract in the initial Version 1.0 release. For Chintai Version 1.0, the only order type supported will be a “Limit Order”. However, upon further development of the spot-market pricing algorithm, future iterations of Chintai will support both “Market” orders and “Stop-Limit” orders.
Users will also be able to cancel orders, but only those that are partially or fully unfulfilled. Any quantity not yet matched can be cancelled by the user who proposed the initial request. The remaining unmatched quantity will be returned to the original account holder, while the portion of the order that has already been filled will remain leased until the expiration of the lease contract. Users will have the ability to cancel orders both on the market screen where the order was created, as well as on the user management screen displaying the list of orders. Cancellation will require an Order ID, stored in each individual user’s order table, and will require re-authentication from Scatter to sign a cancellation of the transaction.
Note that users will also be responsible for providing the necessary RAM required for storing orders on the blockchain. However, the amount of RAM needed to do so will be minimal. The RAM requirement will be displayed on the order input page, via a highlight or small information box. We will be creating a cheat sheet to provide details on these requirements, as well as a “How-To” for users nearer to launch.
Open Order, Order History & Graphic Display
Users will be able to view personal orders both on the market screen, in terms of a “Lease” or “Stake” open order, as well as on the user’s personal “My Orders” screen once logged into their Chintai personal profile via Scatter. All open orders will be displayed with the quantity and interest rate, as well as the lease period and expiration date. Options for auto-renewal will be built out in future iterations after the release of the initial Version 1.0. A page will be created to query this order cache, to retrieve and then display a paginated list of Chintai orders that have been created, along with a specific cache for each user’s personal order history, displayed chronologically. The user interface will be responsible for keeping a live display of all Chintai orders on the blockchain, based on this querying page. The user interface will also have a candle stick chart for each “Lease” and “Stake” market, displaying the price statistics for any given period over the last year. The graph will be able to display statistics over various time periods, e.g. one month, six months, one year, etc.
The Chintai interface will also have additional pages displaying relevant information and content for all Chintai users. For example, there will be a “News” page containing any announcements and updates from the Chintai team. Similarly, a “Support” page will be available containing FAQs, as well a secure way to contact the Chintai support team with any questions or concerns that may arise.
IV. Backend Functionality
The Chintai backend is built using the Spring framework, utilizing the EOS Java API wrapper library to interact with the EOS blockchain. The library will serve to pull and index any blockchain transactions that include the Chintai contract. To store live information on the blockchain, contract tables will be queried every thirty seconds. The extracted data will be used to generate various SQL reports, including the following:
· Account Statistics: Account Name, Registration Date, EOS In, EOS Out, Current EOS Balance, Current Airdrop Balance, Current EOS Leased, Transactions Per Month
· Account Transaction History: Account Name, Transaction in, Transaction out, Transaction history
· Chintai Statistics: Registered Account Quantity, Monthly EOS Volume, Current EOS Lease, Current EOS in Orders
· Chintai Transaction History: Monthly Inbound Transactions, Monthly Outbound Transactions
For creating and managing orders when staking EOS, users will transfer their funds to the Chintai smart contract. Similarly, when leasing EOS, users will transfer the amount of EOS they wish to pay in interest to the Chintai contract. When a new transaction is sent to the Chintai contract, it is compared with the list of current open orders. Once the most favorable match is found, the order is consumed in full, or as much as possible. The remaining funds will then go to the next most favorable order and continue until the order is completely fulfilled, or there are no longer any matching orders. If any portion of the order remains unfulfilled, it will be saved in a persistent memory database for later execution when sufficient favorable demand arises.
V. Chintai Smart Contract
When an order is entered by a user on the Chintai platform, for both “Stake” and “Lease” orders, the funds are sent to the Chintai smart contract address. The smart contract will be detected within the apply function by listening for the eosio.token transaction. This will ensure that only the EOS.io system can trigger the creation of an order. Once the order is created, it is added to the appropriate order stack (STAKE or LEASE). As mentioned earlier, these orders will be sorted by interest rate first, and then by time. Once added to the appropriate stack, the consume function will be called and will then match orders on either stack to create a married order pair. All orders will charge the user account a minimal amount of RAM when storing the data, which is intended to reduce the overall amount of RAM required for optimal performance. This will also help to prevent spam, as a minimum amount of RAM will be required when creating an order. If this minimum requirement is not attained, the RAM will be returned to the user and the order will not execute.
Once an order has been matched, a transaction will generate from within the contract. It will then be pushed to the delegate method transferring the EOS from within the Chintai smart contract to the lessor for the designated period. Interest will then be calculated, based on the order request, and returned to the user who has delegated their EOS. (Note: It takes 72 hours to un-delegate, and this will be factored into each term period). Each order will be stored within a table, noting when the lease began, as well as the term period of the contract order. These orders will then be sorted by the time-stamp referencing the beginning of the lease, and checked periodically to see if any leases have expired. Once an order has expired, a new transaction is generated, transferring the delegated EOS tokens back to the original user’s account. Chintai will not hold onto any active EOS, except for those that currently exist in open orders and those that have already been delegated and are awaiting return.
Much of our focus for the platform has concentrated on the best way to handle the delegation of user funds. After much debate, we have concluded that with the current system setup, the most secure way of handling funds is through the use of this smart contract. We believe this is the best method to prevent bad actors, while also ensuring that funds are returned promptly and the agreed-upon interest is paid. Similarly, the smart contract method ensures that users do not lose the ability to vote or receive airdrops. Our main goal has been to protect the fundamental rights of EOS token holders in terms of voting and airdrops, ensuring that users do not have to make any sacrifices when choosing to delegate their tokens. However, it is possible that, as changes are made to the EOS system code, this smart contract mechanism may change. We are already exploring the potential benefits of employing a reputation based system to help create a fully decentralized marketplace, as well as other solutions to aid in full decentralization. However, under the current circumstance, we believe that the utilization of the Chintai smart contract provides the greatest benefit to the community.
VI. Other Features
As noted throughout this update, Chintai Version 1.0 will mainly provide functionality for basic staking and leasing, as well as voting and future airgrab support. Chintai will be designed to allow future markets to access the platform for different use-cases. This includes the ability for different EOS sidechains to utilize Chintai on their own chains, as well as for applications that may require different leasing mechanisms. The lease market will initially be set up to accommodate 3-day, 7-day, 14-day and 30-day lease periods, while future updates will provide a wider variety of lease term options. Similarly, as noted above, the platform will eventually provide a spot-market pricing mechanism to determine current lease and interest market rates upon further development of this market-pricing algorithm.
Most importantly, Chintai will ensure users do not sacrifice the ability to access any of the fundamental benefits inherent to the EOS blockchain, such as voting and airdrops. The initial release will allow for partial voting and airdrop functionality, with full functionality to be implemented soon after. When staking EOS, users will still be able to vote for block producers (BP’s) through the Chintai platform. When entering “Stake/Lease” orders, users will be able to select BP’s they wish to vote for via the Chintai platform. For initial release, Chintai users will be able to vote from a static list of the top 30 BP’s. Future updates will provide access to a more dynamic BP voting list, and selection of all available block producer candidates. It is our hope that by allowing users to vote directly through the Chintai platform, more users will be incentivized to vote for BP’s and influence the EOS blockchain. By providing users the incentive to use Chintai to generate passive income; this will also incentivize new users who, who may have previously not voted, to vote, as they now have a more easily accessible method to do so by using Chintai in conjunction with staking.
Similarly, users will not miss out on any airdrops when sending funds to the Chintai smart contract. When any airdrops occur, Chintai will receive a lump sum from the eosio.token contract for the coin being dropped. Once the coin is airdropped, a snapshot will be taken and stored in a table to be processed by the Chintai backend. This table will then be used to track the amount of EOS delegated by each user, and Chintai will then re-distribute all airdropped tokens directly back to any users who have currently staked their EOS. The airdrop “claim” function will not be immediately supported; however, when airdrops occur before this functionality is fully implemented, Chintai will take a snapshot of the current state of user-delegated funds. Once airdrop functionality is fully implemented, Chintai will parse this snapshot record and provide the opportunity for users to claim any airdrops they may have previously missed out on. Therefore, users will still have access to any airdrops that occur after initial release through the Chintai airgrab function. The snapshot will maintain a history of all airdrops, and once “claim” functionality is fully supported, users will be able to claim any airdrops that may have occurred since Chintai’s release. Again, this is one of the main reasons we will be using the smart contract mechanism for the lending market: to assure users receive airdrops as intended, as well as to provide greater incentive for users to vote via Chintai.
In conclusion, we are eager to provide this essential utility and release the Chintai platform to the entire EOS community. As mentioned, we intend to launch Chintai Version 1.0 on August 21st, and will be using the next few weeks for extensive testing by the core team. As always, we would again like to thank the community for all its valuable input that has been so critical to the development of the platform. As this is an application built for the community, Chintai has attempted to implement all of the input we have received thus far. We ask that the community continues to provide suggestions and recommendations to the core team, and we will continue to do our best to accommodate any and all requests users may have. Please continue to visit our Telegram channel: https://t.me/ChintaiEOS for the most up-to-date details regarding the project, as well as our website: https://chintai-eos.io/ and our twitter @ChintaiEOS. Again, we thank the entire EOS community for all the support we have received, and we are incredibly excited to see what the future holds for Chintai, and for the EOS community at large!