Help! I forgot my Stellar memo.
A guide for understanding memos and using them with exchanges.
“I recently transferred lumens from one exchange to another. My transaction is confirmed on the blockchain, but I’m not receiving them in my exchange account. Can you guys help?”
Does this question sound familiar? You may have forgotten to fill out the memo field before sending your transaction. If you find yourself in a similar situation don’t panic. In this post, I’ll discuss what memos are, how exchanges use them and where to reach out regarding your transaction.
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. 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.
Going forward, make sure to review the address you’re sending to, verify if you need to provide a memo, and 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 transaction.
How Do Exchanges Use Memos?
Custodial exchanges do not 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 three popular custodial exchanges let users deposit / receive lumens.
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. 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.
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 such example can be reviewed in this post. The author used memos and IPFS to build a very simple decentralized forum. This was done by using IPFS hashes in the memo field. When a user sends a transaction with a memo of the IPFS hash to the forums Stellar account, the site can retrieve that memo and show the information it represents.
Another 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 Stellar’s federation protocol. Stellar addresses are human-readable addresses (similar to an email address) that make it easier for users to make transactions. They also work for custodians and can be integrated into existing databases.
If your application supports Stellar, we highly recommend supporting federation. You can learn more about federation here, how to add Stellar to your exchange here, and how to set up a federation server here.