Nagare

Vesting that doesn’t publish your cap table.

Open a vesting schedule on Starknet where the contract knows the sender and the recipient only as keys. It enforces the unlock, and nothing in the transaction says who is on either end of it.

Every other vesting contract names both parties in public.

Open a Tokei or Sablier stream on Voyager and you can read the cap table off it: which address funds which, on what schedule, for how much, and that record does not expire. Nagare moves the funding and the payouts through the STRK20 pool, so neither wallet ever appears next to the other.

Fund from a shielded balance

The pool pays Nagare on your behalf, so the transaction carries no address of yours. The recipient does not need a wallet on the day you set it up.

Withdraw what has vested

The amount accrues linearly from the day it is funded, and withdrawals open at the cliff. The recipient signs with their key and the amount lands in a private note.

Cancel and get the rest back

The unvested part returns to you privately. What already vested stays claimable by the recipient.

Hand the schedule over

Re-key a schedule to a new holder, or list it and sell it. The escrow settles in one transaction.

What the chain can see

Nagare hides the parties and publishes the terms. Here they are in full, so you can decide whether they fit before you fund anything.

Never published

The wallet address that funded a schedule
The wallet address that receives it
The wallet address that cancelled, transferred, listed, offered or accepted
Which wallet owns the note a payout lands in

Public on Voyager

The total, token, start, cliff and end of every schedule, and its id
The sender key and recipient key, and every re-key
Nagare's STRK balance, and what it owes across every schedule
The amount and time of every withdrawal, refund and sale
Every offer price, expiry and buyer key
Every signature and every calldata item, including note ids

Before you fund anything

Moving STRK into the pool is a public transaction that puts your address and the amount on chain.
Amounts and timing can be correlated: a distinctive amount withdrawn shortly after a distinctive deposit is a link.
A key used for two schedules links them, which is why every schedule gets a fresh sender key.
The pool charges 6 STRK for each private transaction, taken from your shielded balance.
Your keys come from your wallet, and one signature rebuilds them on any device. A key that arrives in a claim link is the exception: it lives in that browser alone until the recipient re-keys.
The contract has no owner and no upgrade path, and it has not been audited. Read it on Voyager.