Hushfill
[ dark pool × tokenized stocks ]

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.

Stocks on the desk
20
Pool hit · $50K NVDAx at once
−0.52%
Fee · only on what fills
0.10%
Fills past your limit
never
hushfill.live/desk/NVDAxLIVE
StocksPool hit · $10K
nvda
NVIDIA
NVDAx · $187.51
−0.14%
Tesla
TSLAx · $357.46
−0.22%
SPDR S&P 500 ETF Trust
SPYx · $736.19
−0.11%
Apple
AAPLx · $342.16
−0.19%
Coinbase
COINx · $133.50
…
Order · NVIDIAexample

Hushfill buys $25,000 of NVDAx without moving the pool.

Limit$189.39 · +1.0%
Crosses with sellers firstoff the pool
Then slices of $2,500every 60 s
Expires in 2 hcancel anytime
✓ Order placed · 1 signature
At once, on the pool
−0.35%
One $2,500 slice
−0.10%
You keep
≈ $63
Events · on chainexample
14:02:00order.opened25,000 USDC
14:02:00cross6,240 USDC · midpoint
14:03:00slice.filled2,500 → 13.33 NVDAx
14:04:00slice.filled2,500 → 13.33 NVDAx
14:05:00slice.filled2,500 → 13.34 NVDAx
14:11:00order.deliveredto your wallet
{
  "event": "slice.filled",
  "in": "2,500.00 USDC",
  "limit": "held",
  "keeper_kept": "0"
}
[ 01 · the order moment ]

Your worst price,
in writing.

9:415G
hushfill.live/desk
Order placed
$25,000 NVDAx
Crossed$6,240off the pool
Sliced$7,5003 of 8 slices
Waiting$11,260next in 41 s
Cancel anytime · funds come back in one tap
[ 03 · the program ]

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.

openYour funds move into your order’s own vault
crossA buy and a sell meet at the midpoint of both limits
sliceA little fills through Jupiter, checked against your limit
closeWhat is left and what you bought go back to you
See it on Solscan Hush6Peo…
lib.rs
// 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
}
Built and tested · 15 tests pass
programHush6PeoMNMuV1R9nwCAJ4FJpkEyUNXCtUNEKWEy3zC7
frameworkPinocchio, no allocator
fills viaJupiter, all DEXs on Solana
[ 04 · order lifecycle ]

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.

NV
Buy NVDAx · $25,000
order 7Hq2…c1 · limit $190.12
open
opencrossslicedelivercancel
Spent
$0
Bought
0.00 NVDAx
Average
—
Left
$25,000
Filled0%
14:02:00order.opened · 25,000 USDC
01 · open

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.

02 · cross

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.

03 · slice

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.

04 · deliver

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.

05 · cancel

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.

[ 05 · security ]

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.

RuleChecked inIf broken
Buy fills at or under your limitslice_end · crosstransaction fails
Sell fills at or over your limitslice_end · crosstransaction fails
The keeper keeps nothingslice_endtransaction fails
Slices never bigger than you setslice_beginrefused
No fills after your expiryslice_begin · crossrefused
Funds only ever go back to youcloseby construction
hushfill.live/desk · your orders
Orders holding your funds
NVBuy NVDAx$11,260 left · limit $190.12Cancel
TSSell TSLAx42.0 left · limit $351.00filling
SPBuy SPYx$3,900 left · limit $741.20filling
cancel → $11,260.00 USDC back
cancel → 72.91 NVDAx delivered
cancel → 0.0091 SOL rent refunded
01 · custody
Your order holds your funds

Each order has its own vault. Hushfill and the keeper never hold a balance of yours between fills.

02 · limits
Checked on every fill

Crosses and slices are both measured against your limit by the program, to the last token atom.

03 · atomic
All or nothing

A slice is one transaction: hand out, swap, check. If the check fails, it never happened.

04 · exit
Cancel always works

Even if the desk is paused, your cancel goes through and returns everything.

[ 06 · the difference ]

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:

NVIDIA
NVDAx · stocks

A $50,000 buy of NVDAx at once loses 0.52% to the pool. In $2,500 slices, each one loses about 0.10%.

Pool hit, at once → per slice
−0.52% → −0.10%
Tesla
TSLAx · stocks

A $50,000 buy of TSLAx at once loses 0.70% to the pool. In $2,500 slices, each one loses about 0.19%.

Pool hit, at once → per slice
−0.70% → −0.19%
SPDR S&P 500 ETF Trust
SPYx · etfs

A $50,000 buy of SPYx at once loses 0.28% to the pool. In $2,500 slices, each one loses about 0.07%.

Pool hit, at once → per slice
−0.28% → −0.07%
Coinbase
COINx · stocks

A $50,000 buy of COINx at once loses … to the pool. In $2,500 slices, each one loses about ….

Pool hit, at once → per slice
… → …

Per-slice figures assume arbitrage refills the pool between slices, which is how these pools usually behave. Your limit holds either way.

[ 07 · fees ]

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.

Cross
0.10%
each side, on the USDC traded
✓Off the pool, no price impact
✓At the midpoint of both limits
✓Paid only when it fills
Slicemost orders
0.10%
plus the pool’s own fee
✓Best route across Solana DEXs
✓Never past your limit
✓One slice per minute
Cancel
Free
anytime, rent refunded
✓Unfilled USDC back at once
✓Every token bought, delivered
✓Works even when paused
Estimate
$25,000
order size
$25.00
Hushfill fee if it all fills
[ 08 · changelog ]

Shipped, dated,
on chain.

v1.0.0Nov 8, 2026ReleaseProgram built for Solana mainnetOpen, cross, slice and close, with limits checked on every fill. Pinocchio, upgradeable until an audit.
v1.0.0Nov 8, 2026DeskTwenty stock tokens on the deskNVDAx, TSLAx, SPYx, QQQx and sixteen more, priced live from Jupiter with pool depth measured every few minutes.
v1.0.0Nov 8, 2026KeeperSlices every minute through JupiterOne slice per order per minute, sent only when the quote clears the order’s limit; the program checks it again.
v1.0.0Nov 8, 2026Tests15 program tests, including the keeper trying to cheatDiverted outputs, a held-back input atom, a slice_end for another order: all refused.
[ 09 · faq ]

Questions,
answered.

Still unsure? Everything here is in the docs, with every rule of the program spelled out.

Read the docs /docs
What 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.

[ 10 · get started ]

Your first quiet fill,
before lunch.

hushfill.live/desk
$ 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