TransactionsCore release 0.1.0

Versioned transactions

How SDK private operations use Solana v0 transactions and validated address lookup tables.

Private proof operations have many accounts: pool state, mints, LP vaults, custody, tree state, page archive and spent-nullifier PDA. The SDK constructs these as Solana v0 transactions and uses address lookup tables to reduce serialized account-key bytes.

SDK requirements

  • Configure one or more LUT addresses in Lethenymous.
  • The wallet adapter must implement signVersionedTransaction.
  • The SDK checks the configured table at finalized commitment, validates table activation and optional expected authority/address set, then compiles a v0 message.
  • Before proving, the private path preflights the complete transaction size. Without a validated LUT or v0 signing support, it throws LookupTableRequiredError.

The public convenience flow signs with the configured wallet. For the hosted relay flow, the client uses the real privateSwap or unshield instruction builder with the relayer public key as payer and compiles the unsigned v0 message with that same fee payer. The relayer is the sole required signer in the accepted Devnet policy.

LUT is a compression mechanism

The LUT does not make accounts private and does not authorize arbitrary addresses. The relayer resolves referenced tables and checks the resolved operation accounts against frozen program and SDK account policy. Account order, signer flags, writable flags and program ID are still validated.

See transaction size, relayer policy and SDK getting started.

PreviousStatus, replay & limitsNext Transaction size & measurements
Source baseline: frozen Core v0.1.0 / SDK v0.1.1.