Help! I forgot my Stellar memo.

ASCII

“I recently sent XLM to an exchange. My transaction is confirmed on the blockchain, but it hasn’t shown up in my exchange account. Can you help?”

Does this sound familiar? Well if so, don’t worry. You may have forgotten to fill out the memo field in your transaction, or you may have accidentally included an incorrect memo. In this article, I’m going to walk you step-by-step through the process of reclaiming your XLM and warning you of some pitfalls that you can easily avoid. Then, we’re going to look at why and how exchanges use memos and a solution to get rid of memos in exchange transactions that’s been available since July 2020. Let’s jump on in!

What if I forget the Memo?

If you are making an ‘everyday’ transaction on the Stellar network using a popular Stellar wallet, forgetting the memo is no big deal; it’s optional. However, if you are sending (depositing) lumens to an exchange, forgetting the memo will generally lead to your exchange account not being credited with lumens. If this happens, it’s important that you contact the exchange you sent lumens to — SDF can not help you recover your lumens.

I suggest finding your transaction using the Payment Locator on Stellar.Expert and getting as many details as you can regarding the transaction. Reach out to the exchange’s support team with the transaction details, let them know that you forgot the memo, and see what they can do to help you identify your transaction.

bank

Going forward, make sure to (1) review the address you’re sending to, (2) verify if you need to provide a memo, and (3) check that you provide an appropriate fee. You should only send transactions after you have double checked all of this information and verified that it is correct. Remember, it’s never a bad idea to try sending a small amount of an asset before making any major transaction.

Also, I recommend not sending transactions directly between two exchanges. First, send your transaction to a public address you own. Then, send it from there to the exchange you want to deposit on. This will help you to avoid what I call Lumen Limbo.

What’s Lumen Limbo, you may ask? Well, let’s say you send a transaction without a memo, and you contact the exchange as suggested above. They respond that they’ve found your transaction, but their policy doesn’t allow them to credit your account with the XLM. They can only send the XLM back to the account that sent it to them, and they won’t include a memo. Well, if you used an exchange to send the XLM, that address is going to require a memo for it to be credited to your account. Then, you reach out to the exchange they sent the transaction back to, and they send it back to the other exchange without a memo, and now, you’re stuck in Lumen Limbo forever bouncing memo-less transactions between two exchanges!

How Do Exchanges Use Memos?

Many custodial exchanges don’t create an individual Stellar wallet for every user that signs up on their platform. Instead, they use one wallet that serves X amount of users. An example would be that users are divided into groups of 50 with each group sharing a wallet.

You might assume that 50 users sharing one wallet would become very cluttered — memos provide a solution. Memos allow exchanges to easily keep track of a particular user’s balance by assigning each user a specific memo to provide with their transactions. To explain this further, I’ll show how a couple of popular custodial exchanges let users deposit / receive lumens.

encryption
financial services

You can see in the images provided, popular exchanges try to help you understand that a memo is required before you begin your deposit. The final step in each image shows the memo field that should be copied and provided with the transaction being sent. Each also provides the option of using a QR code which will automatically include the required memo. Other exchanges implement similar mechanisms for providing memos and it’s best to double check with your exchange of choice.

The provided memo is significant because it separates your transactions from the others in the shared wallet. If you do not provide this memo with your transaction, it’s like sending cash to your bank without telling them which account to deposit it to.

What is a Memo?

The usual transaction flow for cryptocurrencies such as Bitcoin goes as follows: Type in receiving address, specify amount to be sent along with fees, click send.

Stellar introduces an optional step to this transaction flow called a memo. A memo is a data field for including information associated with a transaction.

Memos can be one of the following types:

MEMO_TEXT : A string encoded using either ASCII or UTF-8, up to 28-bytes long.

MEMO_ID : A 64 bit unsigned integer.

MEMO_HASH : A 32 byte hash.

MEMO_RETURN : A 32 byte hash intended to be interpreted as the hash of the transaction the sender is refunding.

Lumen Limbo

It’s up to developers to determine the best use for the memo field in their software. SDF does not recommend a specific use-case for memos. Besides exchanges using them to identify deposits, some users use memos to denote what a transaction was for or as a “Thank You”. Others use memos in more experimental ways.

One potential use case, presented by StellarGuard, is using memos to send private transaction data. Using different encryption methods combined with memos could allow exchanges or financial services to provide more security for their users when data needs to be associated with a transaction.

Custodial Exchanges — time to ditch the memo?

As Stellar grows and more people are looking to move their assets around, the frequency of memo support questions and issues have grown. Even people who are familiar with “memo deposits” still mess them up from time to time.

Luckily, there’s a (memo-less) solution built into Stellar! Instead of using memos for deposits, custodial exchanges can just utilize muxed (or multiplexed) accounts on Stellar. A muxed account is an account that exists “virtually” under a traditional Stellar account address. It combines the familiar GABC… address with a 64-bit integer ID and can be used to distinguish multiple “virtual” accounts that share an underlying “real” account.

If your application supports Stellar, we highly recommend supporting muxed accounts. You can learn more about them here.

Stellar News


Help! I forgot my Stellar memo. was originally published in Stellar Community on Medium, where people are continuing the conversation by highlighting and responding to this story.

You May Also Like