An allegorical description of Destination Tags purpose and function
Destination Tags (DT's) serve a definite purpose. They are technically optional but necessary in certain situations. When they are necessary, they must be used and used correctly.
There is a deeper, more technical Destination Tag write-up in this article.
If a package with the correct address but no name on it came to a residence with a single occupant there's no problem determining who it is for.
Maybe you guessed the package is XRP and the residence is an account. The name is the DT.
In the above example, putting a name on the package is optional the same way sending XRP to an account used by one person doesn't need a DT.
XRP Ledger account managed with XUMM will commonly be held by a single individual so sending XRP to that account does not need a DT.
If that package-with-no-name scenario occurred at an organization with a large number of people, a lot of time and effort would be wasted trying to find the intended recipient. It's possible they may never be found.
Not putting a name on a package in that case doesn't even make sense.
Large organisations with XRP accounts often have multiple people sending them XRP. In the case of exchanges that XRP is usually supposed to be credited to a customer account.
Giving each exchange customer their own XRP account is technically possible but creates a maintenance load and ties up 20 XRP per account for the reserve mandated by the XRP protocol.
Exchanges work around this by designating a single account as a receive account and use that to receive all the XRP coming to the exchange.
Example: Coinbase Instructions
But how do they know which customer belongs to which XRP?
They tell people sending XRP to the exchange to put a name on the package - a DT.
When setting up to send XRP to an exchange account the exchange will specify the DT to use before the transaction is sent.
The user needs to set up the transaction at both ends starting with their exchange account to get the DT.
There are few places where this system may fail - because humans.
- The sender may not put the DT in the transaction because:
- they didn't know it was needed
- they forgot
- The sender puts the incorrect DT in the transaction because
- an input error
- they re-used a DT from a previous transaction not knowing that, while some exchanges assign each client a fixed, permanent DT, others generate a new DT for each transaction
What happens when there is a missing or incorrect DT in a transaction sent to a multi-user, multi-purpose wallet at an exchange?
The transaction will be 'successful' because the address is valid. The XRP will be in the account to which it was sent however, it can't get allocated to a customer account so it will go the the default slot in the account which has no DT associated with it.
In a perfect world, we should be able to reach out the exchange's support team, tell them what happened and get them to allocate it correctly.
In practice, the reality has been less than ideal.
All the more frustrating is the XRP ledger is public and, we can look up the transaction, see the XRP sitting there and do nothing about it.
With the freedom of cryptocurrencies comes the responsibility to manage credentials and transaction details ourselves.
Most cryptocurrency transactions are irreversible!
Sending XRP to the incorrect address or with a missing/incorrect DT when one is required by the recipient cannot be undone.
The only possible remediation is if the recipient will send it back or allocate it correctly.
How to use them?
In the case of XUMM, the how is very simple.
When sending XRP the last SUMMARY screen defaults to an empty DT field.
There is pencil icon to the right that triggers a dialogue to edit the DT.
If sending funds to an exchange known to require DT's, XUMM may force you to enter a destination tag.
Whether XUMM asks for a destination tag or not: ultimately the user is responsible for checking if the destination you are sending to requires adding a DT, and, if so, entering the right one.