Gloam

Documentation

Sealed-size private trade

Goal: trade without printing full size to the public book. Not shipped. The vault trade adapter is a stepping stone.

What lives today

Vault trade adapter

  1. 1

    Cash out

    Unshield a vault note to your open wallet (public edge).

  2. 2

    Swap

    Public DEX swap — size and pair are visible on the explorer.

  3. 3

    Re-shield

    Proceeds go back into the vault. Hold is private again.

Useful: you do not leave inventory sitting public forever. Not sealed trade: the swap edge still leaks size.

What “sealed” means

  • Public observers cannot read your trade size as free signal
  • Settlement still ends on-chain (we do not claim invisibility)
  • No theatrical “private success” without a real mechanism

Design options (next engineering)

  1. Intent + batch settlement — users post sealed intents; a matcher settles net flows so individual sizes blur in a batch.
  2. Vault-native pool — AMM or RFQ that spends notes and mints notes without an intermediate public wallet hop.
  3. Hybrid — adapter for thin markets; sealed path when liquidity and circuits support it.

Each option needs circuits (or TEE/intent infra), liquidity design, and the same production-key gate as the rest of the private path. See Production gate.

What we will not do

  • Hide a public swap behind a “private” button
  • Ship sealed UI before proofs/settlement exist
  • Promise dark-pool guarantees on thin testnet liquidity

Repo pointers

  • Engineering design: contracts/SEALED_TRADE.md
  • Type placeholders only: app/src/lib/sealedTrade.ts (sealedTradeReady() === false)
  • Production keys gate: /docs/production

Try the adapter: Trade → From vault. Hold/move: Move.