Exhibit
4.4


 


 


 


 





 


INX
Smart Contract


 


Description


 


V.2.1


 


May
13, 2019


 






     


     


    




 





 


Introduction


 





“Smart
contracts” are self-executing rules in a programmable computer language on the blockchain that are enforced by the participants
of the blockchain’s network. The Ethereum blockchain is an open-source, public, blockchain-based distributed computing platform
that allows for decentralized programming of applications and the use of smart contracts. Many blockchain assets are developed
in accordance with the “ERC20” standard, which allows developers to program them to include smart contracts that function
within the Ethereum ecosystem.


 


The
INX Token is an ERC20 smart contract. Material features of the INX Token included in the source code are the following:


 


		1.	Designation
                                         and Number of Tokens. The INX Tokens of INX Limited (the “Company”) shall
                                         be designated as “INX Tokens.” The number of authorized INX Tokens is 200,000,000.
                                         The technical limits on the fractional division of INX Tokens is to eighteen decimal
                                         places (0.000000000000000001). The INX Token is an ERC20 blockchain asset that is programmed
                                         using a smart contract written in Solidity that is compatible with the Ethereum blockchain.
                                         The ERC-20 standard is a technical standard used for smart contracts on the Ethereum
                                         blockchain so that tokens can be transferred to a digital wallet.



 





		2.	To
                                         be deemed to be a holder of record of INX Tokens, a holder must (a) register an
                                         Ethereum wallet with the Company to be included on the Whitelist Database and (b) have
                                         the public wallet address of this Ethereum wallet recorded on the “INX Token distributed
                                         ledger” as the holder INX Tokens.



 





		3.	The
                                         “Whitelist Database” is a database stored on the data section of the
                                         INX Token smart contract. The purpose of the Whitelist Database is to validate decentralized
                                         transfers of the INX Token. The Whitelist Database contains a list of individuals and
                                         entities that have satisfied the Company’s KYC/AML compliance procedures and thus
                                         are eligible to hold INX Tokens. In order for an Ethereum wallet address to be included
                                         in the Whitelist Database, the prospective holder of record of the INX Tokens must have
                                         completed know your customer and anti-money laundering (“KYC/AML”) compliance
                                         procedures, or other similar procedures, to the satisfaction of the Company, or an agent
                                         of the Company that is expressly authorized in writing by the Company.



 


The
INX Token smart contract incorporates our Whitelist Database, which restricts the transfer of INX Tokens such that a transfer
is not executed and recorded on the INX Token Distributed Ledger unless both the digital wallet addresses of the sender and receiver
are listed in the Whitelist Database.





 


		4.	The
                                         “INX Token distributed ledger” references the ledger of ownership
                                         of INX Tokens that is recorded on the Ethereum blockchain. The INX Token distributed
                                         ledger records the public wallet addresses of all Ethereum wallets that hold INX Tokens
                                         and the balance of INX Tokens in each wallet address. INX smart contract is an Ethereum
                                         smart-contract written and developed in solidity, and as such, it is designed and programmed
                                         to be deployed on the Ethereum public mainnet network. Being deployed on Ethereum public
                                         network, make it available to all Ethereum tools, including Etherscan and other block
                                         explorers.



 





		5.	Transfer.
                                         INX Tokens may be transferred only among Ethereum wallets included in the Whitelist Database.
                                         Transfers of INX Tokens will be executed by the INX Token smart contract under conditional
                                         permission that the wallet addresses of both the sender and receiver of INX Tokens are
                                         listed on the Whitelist Database. The INX Token smart contract will verify that both
                                         the sender and the receiver wallet addresses are included in the Whitelist Database prior
                                         to approving or rejecting the transfer. If either the sender or receiver wallet address
                                         is not listed in the Whitelist Database, the smart contract will reject the transfer
                                         and the INX Token Distributed Ledger will not be updated.



 






    2


     


    

 





 


		6.	The
                                         INX Token smart contract incorporates a lock function, which restricts the transfer
                                         of INX Tokens to or from a specified digital wallet address for a specified time. Once
                                         the lock function is activated, INX Tokens cannot be transferred from the locked address
                                         until the lock-up period has elapsed.



 


Main
Functions


 


The
following table covers the main (not all) functions of the smart contract.


 


	Function	 	Description	 	Ref	 	Tested
	transfer	 	Transfer
                                         (ERC20) funds(inx) from one address to other.

        - 
        Need to have balance

        - 
        Value (amount) should not be locked

        - 
        Validate should pass (0) on proxy contract (external and upgradable validation)
	 	InxToken.sol	 	Yes
	 	 	 	 	 	 	 
	balanceOf	 	Check
    the balance of an address (ERC20) and returns the value	 	InxToken.sol	 	Yes
	 	 	 	 	 	 	 
	updateInxService	 	Updating
    the address of the proxy contract	 	InxToken.sol	 	Yes
	 	 	 	 	 	 	 
	Constructor
    (inx token)	 	Should
    receive parameter of the initial address of the proxy validation	 	InxToken.sol	 	Yes
	 	 	 	 	 	 	 
	lock	 	Lock
    and amount and set its release time (EPOCH) for a specified address	 	Timelock
    (InxToken.sol)	 	Yes
	 	 	 	 	 	 	 
	release	 	Immediately
    release amount for a specified address	 	Timelock
    (InxToken.sol)	 	Yes
	 	 	 	 	 	 	 
	checkNoneLockAmount	 	This
                                         function receives an address and an amount (usually the value for transfer) and checks
                                         if the amount is locked.

        If
        the return value is equal to the amount that was sent, then the whole amount is NOT LOCKED and can be transferred.

        If
        the returned value is 0, that means that the WHOLE AMOUNT IS LOCKED and cannot be transferred.
	 	Timelock
    (InxToken.sol)	 	Yes
	 	 	 	 	 	 	 
	checkLockup	 	Receives
    address and return the locking status as an array of 2 elements, release time (EPOCH) and amount. If both are 0, then there
    is no locked amount for this address	 	Timelock
    (InxToken.sol)	 	Yes
	 	 	 	 	 	 	 
	setWhiteList	 	Enable
    owner to set whitelisted status (bool) for an address. A whitelisted address is a struct of boolean (the status) and a string
    (data). For whitelisting an address the value should be set to true. If the status is changing, the whitelisting should be
    set to false.  	 	Whitelisting

        (InxToken.sol)
	 	Yes
	 	 	 	 	 	 	 
	isWhiteListed	 	Returns
    (bool) the whitelisting status of an address	 	Whitelisting

        (InxToken.sol)
	 	Yes
	 	 	 	 	 	 	 
	getWhiteListData	 	Returns
    the data (string) of the whitelisted address.	 	Whitelisting

        (InxToken.sol)
	 	Yes


 


 


3