Ripple Destination Tag, что это и где взять

Про
Ripple на блоге уже было сказано достаточно — были и статьи о том, что это за монета, были и обзоры кошельков, были и новости, были даже прогнозы и сигналы на покупку. Многие уже успели оценить данную валюту по достоинству, а кто-то даже включил ее в свой портфель. Взрывной рост Ripple в последнее время заставил еще большее число людей обратить на нее свое внимание.
Но в данной статье мы не будем заново описывать эту монету и петь ей дифирамбы, а поговорим конкретно о том, с чем начали сталкиваться пользователи. Речь пойдет о Destination Tag или русским языком — о теге назначения или целевом теге.
Суть проблемы
Многие пользователи задают примерно одни и те же вопросы:
- Я отправил деньги со своего кошелька, а они не дошли — в поддержке сказали, что при отправке нужно указывать тег;
- Я не могу отправить деньги со своего кошелька, все время требует какой-то там тег, а я не знаю, что это и где его брать;
- Хочу пополнить счет на бирже, мне выдали адрес и какой-то тег — но я не знаю, что это за тег и куда его надо вводить.
Если в одной из этих фраз Вы увидели свою проблему, то эта статья точно для Вас. Для тех же, кто только собирается подружиться с этой валютой, данный материал поможет избежать этого вопроса в будущем.
Что такое Destination Tag
Итак, Destination Tag — это индивидуальный цифровой код (тег) , который идет как дополнительная информация для идентификации транзакций. Этот тег выдается, а затем и запрашивается получателем средств (например, биржей) у отправителей (у пользователей) в том случае, если все транзакций от отправителей идут на один и тот же адрес получателя.
Допустим, есть биржа, на которой можно торговать валютой Ripple. Сотни и тысячи пользователей, в свете последних событий, начинают вносить депозиты в Ripple на кошелек биржи. Биржа со своей стороны, чтобы не создавать для каждого пользователя индивидуальный адрес кошелька, дает один адрес на всех, куда и будут стекаться все депозиты. Но чтобы биржа затем смогла идентифицировать, кто сколько внес, она просто назначает каждому пользователю индивидуальный тег.
Выглядит это примерно так — пользователю A назначается тег 1, пользователю B — тег 2, C — 3, D — 4 и так далее. Когда пользователь отправит 1000 монет на адрес биржи и в примечании к транзакции (в поле Destination Tag) укажет свой тег, например 2, то биржа сразу поймет, что это был ни кто иной как пользователь B. Если же пользователь совершит отправку монет, но забудет про свой тег, например 4, тогда монеты просто уйдут на адрес кошелька биржи, но они будут обезличены и никак не будут связаны с пользователем D — другими словами, они будут просто потеряны для него.
Destination Tag нужен не всегда — некоторые сервисы его не требуют, так как изначально выдают пользователю индивидуальные адреса, по которым уже сразу понятно, кто именно осуществил конкретную транзакцию.
Где взять Destination Tag
Биржа OKEx
В разделе «Account» (1) выбираем пункт «Deposit» (2), а там в выпадающем списке выбираем валюту XRP и сразу получаем предупреждение:

В нем говорится о том, что при переводе средств на биржу OKEx необходимо указывать тег, в противном случае наши средства будут потеряны. Соглашаемся с этим и попадаем в форму, в которой мы сразу и видим наш заветный тег (3):

Именно эти цифры нам необходимо ввести в кошельке (в поле Destination Tag) при отправке средств на биржу.
Биржа HitBTC
Тут все точно так же. При внесении депозита на HitBTC мы увидим сам тег (1) — его тут можно скопировать или создать новый. А в строке адреса, куда будем переводить валюту, изначально вместо самого адреса будет показано предупреждение о том, что все переводы без тега будет потеряны (2):

Биржа Huobi
И последний пример — на бирже Huobi при пополнении баланса XRP нам также будет показан цифровой тег (1) с возможностью его копирования и предупреждением о том, чтобы мы были внимательны при отправке средств и верно все указали:

На других биржах и сервисах все будет работать аналогичным образом — отличия если и будут, то незначительные. Но, как Вы видите, ничего сложного тут нет. Просто помимо адреса, на который нужно отправлять средства и который нам уже знаком по работе с другими криптовалютами, тут необходимо дополнительно указывать еще и тег для идентификации нашего платежа.
Главное помнить — без тега Ваши монеты могут бесследно исчезнуть, поэтому всегда проверяйте, куда Вы их отправляете. Если это публичный адрес (биржа или обменник, тот же Changelly), всегда используйте тег. Если же Вы переводите монеты на личные адреса, то тут тег уже не нужен.
Куда вводить Destination Tag
Итак, мы находимся на завершающем этапе, тег у нас уже есть (биржи об этом позаботились), он скопирован и ждет своего применения. Теперь пришла и наша очередь позаботиться о том, чтобы с помощью этого тега наши монеты ушли в нужном направлении. Для этого заходите в свой кошелек.
Кто-то использует GateHub, кто-то CoinPayments или CoinSpot, а я покажу на примере Toast Wallet.
Toast Wallet
Toast — это новичок в не таком уж и большом ряду кошельков для хранения Ripple, но у него открытые исходные коды, он бесплатный и кроссплатформенный (есть версия для iOS, Android, Windows, Mac OS и Linux). А вот что говорят о нем сами разработчики: «Он достаточно прост для Вашей бабушки, но достаточно безопасен для швейцарского банкира».
При отправке монет нам будет доступно следующее окно:

Где мы:
- выбираем аккаунт (если их несколько), откуда будет происходить оплата;
- указываем адрес, куда надо перевести монеты;
- вводим наш тег (если же перевод происходит на личный адрес, то оставляем это поле пустым);
- прописываем количество монет для перевода.
Как видите, перевод средств с использованием тега также прост, как и без него. В других кошельках все будет происходить подобным образом. Вот пара примеров.
CoinPayments
Кстати, у CoinPayments адреса для XRP являются также публичными (как и у бирж), т.е. один и тот же адрес выдается нескольким пользователям, поэтому при переводе своих монет (например, с той же биржи) на XRP кошелек в этой системе, не забывайте также указывать тег, он доступен при создании депозитного адреса:


CoinSpot
Поле для Destination Tag в кошельке CoinSpot, естественно, также предусмотрено.

Есть еще один момент, на котором бы хотелось остановиться — это невозможность отправки транзакции без тега, на тот сервис, который этот тег не требует.
Вы можете столкнуться с такой ситуацией, когда какая-либо биржа, обменник или любой другой сервис не захотят обрабатывать Вашу транзакцию, ссылаясь на то, что поле тега Вы оставили пустым. Такая ситуация встречается, судя по отзывам, в следующей связке — вывод XRP с биржи EXMO на кошелек GateHub. Но не исключено, что есть и другие варианты. Если такое произошло, то просто в поле для тега напишите любое число. Ведь все дело в том, что Вы будете переводить XRP на свой личный адрес, а не на публичный, поэтому тег для идентификации тут не нужен будет.
Destination Tag: Explained

Unlike regular crypto, altcoins like XRP (Ripple), Stellar (mentioned in top 10 altcoin to watch) and Monero (XMR) have some non-obvious but very important caveats, when it comes to coin management. To control these assets fully, you need to get familiar with some nuances.
What is Destination Tag?
Destination Tag is a technology that defines the specific recipient of the transaction.
You can notice that you have the same XRP address as the other user on the exchange service. It happens since exchanges often use a one XRP address for all their XRP traders. The only difference is the Destination Tag, a short complimentary code piece that assigns your transaction to a certain account.
The Destination Tag is mandatory for the overwhelming majority of transactions. Once you set random numbers or inappropriate values instead of the required combination, you’ll lose your funds. Either the funds will be sent to any other user having that combination as the tag, or to the exchange storage as an unassigned transaction.
The Destination Tag purpose is identification transaction recipient.
It’s like the number of rooms. If you live in the same building, you’ll need to use exactly your room number. If you live in a private house, you won’t need one.
How to use Destination Tag?
The Destination Tag is not required if you use your own personal address. Atomic Wallet provides every user with their own wallet address. However, when it comes to exchanging your coins using centralized services, the Destination Tag becomes mandatory.
What is a unique wallet address?
Unique address or fee for registrations is a special feature for Ripple and Stellar. You need to pay 20 XRP or 1 XLM for address registration in the blockchain. This will be an unspendable balance which is a fee to prevent the whole network from spam attacks. In other cryptocurrencies you don’t need to pay for address registration, except for EOS
- In Ripple Destination Tag can be shown in the address after the «?dt=».
As like as: «rw7AxoYRb5MyRf3oRjSVPtgsQYQLp6rqGn?dt=1234567890» - In Stellar the Destination Tag is called «Memo ID»
- In Monero Destination Tag is called «Payment ID»

Destination Tag free
If you want to use the custody-free wallet for Ripple, Stellar, Monero, other top coins and all of the tokens — download and install Atomic Wallet, the first multi-asset wallet with build-in Atomic Swap DEX. You’ll have your own address for all of the coins and you will be Destination Tag free.
When receiving cryptos, just leave the “Destination tag” field empty. If filling out the field is mandatory, just put random numbers here. You’ll get the money anyway. And when sending coins to someone else, just input the Destination Tag of a recipient.
Source and Destination Tags
Source tags and destination tags are a feature of XRP Ledger payments that can indicate specific purposes for payments from and to multi-purpose addresses. Source and destination tags do not have direct on-ledger functionality; source and destination tags merely provide information about how off-ledger systems should process a payment. In transactions, both source and destination tags are formatted as 32-bit unsigned integers.
Destination tags indicate the beneficiary or destination for a payment. For example, a payment to an exchange or gateway address can use a destination tag to indicate which customer to credit for the amount of the payment in that business’s own systems. A payment to a merchant could indicate what item or cart the payment is buying.
Source tags indicate the originator or source of a payment. Most commonly, a Source Tag is included so that the recipient of the payment knows where to send a return, or «bounced», payment. When returning an incoming payment, you should use the source tag from the incoming payment as the destination tag of the outgoing (return) payment.
The practice of giving customers the ability to send and receive transactions from your XRP Ledger address using another interface is called providing hosted accounts. Hosted accounts typically use source and destination tags for each customer.
Tip: An X-address combines a classic address with a tag into a single address that encodes both. If you are showing a deposit address to customers, it may be easier for your customers to use an X-address rather than making them keep track of two pieces of information. (The tag in an X-address acts as a source tag when sending and a destination tag when receiving.)
Rationale
In other distributed ledgers, it is common to use different deposit addresses for each customer. In the XRP Ledger, an address must be a funded, permanent account to receive payments. Using this approach in the XRP Ledger wastefully consumes resources of all servers in the network, and is costly because the reserve amount must be set aside indefinitely for each address.
Source and destination tags provide a more lightweight way to map deposits and payments to individual customers.
Use Cases
A business may want to use source and destination tags for several purposes:
- Direct mappings to customer accounts.
- Matching return payments to the outgoing payments that prompted them.
- Mapping payments to quotes that expire.
- Providing disposable tags that customers can generate for specific deposits.
To prevent overlap while protecting privacy, a business can divide the total range of tags available into sections for each purpose, then assign tags in an unpredictable order within the range. For example, use a cryptographic hash function like SHA-256 , then use the modulo operator to map the output to the size of the relevant section. To be safe, check for collisions with old tags before using a new tag.
Assigning tags in numerical order provides less privacy to customers. Since all XRP Ledger transactions are public, assigning tags in this way can make it possible to guess which tags correspond to various users’ addresses or to derive information about users’ accounts based on the tags used.
Requiring Tags
For an XRP Ledger address that may receive payments intended for several customer accounts, receiving a payment without a destination tag can be a problem: it is not immediately obvious which customer to credit, which can require a manual intervention and a discussion with the sender to figure out who was the intended recipient. To reduce cases like this, you can enable the RequireDest setting. That way, if a user forgets to include a destination tag in a payment, the XRP Ledger rejects their payment instead of giving you money you don’t know what to do with. The user can then send the payment again, using the tag as they should have.
Destination Tags 101 — In depth

There appears to be a lot of confusion around the what, why, how and when of Destination Tags, called DT’s from here on.
What are They? Why do they exist? How and when to use them? This article defines DT’s, explains why they exist and how they are used.
There are «Source tags» as well but they affect individual users less so don’t come up. This article will discuss DT’s only. Source tags (ST’s) are the same thing but are for going in the opposite direction. Almost everything said here about DT’s applies equally to ST’s but with the polarity reversed.
This article is informational (not technical) and based on the XRP protocol documentation at XRPL.org which is subject to change that might invalidate what is written here. Please check the reference in case of questions or issues.
Italic sections «surrounded by quotes» are taken from the documentation.
What is a DT?
A DT is an optional field that can be included after the Destination Address «that can indicate specific purposes for payments from and to multi-purpose addresses.
«[DT’s] do not have direct on-ledger functionality; [they] merely provide information about how off-ledger systems should process a payment.«
Why do they exist?
«Destination tags indicate the beneficiary or destination for a payment.»
«For example, a payment to an exchange or gateway address can use a destination tag to indicate which customer to credit for the amount of the payment in that business’s own systems. A payment to a merchant could indicate what item or cart the payment is buying.»
DT’s are intended to reduce bloat in response to the XRP Reserve Requirement imposed by the XRP Ledger Protocol.
It is impractical to expect businesses transacting on the ledger (e.g. exchanges) to fund a 10 XRP reserve for each of their clients and, similarly, unfair to expect clients to maintain credentials and fund reserves for each business they with whom they transact.
DT’s provide data that can be read by an external system and used to take action in the external system.

Exchanges, for example, may operate a single XRP account to receive all of their client’s deposits allocating the deposit to the correct client by specifying a DT for the client to include when sending the transaction.
Unfortunately this manual process is error-prone in two ways: the client may neglect of forget to include the DT when sending and/or make a transcription error changing the value of the DT.
The result is the transaction is ‘successful’ as far as the ledger is concerned but the XRP is not credited to the correct client exchange account by the exchange’s client management system external to the ledger.

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 you are responsible for checking if the destination you are sending to requires adding a DT, and, if so, entering the right one.


Usually, if a DT is required the destination account will specify this in advance.
There is no going backwards after sending the transaction. If no DT is specified the transaction will usually complete in seconds.
SOME exchanges have started to apply the Require Destination Tag flag which means transactions with no DT will bounce. This helps if the DT is ommitted but not in the case of a transcription error where the sender includes an incorrect DT.
The only way to correct any mistakes is by contacting the recipient giving them the transaction ID.
They will then do what they are going to do. There is nothing XUMM (or any other wallet provider) can do.

When to use them?
DT’s make automatic tracking of transactions coming from multiple sources possible. If the destination needs a DT, they will specify a DT.

Some organizations require clients to specify a DT when withdrawing XRP back to their own account address.

DT’s may be specific to an account or they may be for one-time-use. That is a decision taken by each organization. Assuming the same DT can be re-used may not give the intended result.
Conclusion
Hopefully this article creates more clarification than confusion. Constructive criticism and comments are welcome.