Open data

Which crypto networks need a memo or destination tag

Exchanges and swap services often give every customer the same deposit address and tell deposits apart by a memo. This page lists, for 32 networks, whether you need one, what it is called and which values it takes.

Checked against official sources on

The short answer

Needs a memo for exchange deposits

A normal send does not need one. A deposit to a shared exchange or swap address does.

Has a memo field, but deposits are told apart another way

The receiving service usually gives you a unique address or account instead.

No memo needed

Each deposit gets its own address, so the address alone is enough.

All networks

Byte limits count UTF-8 bytes, so letters with accents and emoji take more than one byte each. Where a chain sets its limit by governance and does not publish it, the table says so.

NetworkNeeds a memo?Field nameAccepted valuesMemo-free address
Akash (AKT)Yes, for exchange depositsMemoText, limit set by the chain (usually 256 bytes)-
Casper (CSPR)Yes, for exchange depositsTransfer IDNumber, 0 to 2^64 - 1-
Celestia (TIA)Yes, for exchange depositsMemoText, up to 256 bytes-
Cosmos Hub (ATOM)Yes, for exchange depositsMemoText, up to 512 bytes-
Cronos POS Chain (formerly Crypto.org Chain) (CRO)Yes, for exchange depositsMemoText, limit set by the chain (usually 256 bytes)-
dYdX Chain (DYDX)Yes, for exchange depositsMemoText, limit set by the chain (usually 256 bytes)-
Hedera (HBAR)Yes, for exchange depositsMemoText, up to 100 bytes-
Injective (INJ)Yes, for exchange depositsMemoText, limit set by the chain (usually 256 bytes)-
Kava (KAVA)Yes, for exchange depositsMemoText, limit set by the chain (usually 256 bytes)-
Mina (MINA)Yes, for exchange depositsMemoText, up to 32 bytes-
Osmosis (OSMO)Yes, for exchange depositsMemoText, limit set by the chain (usually 256 bytes)-
Sei (SEI, being phased out)Yes, for exchange depositsMemoText, limit set by the chain (usually 256 bytes)-
Stellar (XLM)Yes, for exchange depositsMemoMEMO_ID: Number, 0 to 2^64 - 1; MEMO_TEXT: Text, up to 28 bytes; MEMO_HASH: 32-byte hashMuxed M... address
Terra (phoenix-1) (LUNA)Yes, for exchange depositsMemoText, up to 512 bytes-
Terra Classic (columbus-5) (LUNC)Yes, for exchange depositsMemoText, up to 256 bytes-
TON (The Open Network) (GRAM, TON)Yes, for exchange depositsCommentText-
Vaulta (formerly EOS) (A, EOS)Yes, for exchange depositsMemoText, up to 256 bytes-
XRP Ledger (XRP)Yes, for exchange depositsDestination tagNumber, 0 to 4,294,967,295X-address
Algorand (ALGO)OptionalNoteText, up to 1024 bytes-
Internet Computer (ICP)OptionalMemoICP ledger memo (nat64): Number, 0 to 2^64 - 1; ICRC-1 memo: Text, up to 32 bytesSubaccount
Monero (XMR)OptionalPayment IDOnly inside an integrated addressIntegrated address or subaddress
Stacks (STX)OptionalMemoText, up to 34 bytes-
Bitcoin (BTC)No-Not needed-
Ethereum (ETH)No-Not needed-
Kaspa (KAS)No-Not needed-
Kusama (KSM)No-Not needed-
NEAR Protocol (NEAR)No-Not needed-
Polkadot (DOT)No-Not needed-
Solana (SOL)No-Not needed-
Theta (THETA, TFUEL)No-Not needed-
TRON (TRX)No-Not needed-
BNB Beacon Chain (BNB, shut down)Yes, for exchange depositsMemoText, up to 128 bytes-

Sources for every row are in the details below and in the dataset on GitHub.

If you forget the memo

The coins still arrive on chain, at the service's shared address. What changes is whether the service can tell they are yours. Here is what each network does, from its own documentation.

AkashMemo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically.

Not documented. Akash's architecture docs list a 'Memo size limit' ante check without a value. The SDK default is 256 and chains can change it by governance.

Good to know: Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Active as its own chain (akashnet-2). AEP-79 (status Final) plans a move to shared security with an estimated completion of 2026-12-31; memo rules may change after that move.

Sources (Checked 19 Sep 2026)

CasperTransfer ID

What happens without it: The CSPR still arrives in the receiving account; a receiver that tracks many users' balances inside one account cannot tell who to credit automatically.

unsigned 64-bit integer (0 to 18446744073709551615); optional at protocol level (Option<U64>)

Good to know: Casper's docs call the transfer ID 'a memo field' that is necessary when transferring to some recipients, for example an account whose sub-balances are tracked off-chain, and say to pass 0 or any u64 if it is not needed. CLI flag: --transfer-id (argument 'id'). The older casper-client transfer command requires --transfer-id; in Casper 2.0 (Condor) the new transaction transfer command makes it optional. Casper 2.0 docs describe it as a 'Unique transfer identifier (prevents replay attacks)' (see report). Accounts are hex public keys (prefix 01 or 02) with no embedded ID.

Sources (Checked 19 Sep 2026)

CelestiaMemo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically.

256 bytes (auth.MaxMemoCharacters, 'Largest allowed size for a memo in bytes'; changeable by governance)

Good to know: docs.celestia.org does not discuss memos; the limit comes from the official celestia-app specification. Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Sources (Checked 19 Sep 2026)

Cosmos HubMemo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically.

512 (cosmoshub-4 genesis value of max_memo_characters; changeable by governance)

Good to know: The Hub's own parameter docs say an exchange may use a common deposit address for all of its users and tell deposits apart using the memo field. Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Sources (Checked 19 Sep 2026)

Cronos POS Chain (formerly Crypto.org Chain)Memo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically.

Chain value not stated: the genesis docs describe the parameter ('Maximum number of characters in a memo of a transaction') without a value. Standard Cosmos SDK memo check; SDK default 256.

Good to know: The chain's wallet guide says to leave the memo blank for normal transfers, but that you will need to provide a memo when sending to an exchange. Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Active. Renamed from Crypto.org Chain to Cronos POS Chain on October 16, 2023; the chain ID is still crypto-org-chain-mainnet-1.

Sources (Checked 19 Sep 2026)

dYdX ChainMemo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically.

Chain value not stated in the chain's official docs. The chain uses the standard Cosmos SDK memo check; the SDK default is 256 and chains can change it by governance.

Good to know: dYdX's docs only show an optional 'memo' parameter in client method signatures. Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Sources (Checked 19 Sep 2026)

HederaMemo

What happens without it: The HBAR still arrives in the receiving account; a service that shares one account among many users cannot match it to a customer automatically.

max 100 bytes of UTF-8 (network setting transaction.maxMemoUtf8Bytes, default 100); a zero byte (0x00) is not allowed

Good to know: The transaction memo is optional and visible to everyone. It is different from the account memo, which is a property of the account itself. Official docs say a memo may be needed for transferring to exchange accounts. Accounts are IDs of the form 0.0.<number>. Some official pages say '100 characters' while the protobuf spec and node code count UTF-8 bytes (see report). If an account has Receiver Signature Required turned on (off by default), it must sign every incoming transfer.

Sources (Checked 19 Sep 2026)

InjectiveMemo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically.

Chain value not stated in the chain's official docs; Injective's auth module page reproduces the Cosmos SDK table, which shows 256 as an example value. The SDK default is 256 and chains can change it by governance.

Good to know: Injective's docs show the CLI flag --note ('Note to add a description to the transaction (previously --memo)'). Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Sources (Checked 19 Sep 2026)

KavaMemo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically. Kava's FAQ warns that funds sent to such an exchange without a memo can be lost.

Chain value not stated in the chain's official docs. The chain uses the standard Cosmos SDK memo check; the SDK default is 256 and chains can change it by governance.

Good to know: Kava's own FAQ says some exchanges require a memo for cross-chain transfers and that funds sent without one can be lost. Kava's CLI guide shows the flag --memo, while the SDK version in Kava's source (v0.47) uses --note. Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Sources (Checked 19 Sep 2026)

MinaMemo

What happens without it: Mina's docs say such funds are NOT lost: they reach the exchange's address, but the exchange may not be able to match the deposit to the user's account automatically without the memo.

max 32 bytes of content (stored in a fixed 34-byte field); the number comes from the node and official signer source code, not the docs site

Good to know: Mina's docs say some exchanges require users to include a unique memo when depositing, recommend that exchanges do NOT require a memo for deposits, and recommend that wallets expose an optional memo field. CLI flag: --memo.

Sources (Checked 19 Sep 2026)

OsmosisMemo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically.

Chain value not stated in the chain's official docs. The chain uses the standard Cosmos SDK memo check; the SDK default is 256 and chains can change it by governance.

Good to know: On Osmosis the IBC packet memo (not the transaction memo) can trigger contract calls (IBC hooks) and onward forwarding (packet forward middleware) when it holds JSON in a specific form. Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Sources (Checked 19 Sep 2026)

SeiMemo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically.

Cosmos-side (sei1...) transactions: chain value not stated in Sei's docs; standard Cosmos SDK memo check (SDK default 256). EVM (0x...) transactions: no memo at all.

Good to know: Sei's user quickstart says withdrawals from exchanges typically need no memo, but depositing back may require one. The memo exists only on Cosmos-side (sei1...) transactions: Sei's docs say an EVM transaction that sets the Cosmos memo field is rejected. Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Under SIP-3 the Cosmos side (sei1... addresses, and with it the memo) is being removed and Sei becomes EVM-only. Official pages gave June 15, 2026 as the deadline for exchanges to move to EVM (0x...) addresses; IBC was disabled in both directions by July 2026. As of 2026-09-19 some official pages still describe the Cosmos shutdown as upcoming, so the exact switch-off date is not confirmed.

Sources (Checked 19 Sep 2026)

StellarMemo

What happens without it: The payment still lands in the shared (pooled) account; the receiver cannot match it to a customer automatically. Under SEP-29, an account can publish the data entry config.memo_required = 1 so that wallets and SDKs that follow SEP-29 refuse to submit a payment without a memo; this is a client-side check, not a network rule, and payments to muxed (M...) destinations are exempt.

MEMO_TEXT: ASCII or UTF-8 string up to 28 bytes; MEMO_ID: 64-bit unsigned integer (0 to 18446744073709551615); MEMO_HASH: 32-byte hash; MEMO_RETURN: 32-byte hash of the transaction being refunded

Muxed account (SEP-23 strkey, starts with M, 69 characters) encodes the base G... account plus a 64-bit ID, so no separate memo is needed when the receiver gives an M... address

Good to know: Memo types: MEMO_NONE, MEMO_TEXT, MEMO_ID, MEMO_HASH, MEMO_RETURN. The memo is set once per transaction, not per operation. Text, ID and hash memos are different types, so the type the receiver asks for matters as well as the value. Official docs call muxed accounts better in the long term but note they are not yet supported by all wallets and exchanges, and suggest supporting both memos and muxed accounts for a while. Muxed accounts do not exist on the ledger; funds go to the underlying G... account.

Sources (Checked 19 Sep 2026)

Terra (phoenix-1)Memo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically.

512 (max memo characters, genesis value)

Good to know: Terra's docs show the flag --note ('Note to add a description to the transaction (previously --memo)'). Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Sources (Checked 19 Sep 2026)

Terra Classic (columbus-5)Memo

What happens without it: The tokens still arrive at the shared deposit address; the receiver cannot match them to a customer automatically.

256 (max memo characters, documented default)

Good to know: Terra Classic caps the memo on outgoing IBC transfers at 1024 bytes, lower than the ibc-go limit. Cosmos SDK chain: the memo is one text field for the whole transaction (TxBody.memo). Current SDK command-line tools use the flag --note (previously --memo). The limit parameter is called max_memo_characters, but the SDK code measures the memo in bytes, so a non-ASCII character counts as more than one. A transaction whose memo is over the limit is rejected with the error 'memo too large'; an empty memo is always accepted by the protocol. IBC token transfers carry a separate packet memo (ICS-20), which ibc-go caps at 32768 bytes.

Active, run by its community; documented on a separate Classic docs site.

Sources (Checked 19 Sep 2026)

TON (The Open Network)Comment

What happens without it: The coins still arrive at the shared deposit wallet. The official payments guide states that deposits without the correct invoice identifier may be lost and advises services to reject or hold unmatched deposits and offer a recovery workflow.

Plain comment: message body starting with the 32-bit opcode 0x00000000, followed by UTF-8 text; the official docs state no fixed maximum length for plain comments. Encrypted comment (opcode 0x2167da4b): plaintext max 960 bytes.

Good to know: The official payments guide describes two designs: invoice-based deposits (one shared address, a unique identifier in the transaction comment) and unique deposit addresses (one wallet per user, no comment needed). The same comment format is used for native coin transfers, Jetton (token) transfers and NFT transfers. The docs present encrypted comments for private wallet-to-wallet notes; the deposit flow in the payments guide reads plain-text comments. The native coin is now called Gram (GRAM) in the official docs; it was previously called Toncoin (TON).

Sources (Checked 19 Sep 2026)

Vaulta (formerly EOS)Memo

What happens without it: The tokens still arrive in the receiving account; a service that shares one account among many users cannot match them to a customer automatically.

max 256 bytes (checked by the token contract: memo.size() <= 256, error 'memo has more than 256 bytes')

Good to know: The memo is a parameter of the token contract's transfer action, so the limit comes from the contract, not the base protocol; the same 256-byte check is in eosio.token (EOS) and in the Vaulta system contract (A). The memo is optional for normal transfers. The official 'Watching Transfers' tutorial, written for exchanges and wallets, shows a deposit to an exchange-style account with a numeric memo. There are no per-user addresses: accounts are names of up to 12 characters (a-z, 1-5 and '.').

The EOS Network rebranded to Vaulta; the new token symbol is A (contract core.vaulta), with a 1:1 swap from EOS that began on May 14, 2025. EOS tokens remain on-chain.

Sources (Checked 19 Sep 2026)

XRP LedgerDestination tag

What happens without it: If the receiving account has the RequireDest flag (lsfRequireDestTag) set, the payment fails with tecDST_TAG_NEEDED: no XRP is delivered, and only the small transaction cost is charged, as with any tec result. If the flag is not set, the payment lands in the shared account and the receiver cannot tell automatically which customer to credit; the docs say this can require manual intervention.

32-bit unsigned integer: 0 to 4294967295

X-address (XLS-5, status Final) packs the classic r... address and the destination tag into one address; starts with X on Mainnet, T on Testnet

Good to know: DestinationTag is an optional field of the Payment transaction. A separate SourceTag field (also UInt32) identifies the sender side. The Memos field is a different, free-form field (hex blobs, max 1 KB serialized) and is not the destination tag. The official docs describe lsfRequireDestTag as commonly used on exchanges and other shared accounts. Classic addresses start with r and are 25 to 35 characters long.

Sources (Checked 19 Sep 2026)

AlgorandNote

What happens without it: The payment still arrives at the address; a receiver that relies on notes to tell senders apart cannot match it automatically.

up to 1024 bytes at the normal fee, or up to 4096 bytes for an additional per-byte fee (MaxAbsoluteTxnNoteBytes, consensus version v42, 2026)

Good to know: The note is optional arbitrary data on any transaction. The official docs make no statement that exchanges need a note for deposits; if a receiving service asks for one, it must be included. ARC-90 payment links (algorand://) can carry a note (note=) or a fixed, non-editable note (xnote=); the address itself never contains a note. Some official spec and docs pages still show only the older 1024-byte limit (see report).

Sources (Checked 19 Sep 2026)

Internet ComputerMemo

What happens without it: The memo has no meaning to the ledger. Deposits to a per-user subaccount are identified by the account itself; if a receiver did rely on a memo on one shared account, the transfer still arrives but cannot be matched automatically.

ICP ledger legacy transfer: memo is a nat64 (0 to 18446744073709551615). ICRC-1 transfer: optional blob; the ICP ledger accepts up to 32 bytes; other ICRC-1 ledgers default to 32 bytes but can be configured (published as icrc1:max_memo_length); the ICRC-1 standard says ledgers SHOULD allow at least 32 bytes.

Per-user subaccounts instead of memos: an ICRC-1 account is a principal plus an optional 32-byte subaccount, written in text as <principal>-<checksum>.<subaccount>; the legacy account identifier (64 hex characters) is a hash of principal plus subaccount.

Good to know: The official docs describe deposit flows where each user gets a unique deposit subaccount, rather than memos. ICP ledger blocks can hold both memo types (memo u64 and icrc1_memo blob). The 32-byte ICRC limits come from ledger source code; no docs page states the number.

Sources (Checked 19 Sep 2026)

MoneroPayment ID

What happens without it: If the sender pays the plain standard address instead of the integrated address, the XMR still reaches the receiving wallet but without a payment ID, so the receiver cannot match it to a customer automatically. With subaddresses there is nothing extra to enter.

Only the 8-byte (64-bit, 16 hex characters) encrypted payment ID remains, carried inside an integrated address. Long 32-byte (64 hex) payment IDs were removed in release 0.15 (2019) and can no longer be used.

Integrated address (106 characters, starts with 4) = standard address + encrypted 8-byte payment ID. Subaddresses (95 characters, start with 8) give each payer or payment its own address instead, with no payment ID.

Good to know: No separate memo field needs to be typed: when a service gives an integrated address, the payment ID is inside the address. One transaction cannot pay to more than one integrated address. The official docs say subaddresses are what you should use by default to receive Monero, and the 2019 deprecation notice encouraged services to move to subaddresses directly; the current integrated-address docs page says businesses accepting payments in an automated way should prefer integrated addresses (see report).

Sources (Checked 19 Sep 2026)

StacksMemo

What happens without it: The STX still arrives at the address; a receiver that shares one address among many users cannot match it to a customer automatically.

34 bytes: stored as exactly 34 bytes, zero-padded; the official JS SDK rejects memos longer than 34 UTF-8 bytes

Good to know: The memo is part of the STX token-transfer transaction. SIP-010 fungible tokens have an optional 34-byte memo on transfer as well. The official docs make no statement that exchanges need a memo for deposits; if a receiving service asks for one, it must be included. SIP-005 describes the token-transfer payload without mentioning the memo.

Sources (Checked 19 Sep 2026)

BitcoinNo

Good to know: The official developer guide says using a separate address for each incoming payment makes it trivial to see which customers have paid. BIP-21 payment links can carry a label and message, but these are never added to the transaction. An OP_RETURN (null data) output can carry arbitrary data, but it is not a deposit memo.

Sources (Checked 19 Sep 2026)

EthereumNo

Good to know: A transaction names a recipient ('to') and an amount ('value'). The optional 'input data' field holds arbitrary data and is mainly used to call contracts; it is not a deposit memo. A simple transfer uses 21000 gas. Official docs do not discuss exchange deposits; 'no memo' follows from the transaction format.

Sources (Checked 19 Sep 2026)

KaspaNo

Good to know: UTXO model with kaspa: addresses (bech32 with checksum). Since the Crescendo hard fork (KIP-14, May 2025) normal transactions may carry arbitrary data in a payload field, but no official source describes it as a deposit identifier, and the official command-line wallet's send command does not set it. No official statement says 'no memo' in so many words; this follows from the transaction format.

Sources (Checked 19 Sep 2026)

KusamaNo

Good to know: Same balance transfer calls as Polkadot (destination and amount only). Existential deposit: sending less than it to an empty account means the account won't receive the funds; the official page lists 0.0000033333 KSM on Kusama Asset Hub (where balances moved on October 7, 2025) and 0.00033333333 KSM on the relay chain. No current official exchange-deposit guidance was found.

Sources (Checked 19 Sep 2026)

NEAR ProtocolNo

Good to know: The protocol's Transfer action carries only an amount (deposit); the transaction has no memo. Accounts are named (for example alice.near, 2 to 64 characters) or implicit (64 hex characters). NEP-141 fungible tokens are different: ft_transfer has an optional memo argument, with no length limit in the standard. docs.near.org removed its exchange-integration pages on 2026-03-19; the last version described implicit accounts as useful for exchanges.

Sources (Checked 19 Sep 2026)

PolkadotNo

Good to know: The balance transfer calls (transfer_allow_death, transfer_keep_alive) take only a destination and an amount. A separate system.remark call can store arbitrary bytes but is not part of a transfer. Existential deposit: sending less than it to an empty account means the account won't receive the funds; it is 0.01 DOT on Polkadot Asset Hub (where balances moved on November 4, 2025) and 1 DOT on the relay chain. No current official exchange-deposit guidance was found.

Sources (Checked 19 Sep 2026)

SolanaNo

Optional Memo program (MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr): UTF-8 text, up to 566 bytes in an unsigned instruction (as of v1.5.1)

Good to know: The official exchange guide recommends a unique deposit account for each user. The Memo program is optional: it checks that the memo is valid UTF-8 and writes it to the transaction log. Exception: a Token-2022 token account can turn on 'required memo on transfer', and the guide says exchanges may then ask users to add a memo instruction when depositing such tokens. The guide also says every SOL deposit must be at least the rent-exempt minimum (0.00089088 SOL at the time of writing).

Sources (Checked 19 Sep 2026)

ThetaNo

Good to know: The native send transaction (SendTx) has only a fee, inputs and outputs (address plus coins), covering both THETA and TFUEL. No official source addresses exchange deposits either way; 'no memo' follows from the transaction format.

Sources (Checked 19 Sep 2026)

TRONNo

No size limit stated in the docs. A memo makes the transaction larger (more bandwidth) and, under TIP-387, burns a memo fee set by a network parameter.

Good to know: raw_data.data is an optional memo (hex bytes); the create-transaction API calls it extra_data. The official API reference says production systems should not use the memo as the only business identifier. The official exchange integration guide derives deposit addresses (BIP-44) and checks that the recipient belongs to the platform.

Sources (Checked 19 Sep 2026)

BNB Beacon ChainMemo

What happens without it: The chain is shut down, so no new transfers are possible. While it ran: the tokens arrived at the shared address and the receiver could not match them automatically, unless the receiving address had turned on the BEP-12 memo check, in which case a transfer without a valid memo was rejected.

max 128 bytes

Good to know: BEP-12 describes exchanges using a single deposit address and asking clients to enter a memo (also called a tag). It let a receiving address require a non-empty, digits-only memo on incoming transfers. Addresses started with bnb1 (BEP2 tokens). One archived docs page's pseudocode also rejects memos longer than 100; BEP-12 and the node code do not contain that check (see report).

Shut down at block height 385,251,927 on December 3, 2024 (BNB Chain Fusion). Official Beacon Chain docs survive only in the archived branch of the docs repo.

Sources (Checked 19 Sep 2026)

Memos on HiddenSwap

When you swap to a coin whose address can need a memo, the swap form shows a memo field. Fill it in if the address you receive to belongs to an exchange or another service that gave you a memo.

When the coin you send needs a memo, your order page shows it next to the deposit address. Include it with your deposit, or the swap cannot be matched to your order.

Start a swap

Use the data

The rules are open data on GitHub, as JSON and CSV, with a small JavaScript library that tells whether a network needs a memo and checks a memo value. The data is under CC BY 4.0 and the code under MIT. Corrections are welcome with a link to the network's own documentation.

Questions

What is a destination tag?

A destination tag is the XRP Ledger's name for a memo: a number from 0 to 4,294,967,295 sent with a payment. Exchanges use it to tell which customer a deposit belongs to, because many customers share one XRP address. An X-address carries the tag inside the address.

Do I need a memo to send to my own wallet?

Usually not. A memo matters when the receiving address is shared by many people, as at an exchange or a swap service. If you send to an address only you control, leave the memo empty unless the wallet asks for one.

What happens if I send without the memo?

The coins still reach the service's address, but it cannot match them to you automatically. Some XRP accounts refuse payments without a tag, and then the payment fails and the coins stay with you. Otherwise you need to contact the service, which may be slow or may fail. The details above say what each network does.

Is the memo the same as a Monero payment ID?

It plays the same role, but Monero no longer uses a separate payment ID. Services give you an integrated address, which carries an 8-byte payment ID inside it, or a subaddress of your own. Either one is all you need.