Monero Integrated Addresses (2026)

Embedded payment IDs for merchant identification
TL;DR: Integrated addresses embed a payment ID inside the address so merchants/exchanges can identify your deposit. They're legacy — subaddresses are better for almost all use cases. If someone gives you an integrated address (106 characters, starts with 4), it works fine. For your own receiving, use subaddresses (starts with 8).

Three Address Types

TypePrefixLengthPrivacyStatus
Standard495 charsBaseActive
Integrated4106 charsBase (linkable with view key)Legacy
Subaddress895 charsEnhanced (unlinkable)Recommended

How Integrated Addresses Work

Structure: Standard address (95 chars) + encrypted payment ID (8 bytes) = integrated address (106 chars).

Purpose: When you send to an integrated address, the payment ID is automatically included in the transaction (encrypted). The recipient decrypts it with their view key and matches the payment to your account/order.

Example use: An exchange gives you an integrated address for deposit. You send XMR. The exchange reads the embedded payment ID and credits your account automatically.

Why Subaddresses Won

FeatureIntegratedSubaddress
Payment identificationYes (via payment ID)Yes (unique per address)
Unlinkable to main addressNo (derivable with view key)Yes (cryptographically separate)
Unlimited generationYesYes
User experienceConfusing (106 chars)Simple (95 chars)
Wallet supportUniversalUniversal
Future-proofDeprecated directionActive development

Subaddresses provide the same merchant identification function with better privacy. Each subaddress is cryptographically independent — even with the private view key, linking subaddresses to each other requires the private spend key.

Payment ID History

TypeStatusNotes
Long payment ID (32 bytes, unencrypted)Removed (v0.15, 2019)Privacy hazard: visible on blockchain, linked transactions
Short payment ID (8 bytes, encrypted)Deprecated but supportedOnly via integrated addresses; encrypted in transaction
No payment ID (subaddress)RecommendedSubaddress itself serves as unique identifier

CLI Commands

CommandEffect
integrated_addressGenerate with random payment ID
integrated_address <payment_id>Generate with specific 16-hex payment ID
addressShow main + all subaddresses
address new [label]Create new subaddress (preferred)

When to Use Each

Integrated address: Only when a service requires it (some older exchanges). If they give you a 106-character address starting with 4, it's integrated — just send to it normally.

Subaddress: Everything else. Personal receiving, merchant payments, invoicing, privacy. Generate a new one for each payer.

Learn more: All Address Types · Subaddresses Deep-Dive