Skip to content

Latest commit

 

History

History
114 lines (94 loc) · 6.25 KB

fip-0031.md

File metadata and controls

114 lines (94 loc) · 6.25 KB
fip title status type author created updated
31
Eliminate FIO Address Expiration
Final
Functionality
Pawel Mastalerz <[email protected]>
2021-07-05
2021-12-07

Abstract

The purpose of this FIP is to eliminate the concept of expiration of FIO Addresses. FIO Addresses will now be valid and functional indefinitely and will never be burned. Users will still need to purchase bundled transactions or pay-per-call to continue to call actions on the FIO Address.

Modified actions:

Contract Action Endpoint Description
fio.address burnexpired /burn_expired FIO Addresses are no longer evaluated for burning due to its expiration.
Multiple remaddress, remalladdr, newfundsreq, cancelfndreq, recordobt, xferaddress, voteproducer, regproxy, unregproxy, regproducer, unregprod, trnsfiopubad, stakefio, unstakefio, addnft, remnft, remallnfts Multiple FIO Addresses expiration dates are no longer evaluated for 400:FIO Address expired exception.

Modified getters:

Endpoint Description
get_fio_names For compatibility purposes modify expiration for FIO Addresses to 2106-02-07 ( uint64_t max value - 4294967295 ).
get_fio_addresses For compatibility purposes modify expiration for FIO Addresses to 2106-02-07 ( uint64_t max value - 4294967295 ).
get_pub_address FIO Addresses expiration dates are no longer evaluated before returning response.

Motivation

The FIO Addresses were envisioned to be valid for a period of 1 year. If not renewed, 90 days after the expiration date (this was recently changed to 365 days in anticipation of this FIP) the FIO Address and all associated state content would be permanently burned. The rational was that a valid FIO Address provides value to the user (once set-up anyone can look up mapped public addresses) and incurs hosting costs to the block producers.

However, the automatic burning of FIO Addresses proved problematic for the following reasons:

  • It’s up to the integrating wallet to notify the user to renew, which may be challenging for wallets which do not collect contact information from their users.
  • Users may not be using their wallets often enough to notice the need to renew.
  • As discovered in a recently conducted usability study, some users will abandon FIO Protocol if they have to pay an annual fee or due to the fear that expiring FIO Address may compromise their security if someone else re-registers it.
  • As of 5-July-2021 only 352 FIO Address renewals have been executed.

It was acknowledged that elimination of renewal fees on FIO Addresses may reduce income to the FIO Chain. However, it is also believed that improved user experience would grow the user base faster and therefore increased income from other fees may offset that reduction. It’s akin to the Freemium model used by many SAAS companies which offers basic features available for free while charging for more advance features.

Specification

High-level overview

  • FIO Address will no longer expire or be burned due non-payment of FIO Address renewal fee. Therefore, it will be fully functional indefinitely.
  • There will still be a fee to register a FIO Address for the first time. Today, this fee is often covered by the Foundation using tokens allocated at Mainnet as FIO Address Giveaways.
  • Users will still need to purchase bundled transactions or pay-per-call to continue to call actions on the FIO Address, such as adding public address mappings, creating new or responding to an existing FIO Request.
  • FIO Domains will continue to expire and will need to be renewed.
  • FIO Address will still have limited functionality within 90 days after its FIO Domain was not renewed.
  • The FIO Addresses will still be burned once its FIO Domain is burned.

Modified actions

Burn expired FIO Addresses

Contract: fio.address

Action: burnexpired

Request body

No change

Processing

FIO Addresses are no longer evaluated for burning due to its expiration.

Response body

No change

remaddress, remalladdr, newfundsreq, cancelfndreq, recordobt, xferaddress, voteproducer, regproxy, unregproxy, regproducer, unregprod, trnsfiopubad, stakefio, unstakefio, addnft, remnft, remallnfts

Request body

No change

Processing

FIO Addresses expiration dates are no longer evaluated for 400:FIO Address expired exception.

Response body

No change

Modified getters

get_fio_names

Request body

No change

Processing

No change

Response body

For compatibility purposes modify expiration for FIO Addresses to 9999-12-31.

get_fio_addresses

Request body

No change

Processing

No change

Response body

For compatibility purposes modify expiration for FIO Addresses to 9999-12-31.

get_pub_address

Request body

No change

Processing

FIO Addresses expiration dates are no longer evaluated before returning response.

Response body

No change

Rationale

This has been deemed the best approach to eliminate expiration of FIO Addresses.

Implementation

Release information

Released in:

Backwards Compatibility

For backwards compatibility, on getters where FIO Address expiration date is returned, it will be modified to 9999-12-31 to ensure it does not break any client expecting a valid date.

Future considerations

Staking for bundled transactions may be considered in the future. A user could stake tokens and elect rewards to be redirected to “buy” new bundled transactions making FIO Address free even for more advanced use.

If elimination of FIO Address renewal fees prove to negatively impact the block producer economics, the following could be considered in the future:

  • BPs may elect to charge fees for hosting API nodes.
  • State content may be purged of historical data. Something already being considered.
  • Cost to store mapped public addresses may be adjusted.

Discussion link

https://fioprotocol.atlassian.net/wiki/spaces/FC/pages/106692690/Eliminate+FIO+Address+expiration+or+burning