FIO Handle

Overview

Most FIO Protocol functionality requires a user to have a FIO Handle. An integrator may choose to enable their users to register and manage their FIO Handles natively in their application or via a link off.

Native Integration

For wallets desiring full control over the registration user experience, the best strategy is to execute registration actions directly to the FIO Chain.

πŸ‘

Get Free FIO Handles for your users

The FIO Foundation may be able to fund new FIO Handle registrations for qualified partners. Please reach out to the FIO Foundation's Partnerships Team for further information.

Getters

Integrating these actions do not require the integrator to have access to user's FIO Private Key.

Available FIO Handle Getters

EndpointDescription
/get_fio_addressesReturns FIO Handles owned by the supplied FIO Public Key.
/get_fio_addressesReturns FIO Handles owned by the supplied FIO Public Key.
/avail_checkChecks if a FIO Handle or FIO Domain is available for registration.

To understand how to fetch FIO Handle mappings, see FIO Handle Mapping Guide.

Available FIO Domain Getters

EndpointDescription
/get_fio_domainsReturns FIO Domains owned by the supplied FIO Public Key.

Write Transactions

Integrating these actions require the integrator to have access to user's Private key and properly serialize and sign each transaction. For additional information, see Write Transaction.

Available FIO Handle Actions

ActionDescriptionCan be paid with bundled tx?
regaddressThis action registers a new FIO Handle.No
regadddomThis action registers a new FIO Handle and a new FIO Domain in single transaction.No
addbundlesThis action adds 100 bundled transactions to the supplied FIO Handle.Yes
xferaddressThis action transfers ownership of the supplied FIO Handle to a new owner.No
burnaddressThis action burns (deletes) supplied FIO Handle.No

To understand how to manage FIO Handle mappings, see FIO Handle Mapping Guide.

Available FIO Domain Actions

FIO Domains can be used to customize the FIO Handles.

ActionDescriptionCan be paid with bundled tx?
regdomainThis action registers a new FIO Domain.No
renewdomainThis action renews a FIO Domain and adds 365 days to its current expiration date.No
xferdomainThis action transfers ownership of the supplied FIO Domain to a new owner.No
setdomainpubThis action sets the is_public switch on the supplied FIO Domain.

By default all FIO Domains are non-public, meaning only the owner can register FIO Handles on that domain. Setting them to public allows anyone to register a FIO Handle on that domain.
No
wrapdomainThis action wraps FIO Domain to another chain.No

🚧

FIO Handles on Private Domains

When a FIO Domain is first registered, it is set to be private, meaning only the account which owns the domain, can register FIO Handles on it. When integrating, this means that regaddress action has to be signed by the FIO Private key associated to the account, which owns the FIO Domain.

Alternatively, you can:

  • Use Permissions to let the registering account register FIO Handles on private domains.
  • Use regdomadd action to register FIO Handle and FIO Domain in the same transaction.

FIO Handle and Domain Formats

FIO Handle

Minimum characters (including domain)Maximum characters (including domain)Characters allowedRegex
364ASCII a-z 0-9 - (dash) with single @ (at sign) / Cannot start or end with a dash^(?:(?=.{3,64}$)[a-zA-Z0-9]{1}(?:(?!-{2,}))[a-zA-Z0-9-]_(?:(?\<!-))@[a-zA-Z0-9]{1}(?:(?!-{2,}))[a-zA-Z0-9-]_(?:(?\<!-))$)

Examples

  • vitalik@safu
  • a@b
  • 1@2
  • a-z@0-9

FIO Domain

Minimum charactersMaximum charactersCharacters allowedRegex
162ASCII a-z 0-9 - (dash)^(?=.{1,62}$)[a-zA-Z0-9][a-zA-Z0-9\-]\*[a-zA-Z0-9]$

Examples

  • safu
  • b
  • 2
  • a-z
  • 0-9

Regex

UX/UI Considerations

The UX/UI best practice is to allow the user to register a FIO Handle during on-boarding.

Example

FIO Handle registration prompt show immediately after setting up a new wallet in EDGE.

FIO Handle registration prompt show immediately after setting up a new wallet in EDGE.

Link to FIO App

Alternatively to Native Integration, the application may link the user to to the FIO App, a comprehensive website to register and manage FIO Handles and many other functionality related to FIO Protocol.

For additional information, see FIO App.

Link to FIO Registration Website

Alternatively to Native Integration, the application may link the user to the Registration Website, which allows for a registration to occur in such a way that the registered FIO Handle is assigned to the FIO Public Key controlled by user in the linking application. If the application does not support FIO Private Key, this option is not viable.

For additional information, see Linking to the FIO Registration Site.

Use FIO Registration Website API

Alternatively to Native Integration, the application may connect to the Registration Website via an API. This is a great compromise between Native Integration and linking off. The integrator still has full control over the UI, but does not need to implement all the overhead of supporting Write Transactions to the FIO Chain. The registration in this option can also occur in such a way that the registered FIO Handle is assigned to the FIO Public Key controlled by user in the linking application. If the application does not support FIO Private Key, this option is not viable.

For additional information, see Using FIO Registration Website API.