Skip to content
Sable
Confidential savings

Your savings.
Your choice.
Nobody else’s business.

Deposit into a shared pool where the yield funds verifiable prize draws — then privately choose whether yours joins them or compounds to you. Your principal is never at stake, and you can withdraw it at any time.

Built with Zama FHEEthereum Sepolia
Save privately

Your savings

••••••

Balance visible only to you

LuckySteady

Your choice stays private

Public draw ledgerVerifiable
Participant
Balance
Mode
Ticket range

Round mechanics are public. Positions are not.

Two ways to save

One deposit.
Two ways to earn.

Lucky

Pool the yield.

The default. Depositing puts your yield into confidential prize draws, while your principal stays exactly where it is.

Prize pool

Steady

Keep the yield.

Your attributable yield compounds into your private savings position. Nothing leaves, nothing is pooled.

New savers start in Lucky, so depositing enters the draw. You can switch to Steady privately at any time, and neither choice is visible on-chain.

The privacy difference

Even your choice
is private.

What a chain observer sees

Transaction
0x9f2c…41ab
Round
#12
Contract
Sable Vault
Execution
Verified on-chain

Everything needed to verify that the protocol ran correctly.

What it cannot

Balance
$ 24,180.00
Mode
Lucky
Draw weight
1,046,400
Odds
1 in 62
Prize result
$ 412.90

Encrypted end to end. Not even Sable’s operators can read these.

Sable doesn’t just encrypt what you save. It encrypts how you choose to save.

Time weighting

Saving longer
should matter.

Draw eligibility is weighted by how much you saved and how long you actually held it — so depositing moments before a draw earns almost nothing.

roundWeight += select(isLucky, balance × elapsedMinutes, 0)

Weight accrues per whole minute, and only across intervals during which the account was in Lucky mode. Because the mode is an encrypted bit, that gate runs as a homomorphic select — both branches execute, so the choice is never observable.

Switching mode checkpoints first, so Steady time is never back-dated into eligibility and Lucky time already earned is never clawed back.

Earlier depositDraw

More eligible time

Late depositDraw

Less eligible time

Same amount saved. Different weight at the draw.

Prize structure

Fourteen chances,
every round.

Jackpot

1 winner

Appears when a funded round is finalized.

Mid

3 winners

Appears when a funded round is finalized.

Small

10 winners

Appears when a funded round is finalized.

Prize values are derived from the yield Lucky savers contribute during a round. They appear here — from real contract state — as soon as a funded round is finalized.

Ticket space0 → 216
Allocated to saversUnassigned

Rollover

When nothing
matches, it grows.

An unmatched jackpot draw carries forward instead of exposing private ticket boundaries. Nobody loses anything — the prize simply gets larger.

Savers occupy private ranges inside a fixed ticket space. Some of that space is always unassigned, and a random point landing there matches no one — which is exactly what keeps the boundaries secret.

Verifiability

Private does
not mean opaque.

Draw execution, round configuration and prize accounting are public and checkable by anyone. Individual financial positions remain confidential.

Open the draw ledger

No completed draws

Verified rounds will appear here after the first on-chain draw.

Public

Round timing, tier configuration, prize totals, draw transactions, rollover outcome.

Private

Balances, modes, draw weights, ticket ranges, individual results. Never published, at any stage.

Principal safety

Savings first.

Prize participation changes where your yield goes. It does not give away your deposited principal.

Withdraw whenever you like — there is no lock-up, and withdrawals stay available even if the protocol is paused. Your principal is never awarded to another saver; prizes are funded from yield alone.

PrincipalAlways yours
Yieldroutes to your choice

Sable runs on a test network with a testnet asset. As with any smart contract, the code itself carries risk — but no rule in it can route your principal to somebody else’s prize.

The technology

How this is
even possible.

Sable is built on fully homomorphic encryption — arithmetic that works directly on encrypted numbers. It is what lets a smart contract compute your yield and your draw weight without anyone, including us, seeing them.

  1. 01

    Encrypt

    Your browser encrypts the amount and your mode before either leaves your device, and attaches a zero-knowledge proof that the ciphertext is well-formed.

    Relayer SDK
  2. 02

    Compute

    Sable's contracts add, compare and select over that ciphertext without ever decrypting it. Your balance is arithmetic the protocol can do but cannot read.

    FHEVMZama Protocol
  3. 03

    Verify

    Every operation executes on-chain, in public transactions anyone can inspect. The mechanics are auditable even though the values are not legible.

    Ethereum Sepolia
  4. 04

    Reveal

    Only you can decrypt your own results, authorised by a signature from your wallet and enforced by the protocol's access control list.

    Access Control List

Read the technical architecture — contracts, the FHE data model, the draw algorithm and the exact privacy boundaries.

Keep the balance.
Keep the choice.
Keep it private.