Close

Earn 3.3% From your Deposit Daily, with Smart Contract

theFunction is an Ethereum blockchain platform based investment project using smart contract in its operations. 


A smart contract holds every deposit on its balance sheet and makes contributions of payments according to the conditions under specifications.  


The contract is executed in a predefined manner with no subject to modifications. At the same time, the contract code, its balance and the list of transactions are made available to the public and anyone can check them.

The contract fully corresponds to every information that the site indicates.

pragma solidity ^0.4.2;

contract HYIP {
	
	/* CONTRACT SETUP */

	uint constant PAYOUT_INTERVAL = 1 days;

	/* NB: Solidity doesn't support fixed or floats yet, so we use promille instead of percent */	
	uint constant BENEFICIARIES_INTEREST = 37;
	uint constant INVESTORS_INTEREST = 33;
	uint constant INTEREST_DENOMINATOR = 1000;

	/* DATA TYPES */

	/* the payout happend */
	event Payout(uint paidPeriods, uint investors, uint beneficiaries);
	
	/* Investor struct: describes a single investor */
	struct Investor
	{	
		address etherAddress;
		uint deposit;
		uint investmentTime;
	}

	/* FUNCTION MODIFIERS */
	modifier adminOnly { if (msg.sender == m_admin) _; }

	/* VARIABLE DECLARATIONS */

	/* the contract owner, the only address that can change beneficiaries */
	address private m_admin;

	/* the time of last payout */
	uint private m_latestPaidTime;

	/* Array of investors */
	Investor[] private m_investors;

	/* Array of beneficiaries */
	address[] private m_beneficiaries;
	
	/* PUBLIC FUNCTIONS */

	/* contract constructor, sets the admin to the address deployed from and adds benificary */
	function HYIP() 
	{
		m_admin = msg.sender;
		m_latestPaidTime = now;		
	}

	/* fallback function: called when the contract received plain ether */
	function() payable
	{
		addInvestor();
	}

	function Invest() payable
	{
		addInvestor();	
	}

	function status() constant returns (uint bank, uint investorsCount, uint beneficiariesCount, uint unpaidTime, uint unpaidIntervals)
	{
		bank = this.balance;
		investorsCount = m_investors.length;
		beneficiariesCount = m_beneficiaries.length;
		unpaidTime = now - m_latestPaidTime;
		unpaidIntervals = unpaidTime / PAYOUT_INTERVAL;
	}


	/* checks if it's time to make payouts. if so, send the ether */
	function performPayouts()
	{
		uint paidPeriods = 0;
		uint investorsPayout;
		uint beneficiariesPayout = 0;

		while(m_latestPaidTime + PAYOUT_INTERVAL < now)
		{						
			uint idx;

			/* pay the beneficiaries */		
			if(m_beneficiaries.length > 0) 
			{
				beneficiariesPayout = (this.balance * BENEFICIARIES_INTEREST) / INTEREST_DENOMINATOR;
				uint eachBeneficiaryPayout = beneficiariesPayout / m_beneficiaries.length;  
				for(idx = 0; idx < m_beneficiaries.length; idx++)
				{
					if(!m_beneficiaries[idx].send(eachBeneficiaryPayout))
						throw;				
				}
			}

			/* pay the investors  */
			/* we use reverse iteration here */
			for (idx = m_investors.length; idx-- > 0; )
			{
				if(m_investors[idx].investmentTime > m_latestPaidTime + PAYOUT_INTERVAL)
					continue;
				uint payout = (m_investors[idx].deposit * INVESTORS_INTEREST) / INTEREST_DENOMINATOR;
				if(!m_investors[idx].etherAddress.send(payout))
					throw;
				investorsPayout += payout;	
			}
			
			/* save the latest paid time */
			m_latestPaidTime += PAYOUT_INTERVAL;
			paidPeriods++;
		}
			
		/* emit the Payout event */
		Payout(paidPeriods, investorsPayout, beneficiariesPayout);
	}

	/* PRIVATE FUNCTIONS */
	function addInvestor() private 
	{
		m_investors.push(Investor(msg.sender, msg.value, now));
	}

	/* ADMIN FUNCTIONS */

	/* pass the admin rights to another address */
	function changeAdmin(address newAdmin) adminOnly 
	{
		m_admin = newAdmin;
	}

	/* add one more benificiary to the list */
	function addBeneficiary(address beneficiary) adminOnly
	{
		m_beneficiaries.push(beneficiary);
	}


	/* reset beneficiary list */
	function resetBeneficiaryList() adminOnly
	{
		delete m_beneficiaries;
	}
	
}

Smart Terms for Smart Contract

Making an investment in theFunction will earn you a 3.3% daily interest of the deposits you make. You will earn from the investment through interest income which is paid by a smart contract every day to your Ethereum wallet. 


The daily project commission is 3.7% of the contract balance amount. Investments will be made from the commissions through project adverts.


Our interest is also on the long-term work of the contract because it is through these long-term engagements that we make proceeds. 


The contract lacks deposit return function. This is because it is impossible to create a fully decentralized project with a return function as such function exhausts the entire balance of the contract within the first month of payments. Our choice is aligned to the decentralization and subsequently creating a stable income for our investors. 

Caution! Financial Pyramid!

Every payment in the project is formed as a result of new investments. 

Differences

The smart contract code is stored in Ethereum and cannot be modified. Terms as well cannot be modified by anyone, even by the creators.

The contract fully corresponds to every information that the site indicates. The terms for the smart contract, every investment and payments are available to the public and can be verified any time.

Transparency

As an Ethereum member, you can call the PerformPayouts function from which you will receive payments of your investments regardless of our will. Without its call, we will not receive payment, either, so do not worry.

Reliability

Punctuality

Installing Google Chrome

After creating a wallet, you can now buy Ether at MetaMask interface.

Install Google Chrome from the official site in the case you do not have one: http://google.com/chrome


Click "Transfer Ether & Tokens", enter the contract address 0x4fb663c1616bfe80b5b6d5a214efa81d5a121801, input the desired amount of ETH to invest and press "Send".

Choose your wallet from the list and enter the amount using the special form to send the investment via MetaMask.

First, download and install Ethereum Wallet from the official site https://www.ethereum.org. Upon the installation of the client you can proceed with the next step. 


Buying Ether

Ethereum Wallet


                         theFunction 


Contract Address: 0x4fb663c1616bfe80b5b6d5a214efa81d5a121801


Please make sure you are sending Ether to the correct address!


Ethereum Wallet doesn't not show incoming payment transactions. To see incoming transactions from theFunction, use https://etherscan.io/

After creating a wallet, you can now buy the coins at the  Etherereum Wallet interface.

Invest From The Web

Installing MetaMask Plugin

Send Coins to Contract Wallet

This program allows you to run Ethereum Ðapps in your Google Chrome browser without having to run its full node. Get the plugin at https://metamask.io


Creating an Account

Creating a Wallet

Click on the Add Account button, enter a strong password and have it written in a safe place. In the case you forget your password, you will be denied access into your account.

Create your Ethereum wallet through MetaMask. While doing so, kindly do not forget to switch to the Ethereum main network and create a strong password for your wallet. 


At this point, you have to synchronize the blockchain. It will take several hours and a few gigabytes on the hard disk. If you cannot wait, you can work through MetaMask (see the left pane).

Downloading the Blockchain

Buying Ether

Read Our F.A.Q.


Verify theFunction on etherscan.io


Contact us:

support@thefunction.io