Exhibit 4.4


 





 





 


INX
Smart Contract


 


Description


 


V.2.2


 


July
7, 2019



 






    1


     


    

 


 


 


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.
	 	 	 
	 	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.




 






    2


     


    

 





 


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 another.

        -      
        Need to have balance

        -      
        Value (amount) should not be locked

        -      
        Validate should pass (0) on proxy contract (external and upgradable validation)
	InxToken.sol	Yes
	balance
    Of	Check
    the balance of an address (ERC20) and returns the value	InxToken.sol	Yes
	update
    Inx Service	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
	check
    None Lock Amount	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 or greater 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



 






    3


     


    

 





 


	check
    Lockup	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
	set
    White List	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
	is
    WhiteListed	Returns
    (bool) the whitelisting status of an address	Whitelisting

        (InxToken.sol)
	Yes
	get
    WhiteList Data	Returns
    the data (string) of the whitelisted address.	Whitelisting

        (InxToken.sol)
	Yes
	check
    WhiteList Status	Checks
    the whitelist status of an address	Whitelisting

        (InxToken.sol)
	Yes
	get
    WhiteList Data	Get
    the data that is set with a whitelist address	Whitelisting	Yes
	increase
    Approval	Increase
    an approved amount to spent.	InxToken	Yes
	decrease
    Approval	Decrease
    approval amount to spent.	InxToken	Yes
	add
    Whitelister	Adds
    an address that is approved for whitelisting other addresses	InxToken	Yes
	remove
    Whitelister	Removes
    an address from the addresses that are approved for whitelisting	InxToken	Yes


 




 


 


4