Platform (Investors)

What is "Investors"?

Investors is the first blockchain-based and asset-backed staking platform made by Hillstone Finance. In Investors, users can stake cryptocurrency in products (for example, venture capitals) guaranteed by Hillstone Finance and obtain profit. Users can convert cryptocurrencies deposited in Investors to HSF token (Hillstone Finance token) anytime, and extract these HSFs from financial products for sale. Users can also re-stake in the same products using HSF.

Investors Contract Architecture

Investors Contract Architecture
Every component of Investors except KYC/AML Module and Web Interface operates based upon Ethereum. The diagram above briefly illustrates the contract architecture of Investors. Each Module in the diagram has the following functions:
    InvestorRegistry: creates POOL, and passes staking lists to Web Interface for registration.
    InvestorV1: a staking product contract that receives cryptocurrency from users, and enables users to dispose HSF for cash; it is the vital components of Investors service that interacts directly with users. It follows the ERC721 standard.
    USDT (TetherToken): ERC-USDT token; it could be substituted for other stable coins depending on the different products listed on Investors.
    HillstoneFinance: HSF token contract.
    ContractStorage: used for storing contract information. It could be a centralized static server, a decentralized file storage such as IPFS, or a smart contract.
Key Participants:
    User: users of Investors; they can deposit or dispose cryptocurrency, and sell the rights to staking products by disposing HSF token.
    Admin: manages products listed on Investors, price of cryptocurrencies deposited in products, the status of Investor contract such as investment contract location.

Investor Contract LifeCycle

The following passage explains the lifecycle of a staking product in Investors with a simple example.
Product Creation
An organization with an adequate collateral enters into a mortgage agreement with Hillstone Finance and stores the contract in ContractStorage:
    Name of the collateral: WhaleFund1
    Target Staking Amount: 1,000,000 USD
    Minimum Staking: 700,000 USD
    Interest Rate: 10%
    Product Sale Starts at: 2021-07-14 00:00
    Product Ends at: 2021-08-14 00:00
    Staking Period: 2 years
Admin will call the function InvestorRegistry.createInvestor("WhaleFund1", 1000000, 5, "https://contract.hillstone.finance/WhaleFund1", …). When createInvestor() function is called, InvestorRegistry will create InvestorV1 and passes the address information to Admin through CREATE2.
Product Sale
Users access to product information and deposit USDT through Investor Web Interface. InvestorV1 will approve the amount of USDT users want to deposit. The function call InvestorV1.deposit (10000 10^18) will deposit 10000 USDT into the product. If users wish to withdraw the deposited money, they can call InvestorV1.withdraw (10000 10^18) to take 10000 USDT back. Admin will set the price of HSF one day before the sale of a staking product, and call HillstoneFinance.approve to let InvestorV1 collect HSF tokens which are disposable any time.
After Product Sale
The sale of a product ends after the end of the product deadline. If the deposited money is below the minimum staking, the product is canceled, and users have to call InvestorV1.withdraw to take their deposited USDT back.
If the deposit exceeds the minimum staking (700,000 USD), The deposited USDT will be sent to Admin, and Admin will deposit the corresponding amount of HSF in InvestorV1. Users can no longer use InvestorV1.withdraw once the deposit is sent to Admin. Users can call InvestorV1.exit to convert their share in the product to HSF token.
Disposal and Re-staking
If a user chooses to exit from a staking product, the user will receive HSF according to the price set by Admin.
The call of InvestorV1.Exit will create an empty room that has the exact size of the retrieved amount. For example, if someone disposes 100,000 USDT from a product that currently has a deposit of 500,000 USDT, the user has the right to collect 120,000 USDT from 600,000 USDT. Therefore, InvestorV1 sells the product as a re-stakable product. However, the re-staking is conducted through HSF, not USDT, and there is no limit to the amount of re-staking because the return is distributed in relation to the total amount of re-staked HSF.
Suppose there the size of the empty room is 100,000 USDT, and there are 20,000 HSF deposited in this room which has 10% of interest rate. A user who deposited 10,000 HSF in this room will get half of the overall interest, which is 110,000 * 50% = 55,000 USDT. If the total amount of deposited HSF is changed to 50,000 HSF, the user gets 110,000 * 20% = 22,000 USDT. The income distribution in this room depends on the ratio between an individual’s HSF versus the total amount of HSF deposited in this room.
Users can call InvestorV1.repurchase to deposit HSF in those re-stakable products (empty room).
Staking Returns and Liquidation
Admin will deposit USDT in InvestorV1 at the staking repayment deadline. After the deadline, users can not call InvestorV1.exit, but they can call InvestorV1.claim to receive returns. After every user receive their returns and Admin collect deposited HSF, the Investor contract will expire.
If Admin does not deposit USDT in InvestorV1 after the staking deadline, users can use InvestorV1.exit to collect HSF corresponding to their deposited amount, or ask for collateral transfer to Admin.
Last modified 2mo ago