MemoWithMuxedAccountException

Exception thrown when a challenge has both a memo and a muxed account (M... address).

SEP-10 Security Requirement: A transaction CANNOT have both a MEMO_ID and a muxed account (M... address), as they serve the same purpose.

Both mechanisms identify sub-accounts:

  • MEMO_ID: Traditional approach using G... address + memo

  • Muxed Account (M...): Modern approach encoding the ID in the address itself

Having both creates ambiguity about which identifier should be used, potentially allowing an attacker to exploit the confusion for account substitution attacks.

Correct usage patterns:

  • Use G... address + MEMO_ID for sub-accounts (traditional)

  • Use M... address with no memo (modern, recommended)

  • Use G... address with no memo (single account)

Parameters

muxedAccount

The muxed account (M... address) found

memoValue

The memo value that was also present

Constructors

Link copied to clipboard
constructor(muxedAccount: String, memoValue: Long)

Properties

Link copied to clipboard
expect open val cause: Throwable?
Link copied to clipboard
expect open val message: String?