Listing the FIO Token

This page provides information for Exchanges looking to list the FIO token. It contains the following content:

Content Summary
FIO Keys An overview of the structure of FIO public and private keys.
FIO token structure and token transfer Information on the FIO token and instructions on how to enable token transfers.
Retrieving account balances and transaction history Different options available for exchanges to present a user’s balance and transaction history.
Enabling FIO token deposits An overview of FIO token deposits.
Enabling FIO token withdrawals An overview of FIO token withdrawals.

FIO keys

FIO Token is registered at index 235/0x800000eb on the SLIP-44.

FIO Key Derivation Path: "44'/235'/0'/0/0"

FIO Private Keys follow standard Wallet Import Format (WIF) standard and public keys follow well-known base58 encoding with FIO prefix, e.g.

FIO7tkpmicyK2YWShSKef6B9XXqBN6LpDJo69oRDfhn67CEnj3L2G

For those who have integrated EOSIO, FIO public keys follows the same format, except the prefix is FIO instead of EOS.

For more information, visit the FIO Public/Private Keys overview.


FIO token structure and token transfer

FIO Chain’s native token is FIO. FIO is the only token present on the FIO Chain.

There are 1,000,000,000 Smallest Units of FIO (SUFs) inside 1 FIO. All transactions in FIO Protocol are expressed in SUFs.

Obtaining token supply in real-time

The Foundation operates API end-points which return token supply statistics. Refer to the FIO Token overview for more information.

Transferring FIO token

Tokens on the FIO Chain are transferred using the trnsfiopubky action.

The action requires a FIO Public Key for the payee (the person receiving the funds). The FIO Public Key is hashed down to an account name and funds are transferred to that account. If that account does not exist, it gets created automatically.

The native EOSIO transfer action is not supported.


Set your TPID! Do not forget to include your TPID in all FIO transactions to earn a portion of the fees paid.

Transaction memo

trnsfiopubky does not accept a memo field. To attach a memo to a FIO token transfer, both payer and payee must have a FIO Address. For more information refer to the deposit using FIO Addresses and withdraw using FIO Addresses integration details.


Retrieving account balances and transaction history

The how to retrieve account balances and history page details the different options available for exchanges for presenting a user’s balance and transaction history.

FIO API and History nodes

FIO Block Producers maintain API and History nodes for the FIO community:

  • Testnet History API Node: http://testnet.fioprotocol.io/v1/history/
  • Mainnet History API Nodes: See Github

For performance and security reasons, exchanges may want to maintain internal nodes. See Building a node and History node for more information on lauching an internal FIO API History node.


Enabling FIO token deposits

Using a unique FIO Public Key

Similar to UTXO-based chains, to accept FIO token deposit, an exchange may generate a unique FIO Public Key for every user or deposit. Unlike EOSIO, FIO Chain does not require that key to be assigned to an existing account before funds are sent to it. Once a token transfer is initiated to that Public Key, the account will be created automatically.

When using a unique FIO Public Key for deposits, you can look for the trnsfiopubky transactions with target payee_public_key in every block. You can get transactions in every block by running /get_block at every block height.

trnsfiopubky via Multisig

It is important to note that /get_block will not return a trnsfiopubky transaction if it was executed as part of a Multisig as that transaction is executed via inline contract actions and only shows up as inline traces, which are not returned by /get_block.

In order to properly recognize transfers made using Multisig you should monitor /get_block for executed transaction status:

"transactions": [   {
      "status": "executed",
      "cpu_usage_us": 7929,
      "net_usage_words": 0,
      "trx": "fa206c2e47af50873dfe08a03802918113c1832e3f42b26e1b20ad77b66ccf20"
}]

Next, fetch inline traces using /v1/history/get_transaction and returned trx. This requires access to a History node.

Using FIO Addresses and FIO Requests for crypto deposits

See: Deposit Crypto using FIO Addresses.


Enabling FIO token withdrawals

Using a FIO Public Key

With this option, the user’s withdrawal area on the exchange would ask for a FIO Public Key and the amount of withdrawals. The transfer would be executed using thetrnsfiopubky action and metadata recorded using recordobt action.

Using FIO Addresses and FIO Requests for crypto withdrawals

See: Withdraw Crypto using FIO Addresses.