# Introduction

<figure><img src="/files/VatavJ3A76CEqMox30cp" alt=""><figcaption></figcaption></figure>

In the world of cryptocurrency transfers, the smallest errors can result in significant financial losses. We then find ourselves helpless because there is often no solution to recover our funds.

**Xfer** is a groundbreaking service designed to protect users from the potential pitfalls of transfer mistakes. Whether it's a simple typo in the recipient's name or an erroneous memo, **Xfer** offers a safety net that ensures your hard-earned assets remain under your control.

#### The Transfer Anxiety Syndrom

We all know that moment when we have to press the "transfer" button and our heart races a little for fear of having made a mistake.

Transferring assets can be a risky endeavor, as even the smallest errors can have costly consequences. Three common types of transfer errors pose significant risks to Hive users:

* **Error in Recipient's Name:** Sending funds to the wrong recipient can result in a daunting challenge to recover the lost assets. If the unintended recipient does not respond or acts maliciously, the chances of reclaiming the funds become slim. This kind of error can lead to frustrating and time-consuming efforts, often with no guarantee of success.
* **Error in Memo:** In cases where funds are sent to exchanges or other platforms, memos play a crucial role in ensuring the successful crediting of the transferred assets. However, a simple mistake in the memo can complicate matters. Users may find themselves needing to contact customer support, provide evidence of ownership, and navigate through a lengthy process to retrieve their funds. This not only causes unnecessary stress but also introduces a considerable level of uncertainty.
* **Error in Asset:** The devil often lies in the details, and sending the wrong asset to the wrong recipient is a risk that user faces. For instance, imagine sending HBD to an exchange that doesn't list it. In such a scenario, not only could the transfer get lost in the void, but it may also become a painstaking process to recover those funds.

These transfer errors can have severe financial implications, leaving users at risk of losing their hard-earned assets permanently.

It's precisely here that **Xfer** steps in as a safeguard against such costly errors, offering users the assurance that their assets are sent where they intend them to go, safeguarding them against the potential pitfalls of transfer mistakes.


# Description

> **xfer** \
> *noun, verb* \
> *Abbreviation of transfer.*

*(source: wiktionary)*

**Xfer** is a revolutionary service that puts the power of secure asset transfers directly into the hands of Hive users. It works by using transfer routes that are meticulously validated before finalizing a transfer operation. This means that the risk of irreversible errors or loss of funds is significantly mitigated.

The process of utilizing **Xfer** is straightforward. Users define and manage their own transfer rules, ensuring that only authorized transfers are executed.

By associating a simple routing code with the desired asset type (HIVE or HBD), recipient, and memo, users can initiate a transfer with confidence. The funds are sent to the @xfer account, with the routing code provided in the memo. Then, the **Xfer** service verifies the routing code, and if correct, promptly forwards the funds to the intended recipient with the predefined memo.

Gone are the days of double-checking every character and fearing the irreversible consequences of a simple mistake. **Xfer** provides a reliable safety net, offering peace of mind during transfers. With this service, Hive users can rest assured that, in the event of an error, their funds will be promptly returned, eliminating the anxiety associated with the loss of assets.

#### Secure Transfer Process

Using **Xfer** to securely transfer your assets is a simple two-step process:

**1. Define Your Transfer Rules:**

![](https://files.peakd.com/file/peakd-hive/arcange/23w3EdNWieW4B7sWJEdEkvdLmzQqgrFLVp8igoTbm64ZdqXqskZC2ETuooMLKk1C5HQ9D.png)

Begin by defining your transfer rules. This involves creating a routing code associated with the asset type (HIVE or HBD), recipient, and memo. Take your time to ensure accuracy and double-check the details to avoid any potential errors.

This configuration step is done by sending commands to **Xfer** using micro-transfers. This guarantees total traceability and transparency since all operations are recorded in the blockchain.

If an error occurs during the creation of your rules, @xfer will inform you confidentially by sending back encrypted memos.

**2. Initiate Transfers:**

Once your transfer rules are set, it's time to initiate transfers. Simply send your funds to the @xfer account on the Hive blockchain. In the memo field, include the routing code you created earlier. This code acts as the key to validate and execute the transfer.

![](https://files.peakd.com/file/peakd-hive/arcange/48Kd9w7GvtrGy5ayTX6rDGAHEWWNLFxFETiqMVRZCDfUFRH1jYvvixDAZ8ycDWwuLR.png)

Upon receiving the funds and the routing code in the memo, **Xfer** verifies the code's accuracy. If the route code is correct, **Xfer** proceeds to execute the transfer and forwards the funds to the intended recipient using the predefined memo. This validation step ensures that the transfer adheres to your authorized rules, adding an extra layer of security and peace of mind.

In the event of an error, **Xfer** acts as your safety net. If the validation process detects an issue with the routing code or any discrepancies, the transfer is immediately interrupted. The funds are swiftly returned to you, safeguarding your assets from potential loss. This error protection mechanism ensures that even the slightest mistake won't result in irreversible consequences.

By following these simple steps, you can seamlessly transfer your assets on the Hive blockchain with the added assurance of **Xfer**'s protection against errors. Say goodbye to the fear of mistyped names or memos and embrace a worry-free transfer process.

#### Xfer's Benefits

**Xfer** offers a range of compelling benefits that make it an invaluable service for Hive users, ensuring secure and error-free asset transfers. Here are some key advantages to consider:

* **User-Defined Rules:** Users have full control over their transfer rules. You can define the specific routing code associated with the asset type, recipient, and memo. This allows you to customize and manage your transfers with ease, eliminating the risk of errors caused by manual input or external factors.
* **Error Prevention:** By utilizing the predefined routing code and verifying it before executing the transfer, the risk of using mistyped recipient names or memos or sending the wrong asset is significantly reduced. This eliminates the need to constantly double-check details, minimizing the chance of mistakes slipping through. Additionally, **Xfer** is also able to validate the routes you create against a list of over 600 misspelled accounts that were created on purpose by malicious actors.
* **Streamlined Process:** The process of using **Xfer** is designed to be seamless and user-friendly. Users can initiate transfers effortlessly by sending the funds to the @xfer account with the routing code in the memo. The service then validates the code and forwards the funds to the intended recipient using the predefined memo, ensuring a smooth and hassle-free experience.
* **Peace of Mind:** The major benefit of **Xfer** is the peace of mind it brings during asset transfers. By leveraging the service, users can be confident that their funds will reach the intended recipient without any hiccups. In the event of an error, the transfer is promptly interrupted, and the funds are immediately returned to the sender, preventing any potential loss.

**Xfer** emerges as a game-changing service that secures asset transfers on the Hive blockchain. By providing users with the ability to define and manage their own transfer rules, **Xfer** ensures secure and error-free transactions. The perils of transfer errors, such as mistyped recipient names or memos, no longer pose a threat to Hive users.

With **Xfer**, users can experience peace of mind during their asset transfers. The validation process and error protection mechanisms act as a safety net, swiftly returning funds in the event of an error, preventing potential loss, and eliminating unnecessary stress.

By using **Xfer**, Hive users can say goodbye to the anxieties associated with transfer mistakes.


# Routes

To secure transfers of funds, Xfer uses routes defined by each user.

Xfer routes are customizable pathways that include easily remembered names, target recipients, and optional memos, empowering users to manage their Hive asset transfers with precision.

These routes are established and maintained by initiating micro-transfers of either HIVE or HBD to the @xfer account with a structured memo containing commands and parameters. Users can seamlessly add, update, delete, and retrieve lists of routes, offering a high level of control and security in their blockchain transactions.

Managing routes with Xfer is the first crucial step to ensure your transfers go smoothly.

Remember, you choose the asset you want to create a route for. If you send a command using HIVE, you will manage an HIVE route. If you send HBD, you will manage an HBD route.

Each command sent to Xfer may require one or more of the following parameters:

{"cmd":"\[command]", "route":"\[name]","target":"\[recipient]","memo":"\[memo]"}

| Parameter                             | Description                                                                                 |
| ------------------------------------- | ------------------------------------------------------------------------------------------- |
| \[command]                            | A route management command                                                                  |
| \[name]                               | An easy to remember route name.                                                             |
| \[recipient]                          | The final recipient for your transfer (without the `@`)                                     |
| <p>\[memo]<br><em>(optional)</em></p> | A memo you want to send to the recipient. If prefixed with `#`, the memo will be encrypted. |

**Additional considerations about route management**

* With the exception of the \[memo] parameter, all content is **case insensitive**. This means that a structured memo like: \
  `{"cmd":"ADD", "route":"demo","target":"username","memo":"A Memo"}` \
  will be treated in the same way as:\
  `{"CMD":"add", "Route":"DeMo","TargeT":"USERname","MEmo":"A Memo"}`
* When sending commands to @xfer, you can choose to encrypt the structured memo separately from the memo sent to the final recipient. This added layer of security enhances the privacy of your interactions with Xfer. To do this, simply prefix your memo structure with a `#`\
  \
  *Example:* \
  `#{"cmd":"ADD","route":"binance","target":"deepcryto8","memo":"123456789"}`\
  \
  In the above example, only the structured memo will be encrypted, not the one sent to the final recipient (@deepcrypto8)


# Creating routes

To create a new route, initiate a micro-transfer to @xfer using the following structured memo:

`{"cmd":"ADD", "route":"[name]","target":"[recipient]","memo":"[memo]"}`

If a route with the same name for the same asset already exists, @xfer will send you back en (encrypted) error message.

*Examples:*

* `{"cmd":"ADD","route":"binance","target":"deepcryto8","memo":"123456789"}`\
  *creates a route named "binance" to send assets to the account @deepcrypto8 with the memo "123456789"*
* `{"cmd":"ADD","route":"arcange","target":"arcange" }`\
  *creates a route named "back" to send assets to the account @arcange without memo*
* `{"cmd":"ADD","route":"secret","target":"arcange", "#an encrypted memo" }`\
  *creates a route named "secret" to send assets to the account @arcange with a memo that will be encrypted*

Here is a screenshot of such a transfer made using peakd.com. You can of course use any other front-end or wallet app.

![](https://files.peakd.com/file/peakd-hive/arcange/23tmmjqribg63oFnm9YxnV4d8yt9pMhqoohTvKYTn8ZSVgNod41cZrCycEjbY46nVJskj.png)

*1. The recipient is @xfer*\
*2. we send a small amount*\
*3. we send HIVE -> this will create a "HIVE route"*\
*4. the command is put in the memo. As the command is prefixed with `#`, it will be encrypted when sent.*<br>


# Updating routes

To update an existing route, initiate a micro-transfer to @xfer using the following structured memo:

`{"cmd":"UPD", "route":"[name]","target":"[recipient]","memo":"[memo]"}`

If the route doesn’t exist, @xfer will send you back en (encrypted) error message.

*Examples:*

* `{"cmd":"UPD","route":"binance","target":"bdhivesteem","memo":"789654321"}`\
  *updates the previously created “binance” route and changes the recipient to @bdhivesteem as well as the memo*


# Deleting routes

To delete an existing route, initiate a micro-transfer to @xfer using the following structured memo:

`{"cmd":"DEL", "route":"[name]"}`

*Example:*

* `{"cmd":"DEL", "route":"binance"}`\
  *deletes the previously created "binance" route*

To delete all routes at once, both HIVE and HBD, initiate a micro-transfer to @xfer using the following structured memo:

`{"cmd":"CLR" }`


# Listing routes

To retrieve the list of all the routes you created, HIVE and HBD, launch a micro-transfer to @xfer using the following structured memo:

`{"cmd":"LST"}`

@xfer will send you back an (encrypted) memo with all the routes you created. The routes returned will be both HIVE and HBD routes.


# Transfers

Once you've set up your routes, executing transfers is a breeze:

**Verifying your routes**

While **Xfer** offers safeguards, the ultimate responsibility for your route configuration lies with you!

Therefore, before executing any transfer involving a large amount of tokens, carefully review the routes you've configured.

Making your first transfer with a very small amount is a good idea. If it goes without a hitch, then you can perform the following transfers with complete confidence.

**Sending money**

To make a transfer, simply send your assets to the @xfer account with the proper routing code in the memo. Xfer will validate your code and, if correct, execute the transfer following your predefined route.

In case of any issues, such as utilizing an unknown route, the funds will be promptly refunded to you. You'll receive an error message in the memo, detailing the nature of the error for clarity.

*Example:*

Let's consider the account @arcange.pay has created a route by sending HIVE to the account @xfer with the following memo:

![](https://hackmd.io/_uploads/BkF4VHlbT.png) ![](https://files.peakd.com/file/peakd-hive/arcange/23viTgJiU5kVfozGa1NQwWtW2gJFsp6ZmeN4mAes4TNUVRXiG9CuFcJpdejXM95v4nkuA.png)

The account @arcange.pay then execute the following transfer:

![](https://files.peakd.com/file/peakd-hive/arcange.pay/23tSyz4Ywz5agjfmpLSq8jsjRfcguS56pnyEnyar2ny69M73BmqcuDeVpSrQYSvLL2XY2.png)

Here's what happens next:

![](https://files.peakd.com/file/peakd-hive/arcange.pay/23t8CSPFAXffd72d3dVTuc8BBzH3EKNC3tZmHEw44WA7jZt6oTe45LhwTk9BakE7AJpNT.png)

You can see that the @xfer account has received 1 HIVE from @arcange.pay with a "demo" memo. As there is an existing "demo" route, @xfer forwards them to the final recipient (@arcange) and the memo that was defined in the route.


# Minimum amounts and fees

Hive operates on a system of resource credits that are consumed during transactions. Therefore, measures have been implemented to prevent malicious actors from draining resource credits from the @xfer account and taking down the service.

It's essential to be aware of the minimum amounts when utilizing **Xfer**.

* **Route Management**\
  The minimum amount to send to @xfer is set at **0.01 HIVE** or **0.01 HBD**. \
  This means that any transfer below this threshold will NOT trigger any action from **Xfer** and will be considered a donation to the service.
* **Transfers**\
  A minimum of **1 HIVE** or **1 HBD** is required. \
  Additionally, a fee of 0.1% is applied to the transfers, with a maximum fee capped at 1 HIVE or 1 HBD.

The minimum amounts and transfer fees are a safeguard to maintain the stability and availability of the **Xfer** service for all users.


# Safety considerations

**Not Mandatory and Trustworthy Choice**

Using Xfer for your transfers is not mandatory, but it's a choice rooted in trust and convenience. While it offers remarkable benefits, trust in the Xfer service operator is essential, as they play a pivotal role in ensuring the security of your transfers.

**Empowerment Through Open-Source**

If placing trust in a third party isn't your preference, Xfer offers an empowering alternative. You have the option to run your own Xfer service, thanks to its open-source nature. The Xfer code, readily available on Github, allows you to take control of your transfer operations, adding an extra layer of security. You will then be in charge of the full transfer process.

**Exchange Transfers**

When transferring funds to exchanges, it's vital to note that the sender will appear as @xfer, not your personal account. This distinction can complicate the recovery process in the event of a route error.

Therefore, it's sage advice to consistently double-check and rigorously test your routes, preferably with a small token amount, before committing to extensive transfers. This precautionary step ensures that you're well-prepared for a seamless and error-free experience when it matters most.


# Disclaimer

**Xfer Service Disclaimer:**

By utilizing the Xfer service, hereafter referred to as "the Service," you acknowledge and agree to the following terms and conditions. It is imperative that you carefully read and comprehend this disclaimer before using the Service. Your use of the Service implies your understanding and acceptance of the conditions outlined herein.

**No Liability for Errors or Loss of Funds:**

The operator of the Xfer Service, hereafter referred to as "the Operator," explicitly disclaims any and all liability for any errors, losses, or damages that may occur during the execution of transfers using the Service. This disclaimer extends to all aspects of the transfer process, encompassing but not limited to sending funds to the final recipient, and the return of funds to the original sender.

**User Responsibility:**

Users of the Service accept that they are solely responsible for the accuracy of their transfer instructions, the maintenance of their routes, and the safeguarding of their assets. The Operator does not assume any responsibility for ensuring the correctness of routes or the accuracy of transfer instructions provided by users.

**No Warranty or Guarantee:**

The Service is provided on an "as is" and "as available" basis. The Operator makes no warranties, express or implied, regarding the Service's accuracy, reliability, or suitability for a particular purpose. The Operator does not guarantee the uninterrupted or error-free operation of the Service.

**No Intercession with Final Recipients:**

Under no circumstances will the Operator of the Xfer Service intercede with the final recipients of funds transferred by users of the Service, for any reason whatsoever. Users acknowledge that any issues or disputes arising between users and the final recipients are strictly the responsibility of the parties involved. The Operator shall not act as an intermediary, mediator, or arbitrator in such matters. Users are solely responsible for resolving any disputes, errors, or issues with the final recipients, and the Operator shall not be involved in any correspondence, negotiation, or dispute resolution with third parties, including final recipients of transferred funds.

**Third-Party Trust:**

Users acknowledge that using the Service may involve placing trust in a third party, namely, the Operator. The Operator shall not be held responsible for any actions or inactions of the third party, including but not limited to the management of routes and the execution of transfers.

**Risk Mitigation:**

Users are strongly encouraged to take adequate precautions when using the Service, including, but not limited to, thorough testing of routes with small token amounts, the use of encryption for memos, and periodic review of route configurations.

**Limitation of Liability:**

To the fullest extent permitted by applicable law, the Operator shall not be liable for any direct, indirect, incidental, special, or consequential damages, including but not limited to, damages for loss of funds, profits, goodwill, use, data, or other intangible losses, resulting from the use or inability to use the Service.

**Indemnification:**

Users agree to indemnify and hold the Operator, its affiliates, officers, agents, employees, and partners harmless from and against any claims, liabilities, damages, losses, and expenses, including but not limited to legal fees, arising from or in any way connected to the use of the Service.

**Modifications and Termination:**

The Operator reserves the right to modify or terminate the Service at any time, without notice. Users acknowledge and accept that the Operator shall not be liable for any consequences arising from such modifications or termination.

By using the Service, you affirm that you have read, understood, and agreed to the terms and conditions set forth in this disclaimer. If you do not agree with any part of this disclaimer, you must refrain from using the Service.


