Umbra Privacy LogoUmbra Privacy
Transaction Lifecycle

Confidential-Only Transfers

Execute direct encrypted transfers between Encrypted Token Accounts (ETAs) or to public ATAs without using the mixer pool for fast confidential payments.

Confidential-only transfers enable direct movement of funds between Encrypted Token Accounts (ETAs) without routing through the Unified Mixer Pool. These transfers hide transaction amounts while maintaining on-chain efficiency.


Overview

Confidential transfers operate entirely within the Confidential Domain-they never touch the mixer pool. This provides:

BenefitDescription
Amount PrivacyTransfer amounts are encrypted, invisible to observers
EfficiencyNo mixing delay required
Lower ComplexityNo ZK proofs for UTXO spending
Immediate SettlementFunds available instantly

Trade-offs

AspectConfidential TransferMixer Transfer
Amount Privacy✓ Hidden✓ Hidden
Sender/Recipient Privacy✗ Visible on-chain✓ Anonymous
SpeedImmediateMixing delay required
ComplexitySimpleRequires ZK proofs
Use CaseFast private paymentsBreaking transaction links

Transfer Types

Confidential transfers support multiple destination types:

ETA → ETA (Confidential to Confidential)

The most common confidential transfer-moving encrypted funds between two ETAs:

AspectDetails
Sender BalanceDecremented (encrypted arithmetic)
Recipient BalanceIncremented (encrypted arithmetic)
On-Chain VisibilityOnly that a transfer occurred between addresses
Amount VisibilityHidden from everyone except sender, recipient, and MPC

ETA → ATA (Confidential to Public)

Unshielding funds from an encrypted account to a public token account:

AspectDetails
Sender BalanceDecremented (encrypted)
Recipient BalanceIncremented (plaintext)
AmountBecomes visible on-chain at destination
Use CasePaying merchants, off-ramping, public transactions

How It Works

The MPC's Role

Confidential transfers are processed by the Arcium MPC network. The MPC performs encrypted arithmetic without ever seeing plaintext values:

  1. Receive encrypted inputs - Sender's balance, transfer amount
  2. Verify sufficiency - Check sender has enough funds (in encrypted domain)
  3. Update balances - Decrement sender, increment recipient
  4. Commit new ciphertexts - Write updated encrypted balances on-chain

Encryption for Recipient

When transferring to another user, the MPC must encrypt the recipient's new balance using their X25519 public key. This is why X25519 registration is required for receiving transfers.


Sending to Registered Users

When the recipient has registered their X25519 public key:

StepAction
1Sender specifies recipient's L1 address and amount
2Protocol looks up recipient's registered X25519 public key
3Sender encrypts transfer amount for MPC submission
4MPC updates both balances
5Recipient decrypts their new balance using their X25519 private key

Sending to Non-Registered Users

A powerful feature of Umbra is the ability to send confidential transfers to users who haven't yet registered their X25519 public key. The transfer still occurs, but with a caveat.

How It Works

ScenarioBehavior
Recipient not registeredTransfer held in pending state
Recipient registers laterCan claim all pending transfers in a single transaction
ConfidentialityMaintained throughout-amounts never exposed

Claiming Pending Transfers

When a non-registered user later registers their X25519 public key, they can claim all pending transfers in one transaction:

  1. Register X25519 public key
  2. Call claim instruction
  3. All pending transfers are processed
  4. ETA balance updated with sum of all pending

This is efficient for recipients who receive multiple transfers before registration.


Transaction Flow

Instruction: ConfidentialTransfer

ParameterDescription
senderSender's L1 address (signer)
recipientRecipient's L1 address
amountEncrypted transfer amount
mintToken mint address

Step-by-Step Flow

  1. Authorization - Sender signs with their L1 key
  2. Encryption - Amount encrypted using shared secret with MPC
  3. Submission - Transaction submitted to Umbra program
  4. MPC Processing - Arcium network processes the encrypted computation
  5. Balance Update - Both sender and recipient balances updated on-chain
  6. Decryption - Each party decrypts their new balance with their X25519 key

Privacy Analysis

What's Hidden

InformationVisibility
Transfer AmountHidden (encrypted)
Sender's BalanceHidden (encrypted)
Recipient's BalanceHidden (encrypted)

What's Visible

InformationVisibility
Sender AddressVisible on-chain
Recipient AddressVisible on-chain
That a transfer occurredVisible
Token MintVisible
TimestampVisible

Privacy Comparison

Privacy GoalConfidential TransferMixer
Hide amounts
Hide sender
Hide recipient
Break transaction links

Recommendation: Use confidential transfers for everyday payments where speed matters and parties are known. Use the mixer when you need to break transaction links or hide participation.


Use Cases

Payroll

  • Salary amounts hidden from public
  • Employees visible (acceptable for payroll)
  • Fast, immediate settlement

B2B Payments

BenefitDescription
Competitive PrivacyCompetitors can't see payment amounts
Relationship VisibleBusiness relationship is public (often acceptable)
Audit TrailClear on-chain record of payments

Personal Transfers

  • Send funds to friends/family with amount privacy
  • No need for full anonymity when parties know each other
  • Faster than mixer for casual use

Requirements

Sender Requirements

RequirementDescription
X25519 RegisteredMust have registered X25519 public key
ETA InitializedMust have an existing ETA for the token
Sufficient BalanceEncrypted balance must cover transfer
L1 KeyMust sign the transaction

Recipient Requirements

RequirementFor Immediate ReceiptFor Pending
X25519 RegisteredRequiredNot required
ETA InitializedAuto-created if neededAuto-created on claim

Summary

AspectDetails
Transfer TypesETA → ETA, ETA → ATA
Amount PrivacyAlways hidden
Address PrivacyVisible on-chain
SpeedImmediate (no mixing delay)
ComplexityLower than mixer
Non-Registered RecipientsSupported via pending transfers
Claim MechanismSingle transaction claims all pending
Best ForFast private payments where parties are known