Umbra Privacy LogoUmbra Privacy
Transaction Lifecycle

Creating UTXOs from Encrypted Balance

Deposit funds from an Encrypted Token Account (ETA) into Umbra's Unified Mixer Pool to gain transaction anonymity while keeping amounts confidential.

Depositing from an Encrypted Token Account (ETA) into the Unified Mixer Pool provides the highest level of privacy for entering the shielded pool. Unlike public deposits, the deposit amount remains hidden throughout the entire process.


Overview

When you deposit from an ETA, your funds enter the mixer pool as a UTXO while keeping the amount confidential. External observers can see that a deposit occurred, but they cannot determine how much was deposited.

Privacy Characteristics

AspectVisibility
Deposit AmountHidden (encrypted)
Depositor AddressVisible (your L1 address)
UTXO After DepositAnonymous (indistinguishable in pool)
WithdrawalUnlinkable to this deposit

Comparison to Public Deposit

AspectATA DepositETA Deposit
Deposit AmountVisibleHidden
DepositorVisibleVisible
UTXO PrivacyAnonymousAnonymous
Overall PrivacyGoodBetter

How It Works

Depositing from an ETA involves the Arcium MPC network to handle encrypted arithmetic:

MPC's Role

The MPC performs several critical operations:

  1. Balance Verification - Ensures your encrypted ETA balance covers the deposit
  2. Balance Update - Decrements your ETA balance (encrypted arithmetic)
  3. UTXO Creation - Helps construct the UTXO with the encrypted amount
  4. Commitment Computation - Computes the UTXO commitment for the Merkle tree

All of this happens without ever exposing the plaintext amount.


UTXO Structure

Same as public deposits, but the amount field handling differs:

FieldDescriptionVisibility
AmountThe deposit valueEncrypted (only owner knows)
Random SecretEntropy for unique commitmentPrivate
Unlocking AddressUser Commitment of who can spendHidden in commitment
Destination AddressL1 address for burn outputHidden in commitment
Nullifier DataFor deriving nullifier on spendPrivate

Setting the Unlocking Address

Just like public deposits, you have two strategies for the unlocking address:

Strategy 1: Registered Recipient (Maximum Anonymity)

AspectDetails
PrivacyMaximum-amount hidden, recipient in full anonymity set
Unlocking AddressRecipient's registered User Commitment
Who BurnsRecipient

Strategy 2: Non-Registered Recipient (Ephemeral Keys)

AspectDetails
PrivacyAmount hidden, but sender knows link
Unlocking AddressEphemeral commitment
Who BurnsSender (on recipient's behalf)

For detailed comparison, see Unlocking Address Strategies.


Deposit Flow

Step 1: Prepare Deposit Parameters

Step 2: Submit to MPC

The transaction is routed through the Arcium MPC network:

Step 3: MPC Processing

The MPC performs:

  1. Decrypt your encrypted balance (MPC can do this collectively)
  2. Verify balance ≥ deposit amount
  3. Compute new balance = old balance - deposit
  4. Re-encrypt new balance for your X25519 key
  5. Construct UTXO commitment
  6. Append commitment to Merkle tree

Step 4: On-Chain Updates

Step 5: Wait for Mixing Delay

Same as public deposits-the mixing delay must pass before the UTXO can be burned.


Privacy Advantages

Why ETA Deposits Are Better

AdvantageExplanation
No Amount CorrelationObservers can't use deposit amounts to narrow candidates
No Pattern AnalysisCan't identify "round number" deposits
Uniform DepositsAll ETA deposits look identical (just "a deposit happened")
Preserved ConfidentialityAmount stays hidden from source to destination

Privacy Flow Comparison

Public Deposit (ATA): The deposit amount is visible on-chain, creating a data point that could potentially be correlated with later burns.

Confidential Deposit (ETA): The deposit amount is hidden throughout the entire flow, leaving no public amount data to correlate with later burns.


Technical Details

Instruction: DepositFromETA

ParameterDescription
depositorSender's L1 address (signer)
encrypted_amountDeposit amount encrypted for MPC
utxo_paramsUnlocking/destination addresses, random secret
merkle_treeTarget Merkle tree account

On-Chain Effects

ChangeDescription
ETA BalanceDecremented (encrypted arithmetic)
ETA NonceUpdated for re-encryption
Merkle TreeNew leaf appended
Merkle RootUpdated

MPC Verification

The MPC verifies several conditions:

CheckPurpose
Balance SufficiencySender has enough funds
Valid AmountAmount is positive and valid
Correct EncryptionParameters encrypted correctly

Maximum Privacy: ETA → Mixer → ETA

For the ultimate privacy configuration, combine ETA deposit with ETA withdrawal:

StagePrivacy
DepositAmount hidden (ETA source)
In PoolIdentity hidden (mixer anonymity)
WithdrawalAmount hidden (ETA destination)

This provides:

  • Full amount confidentiality - Never exposed
  • Full anonymity - Unlinkable transactions
  • End-to-end privacy - No public exposure at any point

Requirements

Sender Requirements

RequirementDescription
X25519 RegisteredMust have registered for ETA access
User Commitment RegisteredMust be registered for mixer access
ETA with BalanceMust have existing ETA with sufficient encrypted balance
L1 KeyMust sign the transaction

For Recipient (if sending to another)

RequirementStrategy
Registered CommitmentUse their commitment for max anonymity
Not RegisteredUse ephemeral keys, sender burns

Error Conditions

ErrorCauseResolution
Insufficient BalanceEncrypted balance < depositVerify balance first
MPC RejectionInvalid encrypted parametersCheck encryption
Tree FullMerkle tree at capacityUse next tree
Invalid CommitmentMalformed unlocking addressVerify computation

Summary

AspectDetails
SourceEncrypted Token Account (ETA)
DestinationUnified Mixer Pool (UTXO)
Deposit VisibilityAmount hidden, depositor visible
UTXO PrivacyAnonymous after mixing delay
MPC RequiredYes-for encrypted balance update
Privacy LevelHigher than public deposit
Best ForMaximum privacy-no public amount exposure