The first problem for centralized crypto exchanges in complying with the Travel Rule is Discovery, which is the need to know the following when a crypto withdrawal is being requested by a user:

The FIO Protocol (https://fioprotocol.io/) is a delegated proof of stake blockchain that acts as a usability layer for the entire blockchain ecosystem. There are more than a dozen wallets and exchanges that have already integrated the FIO Protocol to enhance usability for users.

Among other capabilities, the FIO Protocol provides human readable wallet “names” called FIO Addresses that can be mapped to public addresses of any blockchain by the owner of the corresponding FIO Private Key. FIO Addresses are different from previous “wallet name” attempts in a number of ways. Most pertinent to the Travel Rule Discovery problem is the structure of FIO Addresses:

Process Flow

Sequence Diagram

User_2 on VASP_B is sending funds to User_1 on VASP_A

User_1
VASP_A
FIO_Chain
VASP_B
User_2
@Starter(User_1)

confirmation = VASP_A->FIO_Chain.registerVasp(FIOAddress,FIODomain) 
User_1DepositAddress = VASP_A.requestDepositAddress(tokenCode) {
  confirmation = FIO_Chain.registerFioAddress("User_1@VASP_A")
  User_1DepositAddress =  generateDepositAddress()
  confirmation = FIO_Chain.addDepositAddress("User_1@VASP_A,User_1DepositAddress")
 }

User_1->User_2:Out of bounds transmission of User_1DepositAddress

processed = User_2->VASP_B.withdrawFunds(User_1DepositAddress) {
  "{YES,VASP_A,TravelRuleRequirements,TransmitStandardA}" = FIO_Chain.isVASP(User_1DepositAddress)
  VASP_A.transferFunds(User_1DepositAddress)
  VASP_B->VASP_A.transmitTravelRuleDataViaTransmitStandardA
}