Big order.
Quiet fill.
Hushfill buys and sells tokenized stocks on Solana without moving the pool. Orders that meet cross with each other off the pool, the rest fills in small slices, and the program never fills you past your limit.
Hushfill buys $25,000 of NVDAx without moving the pool.
{
"event": "slice.filled",
"in": "2,500.00 USDC",
"limit": "held",
"keeper_kept": "0"
}Your worst price,
in writing.
20 stocks,
priced live.
Every stock token on the desk is priced from Jupiter's routes and measured for depth: what a $10,000 buy would lose to the pool if it went in one piece. You see it before you place anything.
Depth measured from live Jupiter quotes, latest 32s ago. Prices as your wallet shows them.
One program.
Four rules.
Hushfill is a Solana program, not a promise. The keeper that runs the fills cannot move a token the program does not allow, and cannot keep one.
// slice_end: the swap is done, check it
let got = out_vault.balance - out_before;
if got < min_out { // min_out comes from YOUR limit
return Err(LIMIT_BREACHED); // the whole transaction fails
}
if keeper_in.balance > keeper_before {
return Err(KEEPER_KEPT_INPUT); // the keeper keeps nothing
}Every order has a lifetime.
We keep it honest.
Each order is born with a limit and an expiry. It crosses when it can, slices when it must, and always ends the same way: everything back in your wallet.
Placed, and you know it.
Your USDC moves from your wallet into a vault that belongs to your order. Not to Hushfill, not to the keeper: to the order, and the order answers to you.
Matched before the pool sees it.
If someone is selling NVDAx below your limit, the two orders trade with each other at the midpoint of both limits. No pool moves, so there is nothing to front-run.
The rest, a little at a time.
Every minute the keeper fills one slice through Jupiter, straight into your order’s vault. If the slice would land past your limit, the program refuses it and the order waits.
Delivered to your wallet.
Once the order is filled, or its time runs out, everything comes back to you in one transaction: what you bought, what was left, and the rent of every account.
Stop means stop.
Change your mind at any point. Cancel returns the unfilled USDC and every NVDAx bought so far, at once. The keeper cannot block it.
Your limit is a rule,
not a hope.
Every guarantee below is a check in the program. If one would break, the transaction fails as a whole and nothing moves.
Each order has its own vault. Hushfill and the keeper never hold a balance of yours between fills.
Crosses and slices are both measured against your limit by the program, to the last token atom.
A slice is one transaction: hand out, swap, check. If the check fails, it never happened.
Even if the desk is paused, your cancel goes through and returns everything.
What a quiet fill
saves you.
A $50,000 buy sent in one piece eats through the pool. The same order in $2,500 slices meets a pool that has time to refill between them. Live Jupiter quotes, right now:
A $50,000 buy of NVDAx at once loses 0.50% to the pool. In $2,500 slices, each one loses about 0.08%.
A $50,000 buy of TSLAx at once loses 0.68% to the pool. In $2,500 slices, each one loses about 0.17%.
A $50,000 buy of SPYx at once loses 0.29% to the pool. In $2,500 slices, each one loses about 0.08%.
A $50,000 buy of COINx at once loses … to the pool. In $2,500 slices, each one loses about ….
Per-slice figures assume arbitrage refills the pool between slices, which is how these pools usually behave. Your limit holds either way.
One fee.
Only on what fills.
0.10% of the USDC side of every fill, crossed or sliced. Nothing to place an order, nothing to cancel, and the rent of your order accounts comes back when it closes.
Shipped, dated,
on chain.
Questions,
answered.
Still unsure? Everything here is in the docs, with every rule of the program spelled out.
Read the docs /docsWhat is a dark pool here?+
A place where big orders fill without showing up on the pool in one piece. On Hushfill, a buy and a sell whose limits overlap trade with each other directly; whatever does not meet a counterpart fills in small slices through Jupiter. Either way, the pool never sees a block-sized order to react to.
Can my order fill at a bad price?+
No. Your limit is stored in your order and the program checks every fill against it. A buy never fills above it and a sell never below it; if the market is past your limit, the order simply waits until it comes back or your order expires.
Who holds my funds while the order is open?+
Your order does. Each order is an account of the Hushfill program with its own token vaults, and only two things can take funds out of them: a fill that meets your limit, or a close that sends everything back to you.
What does the keeper do, and what can it not do?+
The keeper is the bot that runs fills every minute. It can trigger a cross or a slice, but the program decides whether it counts. It cannot fill past your limit, cannot keep a single atom of what it swaps, and cannot stop you from cancelling.
What happens if nothing fills?+
Nothing is lost. When your order expires, the keeper closes it and returns your USDC or your tokens, plus the rent of the order accounts. You can also cancel at any moment yourself.
What are these stock tokens?+
xStocks: tokens issued by Backed on Solana that track a share or an ETF, one to one. Their issuer sets their rules, including where they are available. Hushfill does not issue them, hold the shares or guarantee their backing.
What does it cost?+
0.10% of the USDC side of each fill, plus Solana network fees and, for slices, the pool fee of the route. Placing and cancelling orders is free, and the account rent you put down comes back when the order closes.
Is there a token?+
Yes, HUSHFILL. The contract address appears on this page once it is live. Fees go to the Hushfill treasury.
$ buy NVDAx 25,000 USDC --limit +1% ✓ order opened 7Hq2…c1 ✓ crossed off the pool 6,240 USDC ✓ slicing $2,500 / min → limit held on every fill