# Introduction

Please note that Function X is currently in testnet mode. The details seen below will continue to evolve and change during this beta testing phase. Do bear with us if you spot any inaccuracy in terms of details and we welcome any feedback as we continue to tweak and improve the Function X ecosystem.

# FX Core

Function X is a network of independent heterogeneous blockchains that are interoperable with each other. FX Core is the first public blockchain from the Function X network.

Blockchains in the network are connected to the Core. FX Core can be regarded as the light client of these blockchains. Tokens can be transferred between blockchains via the Core.

The FX Core Testnet has gone live and currently undergoing testing: https://cloud.functionx.io/testnet/

# FXCOIN*

FXCOIN is the native coin of FX Core. If you have FXCOIN, you will be able to contribute to the security and governance of FX Core.(Please note that FXCOIN is only available as a testcoin during this beta testing phase)

Delegate your FXCOIN to one or more validators on FX Core. Your delegated FX will allow the chosen validator to have greater weight in broadcasting votes, and you will be eligible to earn additional FXCOIN through Proof-of-Stake. In addition, as a FXCOIN holder, you will be able to vote with your FXCOIN in the on-chain governance proposals, so as to play a part in the future of how FX Core is shaped.

*Note: During the testing phase, validators/delegators will be rewarded with testnet FXCOIN. Please note that testnet FXCOIN carry no value, and cannot be traded.

Validators/delegators will be given testnet FXCOIN from the faucets to test out the FX services: https://cloud.functionx.io/testnet/recharge

# FX Cloud

Function X Cloud is a blockchain online cloud service platform launched by Function X for enterprises and developers. This cloud platform is built on the decentralized framework of the Function X Blockchain and is the engine to create and deploy different blockchain on the cloud.

The launch version of FX Cloud will support running a Validator in FX Core Testnet without the need to deploy any code.

The test version of FX Cloud will support running a Validator in FX Core Testnet without the need to deploy any code. See FX Cloud Testnet here: https://cloud.functionx.io/testnet/

# FX Connect

FX Connect is the decentralized blockchain wallet that supports Function X, allowing you to manage your FXCOIN, access the validator tool and delegate FXCOIN to validators. It is currently available for beta testing.

Download test app here: https://cloud.functionx.io/testnet/

# FX Explorer

With FX Explorer, you can search, view and analyze FX Core data including blocks, transactions and validators.

The beta version of the FX Explorer is live. To test it out, go to: https://explorer.functionx.io/testnet/#/core/

# How to create your own blockchain

FX Cloud service upgrade, now developers can create blockchain and run nodes in a few clicks.

Creating a blockchain means using the underlying blockchain framework and cloud service resources provided by FX Cloud to quickly deploy your own public chain.

First, please download FX Connect, and then use FX Connect to scan the QR code to log in to the FX Cloud Beta official website.

test

The entire process of creating a blockchain includes:

Step 1. Configuring blockchain information.

Step 2. Creating a Validator node so that the chain can run normally.

Step 3. Configuring the corresponding block browser.

test

# Step 1: Configure blockchain information and genesis block settings

# Chain Configuration

Blockchain name: The first letter of the blockchain name has to be a lowercase letter. The length must be between 1 to 15 characters. Lowercase letters and numbers only.

Token name: The first letter of the token name has to be a lowercase letter. The length must be between 3 to 16 characters. Lowercase letters and numbers only.

Address prefix: Less than 10 characters. Lowercase letters and numbers only.

Block generation time: Block generation speed (in seconds). Recommended generation time is 5-10 seconds.

Maximum number of valid Validators: The maximum number of Validators participating in block generation and verification on the blockchain at the same time. It is recommended to set at the number of Validators at 50 or below to avoid affecting the speed of block generation.

Blockchain icon: PNG or JPEG format. Size is 800*800 and must be smaller than 2MB.

Introduction to the blockchain: Description of the blockchain. The length must be between 50-170 characters.

test

# Genesis block settings

In this step, you will need to set the Genesis address and the number of Genesis tokens. The whole process is as follows:

Click "Add Address", then scan the QR code to add the Genesis address through FX Connect, and set the number of Genesis tokens for this address.

Create at least one Genesis address. This allows you to create multiple Genesis Validators. You can also decide the amount of Genesis tokens.

test

test

test

test

# Genesis Validator settings

# 1. Set up the Validator address and self-delegation quantity

The Validator address is selected from the Genesis address.

The self-delegation tokens should more than 100.

test

# 2. Set the basic information of the Validator

Including the validator name, identification, official website, contact information, introduction and other information of the Validator.

test

# 3. Validator commission settings

Commission rate: This is the initial commission rate on block rewards and fees that are charged to the delegators out of 100%. E.g. if the commission rate is set at 20%, your delegators will be able to earn 80% of the rewards.

Max commission rate: The maximum commission rate that the Validator can charge.

Max commission change rate: The maximum daily increase of the Validator commission.

Min self-delegated amount: The minimum amount of self-delegated tokens that are required for the Validator.

test

# 4.Add the Validator’s public key

Validator's Public Key: A public key is a derivation of a private key. By adding a public key, the Validator is given the private key used to sign block pre-votes and pre-commits.

*It is strongly advised that you record the Validator’s public key as it will be required for activating the blockchain when you set the Validator node up.

test

test

test

# 5.Sign the Validator information and complete the settings

After confirming the Validator information, click “Next” to sign the transaction with the Validator information, which you need to use FX Connect to complete. After you authorize the signature, the Validator is created.

test

test

test

# Step 2: Run Genesis Validator node

After creating the blockchain, you need to run the Genesis Validator node to operate the chain.

test

Click "Validator Node", enter the validator node name and the node invitation code. Then verify the validator's public key, which will need to use FX Connect (when selecting the public key for FX Connect, please select the same one as the initial validator created before, otherwise it will not be successful).

test

After the Validator’s public key is successfully verified, it will take a few minutes for the Validator node to be generated.

test

# Step 3: Create a blockchain explorer

After the Validator node is up and running, the blockchain can run normally, However, you will be required to activate a blockchain explorer to ensure the integrity of the chain information.

test

Click Explorer to create a blockchain explorer, set up the explorer name and invitation code to complete the activation.

test

test

test

# Validator

# Validator overview

The FX Core is based on the PBFT consensus mechanism which relies on a group of validators to secure the FX Core network by verifying and relaying transactions, proposing, validating and confirming blocks.

A validator candidate can delegate their own FXCOIN or accept a delegation from other FXCOIN holders to participate in the validator campaign. The number of active FX Testnet validators is initially capped at 50 and the key criteria to be an active validator is determined by the number of FXCOIN in the delegation pool. And the minimum amount of FXCOIN required to be a validator is 100 FXCOIN on the testnet .

A validator needs to run on a highly reliable infrastructure (server resources, security devices, etc.) and it may possibly require a hardware set up cost for new validators. Eligible validators will receive appropriate block rewards and transaction fees, plus a percentage of commission revenue charged to the delegators as a reward for maintaining the network security.

If the validator doesn’t abide by the requirements and commits certain acts such as double signing or being offline for an indefinite amount of time, it may result in the loss of the delegated coins (including the FXCOIN delegated by validator). The penalty incurred by the defaulted validator will depend on the severity of the violation.

# How to run a Validator on FX Testnet

There are two ways to become a validator. The first way is to perform code-level settings through Function X GitCore (coming soon) and the second route is to register an account on FX Cloud and follow the steps that are on it.

The following is a detailed introduction to the process of applying to become a validator on FX Cloud:

It is recommended to download the FX Connect first, create a FX address in the wallet and apply for the testnet FXCOIN (https://cloud.functionx.io/testnet/recharge) before proceeding to the next step.

# Step 1: Register and log into FX Cloud

Register an account with your email on FX Cloud. Once you have registered, please log into FX Cloud and you will see the ‘Dashboard’.

test

# Step 2: Create a standard node

To set up a validator, you will need an “Invitation Code” to create a standard node. Click the “Create Node” button on the ‘Dashboard’ to continue the process.

test

Please note that the standard node is not a validator node. It does not participate in generating blocks. Its function is to record and store transaction records in the network.

To add a standard node, just fill in the necessary information of the node name and the “Invitation Code”, and click the “Create Node” button to proceed. Please note that the waiting time for this creation process may take up to 15 minutes before it is successful.

test

# Step 3: Create a validator

After creating a standard node, you can continue to create a validator and upgrade the standard node to a validator node.

test

# 1. Validator settings

Follow the instructions on the page to configure the following relevant parameter information for the validator:

Account address: An address at the wallet level. This is used for delegation, unbinding, requesting rewards and participating in governance.

Validator address: This is the address where the delegator performs the FXCOIN delegation.

*Please note that this part of the process requires you to scan the QR Code seen on FX Cloud with the FX Connect app. Please follow the guide on FX Cloud.

test

Validator name: Enter your preferred name to use.

Identity: This is optional. You can indicate your company name, community member, etc.

Website: This is optional. You can choose to list your website.

Description: This is optional. You can choose to include description of your validator.

test

Commission rate: This is the initial commission rate on block rewards and fees that are charged to the delegators out of 100%. E.g. if the commission rate is set at 20%, your delegators will be able to earn the 80% of the rewards.

Maximum commission rate: The maximum commission rate that the validator can charge.

Maximum commission change rate: The maximum daily increase of the validator commission.

Minimum self-delegated amount: The minimum amount of self-delegated FXCOIN that is required for the validator.

Self-delegated amount: The number of self-delegated FXCOIN cannot be less than the minimum self-delegated amount.

test

# 2. Set up the validator’s public key

Validator's Public Key: This public key is used to sign block pre-votes and pre-commits for the Validator.

This part will require you to scan the QR Code on FX Cloud with FX Connect in order to proceed. Please follow the guide on the FX Cloud.

test

After importing the validator public key, click “Next” to upgrade the standard node to a validator node.

# 3. Sign the validator transaction

In this step, please confirm the validator settings and self-delegated amount, and sign the validator transaction.

To sign this transaction, please scan the QR Code on FX Cloud with FX Connect. For more details, please follow the guide on FX Cloud.

test

Once the signature is made, the validator is successfully created.

test

# 4. View the validator info

The validator will run automatically after it is successfully created. You can view the node running information on the FX Cloud Dashboard and the node's block generation information on the FX Explorer.

# Validator FAQ

What is a validator?

The role of the validator is to run a full-node and participate in consensus by broadcasting cryptographic signatures or votes and to commit blocks. Validators commit new blocks in the blockchain and receive rewards in exchange for their work. They must also participate in governance by voting on proposals. Validators are weighted according to their total stake.

Why should I be a validator?

By becoming a validator, you can take part in network governance work, which ensures the stability and health of the blockchain ecosystem. You will also receive FXCOIN each time you participate in governance work, specifically the block creation process.

What is the minimum amount of FXCOIN required to be an active validator?

100,000 FXCOIN (100 testnet FXCOIN for the Testnet)

What are the rewards for a validator?

Block rewards: Eligible validators will receive appropriate block rewards.

Transaction fees: Transactions on the FX Network are subjected to transaction fees similar to other existing blockchains.

Commissions: The rewards of the validator are distributed between the validator and delegator. Validators can take some of the rewards as a commission fee before distributing the rest of the rewards to the delegators.

What are validator commissions?

Revenue received by a validator's pool is split between the validator and their delegators. The validator can apply a commission on the part of the revenue that goes to their delegators. This commission is set as a percentage. Each validator is free to set their initial commission, maximum daily commission change rate and maximum commission.

How many validators are needed to confirm each block?

50 validators.

The number will likely rise in the long run as the network grows based on consensus.

What is the block generation time?

It takes an average of 1 to 5 seconds to generate a new block

# Delegator

# Delegator overview

If you do not wish to be a validator, you can delegate your FXCOIN to validators to become a “delegator”. In exchange for delegating your FXCOIN, you will earn a percentage of the network transaction fees and receive additional FXCOIN as your reward.

You may delegate your FXCOIN to the validator of your choice in the FX Connect app.

# How to delegate FXCOIN to a validator?

Open Function X Connect, click FX Delegator DApp on the Home page to enter the Delegation Interface.

test

The Delegator interface gives you relevant details on your FXCOIN assets such as available FXCOIN and real-time rewards.

Select Validator to view the list and choose the your preferred validator which you want to delegate your FXCOIN to. You can view all relevant information of the validators in this page.

test

Delegate steps:

  1. Click the ’Delegate’ button at the bottom of the validator details page.
  2. Enter the amount of FXCOIN which you want to delegate and click the ’Delegate’ button (Please do not delegate all available FXCOIN. Reserve a small amount of FXCOIN for transfer fees).
  3. Click ’Next’ to confirm the transaction and enter your password.
  4. After the transaction is successfully completed, the delegation will take place with immediate effect.

test

test

After the successful delegation, the validator will be shown on your delegator homepage, providing an overview of your FX assets and rewards.

test

# Delegator FAQ

1.What is a Delegator?

As an FXCOIN delegator, you can delegate your FXCOIN with one or more validators. In exchange for delegating your FXCOIN, you will earn a percentage of the network transaction fees and receive additional FXCOIN as your reward.

2.Why should I delegate my FXCOIN?

If a FXCOIN holder chooses not to delegate to a validator, they will not able to receive a percentage of network transaction fees or block provisions. There is a possibility that their percentage to the total amount of FXCOIN will decrease over time due to inflation.

3.How should delegators choose their validators?

Delegators are free to choose the validators based on their own preference. Here are some indicators that you can take for reference.

Amount of self-delegated tokens: Validators with a high number of self-delegated tokens will be a fairly good gauge as it shows their commitment to operate the node.

Commission rate: Commission applied by validators before it is distributed to their delegators.

Track record: Delegators will likely look at the track record of the validators they plan to delegate to. As all the validators in the Function X Testnet will be new, all validators will have a chance to establish their track record.

4.How do I check my rewards?

You can check your real-time rewards on the home page of the FX Delegator DApp in Function X Connect.

5.How to make a withdrawal for the rewards?

Open FX Connect and go into the FX Delegator DApp. Click on the validator to enter the ‘Delegator’ interface. You can see the ‘Rewards’ button on this page. Withdrawal means you are withdrawing all the rewards from the delegation.

Click on the ‘Rewards’ button, view the details, then click ‘Next’ and enter the wallet transaction password to confirm.

After the withdrawal transaction is successfully completed, the rewards will be sent to your wallet address.

6.How to un-delegate FXCOIN from a Validator?

Open FX Connect and go into the FX Delegator DApp, click on the validator to enter into the ‘Delegator’ interface. You can see the ’Un-Delegate’ button on this page.

Click on the ‘Un-Delegate’ button, view the details, input the FXCOIN quantity you want to undelegated. Then, click ‘Next’ and enter the wallet transaction password to confirm.

After the transaction is completed successfully, the un-delegation will take effect immediately.

Tips: You will get your testnet FXCOIN after 1 hour once you have successfully “un-delegate” your testnet FXCOIN.