Fees
Page Spec
Item | Content |
---|---|
Page URL | /fio-chain/fees |
Page Title | FIO Protocol - FIO Chain Fees |
Design | https://www.figma.com/file/n33HwJfIuwy068A7G0Bdpg/FIO-Website?type=design&node-id=517-3976 |
Section Content
Current fees
Transactions eligible for gas-free interactions
Type | Transaction | FIO Chain Action | Bundled transactions amount | Amount if paid with FIO Tokens |
---|---|---|---|---|
FIO Handle | Burn FIO Handle | burnaddress | 1 | 10 FIO ($0.25) |
FIO Handle Mapping | Add blockchain public addresses | addaddress | 1 | 10 FIO ($0.25) |
Remove blockchain public addresses | remaddress | 1 | 10 FIO ($0.25) | |
Remove all blockchain public addresses | remalladdr | 1 | 10 FIO ($0.25) | |
FIO Request | New FIO Request | newfundsreq | 2 | 10 FIO ($0.25) |
Cancel FIO Request | cancelfndreq | 1 | 10 FIO ($0.25) | |
Reject FIO Request | rejectfndreq | 1 | 10 FIO ($0.25) | |
FIO Data | Record FIO Data | recordobt | 2 | 10 FIO ($0.25) |
NFT Signature | Add new NFT Signature | addnft | 2 | 10 FIO ($0.25) |
Remove NFT Signature | remnft | 1 | 10 FIO ($0.25) | |
Remove all NFT Signatures | remallnfts | 1 | 10 FIO ($0.25) | |
Staking | Stake FIO Tokens | stakefio | 1 | 10 FIO ($0.25) |
Unstake FIO Tokens | unstakefio | 1 | 10 FIO ($0.25) | |
Governance | Vote on Block Producers | voteproducer | 1 | 10 FIO ($0.25) |
Proxy votes to registered proxy | voteproxy | 1 | 10 FIO ($0.25) |
Transactions not eligible for gas-free interactions
Type | Transaction | Action | Amount in FIO Tokens |
---|---|---|---|
FIO Token | Transfer FIO Tokens | trnsfiopubky | 10 FIO ($0.25) |
Transfer locked FIO Tokens | trnsloctoks | 10 FIO ($0.25) | |
FIO Handle | Register new FIO Handle | regaddress | 10 FIO ($0.25) |
Add bundled transactions | addbundles | 10 FIO ($0.25) | |
Transfer FIO Handle ownership | xferaddress | 10 FIO ($0.25) | |
FIO Domain | Register new FIO Domain | regdomain | 10 FIO ($0.25) |
Renew FIO Domain | renewdomain | 10 FIO ($0.25) | |
Make FIO Domain public | setdomainpub | 10 FIO ($0.25) | |
Transfer FIO Domain ownership | xferdomain | 10 FIO ($0.25) | |
Wrapping | Wrap FIO Tokens | wraptokens | 10 FIO ($0.25) |
Wrap FIO Domain | wrapdomain | 10 FIO ($0.25) | |
Governance | Register as a proxy | regproxy | 10 FIO ($0.25) |
Unregister as a proxy | unregproxy | 10 FIO ($0.25) | |
Register as a Block Producer | regproducer | 10 FIO ($0.25) | |
Unregister as a Block Producer | unregprod | 10 FIO ($0.25) | |
Block Production | Set fee ratios | setfeevote | 10 FIO ($0.25) |
Set fee multiplier | setfeemult | 10 FIO ($0.25) | |
Compute fees | computefees | 10 FIO ($0.25) | |
Set bundled transaction count | bundlevote | 10 FIO ($0.25) | |
Pay rewards to TPIDs | tpidclaim | 10 FIO ($0.25) | |
Claim BP rewards | bpclaim | 10 FIO ($0.25) | |
Burn expired FIO Handles and FIO Domains | burnexpired | 10 FIO ($0.25) | |
Advanced | msig_propose | propose | 10 FIO ($0.25) |
msig_approve | approve | 10 FIO ($0.25) | |
msig_unapprove | unapprove | 10 FIO ($0.25) | |
msig_cancel | cancel | 10 FIO ($0.25) | |
msig_exec | exec | 10 FIO ($0.25) | |
msig_invalidate | invalidate | 10 FIO ($0.25) | |
auth_delete | deleteauth | 10 FIO ($0.25) | |
auth_link | linkauth | 10 FIO ($0.25) | |
auth_update | updateauth | 10 FIO ($0.25) |
Bundled Gas-free Transactions
Every FIO Handle comes bundled with gas-free transactions.
The number is set by the Block Producers and is currently 100.
Most commonly used FIO Chain interactions can be gas-free and typically use up 1 or 2 bundled transactions. This means every FIO Handle owner has between 50 and 100 free FIO Chain interactions before they have to either pay for more bundled transaction or pay the gas fee.
Third Party Payment of Fees
Certain FIO Chain transactions relating to FIO Handles and Domains can be paid for by a third party.
Specifically, anyone can register a FIO Handle or Domain for someone else, add Bundled Transaction, or renew a FIO Domain even if they do not own it.
This allows for a much smoother user experience, where the user does not need to acquire FIO Tokens to be able to execute these transactions, but can, for example, pay someone with a credit card.
Fee Setting
FIO Chain fees are set by Block Producers (BPs) and are intended to reflect market forces and costs of running block producing infrastructure. To accommodate this:
Each of the 21 scheduled BPs continuously submits their desired fee amount in FIO Tokens for each blockchain interaction.
The fee is set at median of all submitted amounts.
The continuous nature of submissions also allows the fee to by adjusted in real-time as the market value of FIO Token changes to ensure price stability as expressed in a stable coin.
In a similar fashion BPs decide what is the amount of bundled transaction for each new FIO Handle registered.
Actions
Technical details: https://developers.fioprotocol.io/docs/bp/fee-setting
Fee Distribution
Fees collected on FIO Chain are distributed as follows:
Recipient | Share of fee |
---|---|
Block Producers - top 42 BPs, based on share of votes | 36% |
Block Producers - 21 active BPs scheduled when fees are distributed, divided equally | 24% |
Staking Reward Pool | 25% |
Entity facilitating transaction (TPID) or, if not provided, Block Producers | 10% |
FIO Foundation | 5% |
Although most fees are distributed within the same day, the block producer share of FIO Handle and FIO Domain registration/renewal fees are paid out over 365 days to properly incentivize block producers which will be processing bundled transactions over the full validity period.
Dynamic Content
Fee amounts are dynamically set as follows
The above content should be static except for the fee amount column.
Initially set to N/A, before update runs to avoid showing incorrect fees in case fetch fails.
Run Get Fees (see below)
Match the fee based on end_point
Compute USD price
Run Get FIO Token price
Get Fees
Request
Endpoint
POST https://fio.blockpane.com/v1/chain/get_table_rows
Body
{
"json": true,
"code": "fio.fee",
"scope": "fio.fee",
"table": "fiofees",
"limit": "1000",
"reverse": false
}
Response
rows
array multiple of
{
"fee_id": 0,
"end_point": "register_fio_domain",
"end_point_hash": "0xe7961b95f481a901b3bfa23b800c8fb3",
"type": 0,
"suf_amount": 1720000000000,
"votes_pending": 1
}
end_point
is the matching string
suf_amount
/ 1000000000 is the fee amount in FIO, show 2 decimal points
Get FIO Token price
Request
Endpoint
https://api.coingecko.com/api/v3/simple/price?ids=fio-protocol&vs_currencies=USD
Response
{
"fio-protocol": {
"usd": 0.02060172
}
}
Fee in USD is suf_amount
/ 1000000000 * usd