When transferring funds from BTC, DOGE, LTC, BCH, or similar accounts, you might notice that the initiator address shown in the transaction details is different from your account address. Additionally, there may be extra receiving addresses apart from the recipient's address.
For instance, Alice’s account address is bc1p9wzw…hej46, and she transfers 0.00008 BTC to Bob, whose address is bc1pum2…egs3p. However, when Alice views the transaction details, she notices that the initiator address is bc1pkyccky…st20w. Furthermore, in the Token Transfers section, alongside Bob’s address (bc1pum2…egs3p), there is another receiving address, bc1pfa…z0se0 (which is technically referred to as the “change address.”)
Two common questions may arise:
- Why does the account address not match the initiator address in the transaction details?
- Why is there a change address in addition to the recipient’s address?
Let’s first address the second question: What is a change address?
To understand this, let’s revisit the concept of change in a cash transaction. For example, when Alice buys an item costing $80 and pays Bob, the cashier, with a $100 bill, Bob gives Alice $20 in change, which she puts back in her wallet. Similarly, in the crypto world, a change mechanism exists. If Alice’s account holds 10 BTC and she transfers 8 BTC to Bob (the recipient’s address), the remaining 2 BTC will automatically be sent to a change address created by Alice’s wallet, rather than returning to her original account address.
In the change mechanism for networks like BTC, Doge, LTC, BCH, each transaction consists of inputs (source of funds) and outputs (destination of funds). When the input exceeds the output, the remaining amount (change) is sent to a change address.
This design enhances security and privacy by avoiding the storage of all tokens in a single address. If only one address were used, once someone obtained your address, they could trace all your transaction records. The change address mechanism disperses your tokens across multiple addresses, making it more difficult for others to track your funds.
Now, let’s address the first question: Why does the account address not match the initiator address in the transaction details?
Using a Bitcoin account as an example, the homepage of your account displays your Bitcoin main address, also known as the account address. However, when you transfer funds, the source of the funds may not always be this account address. The wallet selects the necessary inputs for the transaction from tokens held in both your account address and any change addresses created from previous transactions.
If the wallet uses an old change address as the input, the initiator address for this transaction will be the change address rather than the account address. Additionally, if the total input exceeds the transfer amount and miner fees, the remaining tokens will be sent to a newly generated change address.
When viewing your account balance on the homepage, it reflects the total across all addresses, including your main address, sub-addresses, and tokens held in change addresses. All these addresses are managed by a single set of mnemonic words in your wallet. By backing up this mnemonic, you retain control over all tokens in your wallet, regardless of the address they are stored in.
Note: If your account is imported using a private key, the private key cannot generate a change address. In this case, any change will be sent back to the original address.
Learn more: