Skip to content
ENBANKDesk

Enbank docs

Create a private vault

Open a vault on an address and keep the amount sealed until you reveal it on this device.

On this page

Open a vault

A private vault is the sealed balance set for one address. On the desk it is the Vault view: three asset rows, an illustrative total, and the positions sitting on that account. Opening it does not create an onchain account. Adopting an address, or keeping the sample address, is enough for the preview to attach the seed balances.

The production equivalent is a shield instruction whose private inputs are the asset amounts. The public result is that a vault exists for the address. The amounts stay inside the MXE. That circuit is specified in Architecture and is not deployed from this site.

Balance record

Each balance is a pair. The desk requires exactly one row for each asset, in any order.

type Balance = {
  asset: "USDC" | "SOL" | "eUSD";
  amount: number; // >= 0
};

parseDesk rejects a ledger that drops an asset, duplicates one, or stores a negative amount. There is no fourth asset and no empty vault in the preview schema. A reset restores the seed rather than zeroing the rows.

Sealed amount

desk.revealed is a boolean on the ledger, default false. While it is false, the vault total renders as ••••••, per-asset amounts stay hidden, and activity amounts render as ••••. The numbers are still in memory and in localStorage. Reveal is a display switch, not encryption.

That distinction matters:

  • Another person looking at the screen sees masks.
  • The same browser profile can read the JSON and see every amount.
  • A production MXE would encrypt the amounts before they leave the client. This preview never performs that encryption.

Sends still enforce the hidden balance. If the amount is above the sealed balance and reveal is off, the error is "That amount is above the sealed balance." With reveal on, the error includes the formatted available amount.

Illustrative value

The headline dollar figure is illustrativeUsd. USDC and eUSD add at face value. SOL multiplies by the constant SOL_USD = 148.2. The function does not fetch a price, and it does not mark the result as spendable.

128440.22 USDC
+ 86.4 SOL × 148.2
+ 42000 eUSD
= 183244.90 illustrative dollars

Sample balances

AssetSeed amountLabel
USDC128,440.22Cash
SOL86.4Reserve
eUSD42,000Encrypted dollar

Production shield

A production shield would treat the seed as client-side plaintext only until encryption:

  1. Read the amounts the account wants inside the vault.
  2. Encrypt them to the MXE public key.
  3. Queue a shield computation. The callback records that the address holds a vault.
  4. Leave amount bytes out of the callback accounts.

Until that program exists, the vault page is the local stand-in: same address, same three assets, same reveal switch. The privacy model separates what the screen hides from what the storage file contains.