We market made on BULK's mainnet on day one. Here is every number.
BULK opened its perpetuals mainnet on 5 September 2026. We had a bot quoting there within the day, and two full sessions the following night. This page is what we measured rather than what the documentation says, including the findings that argue against trading there right now.
- Type
- An exchange for perpetual futures: bets on price with no expiry date
- Markets
- 20, including BTC, ETH and SOL
- Runs on
- Solana; you deposit USDC
- Opened
- 5 September 2026
- Maker fee
- 0: it costs nothing to quote there
What BULK is
BULK is a perpetual futures venue that matches orders off-chain and settles on Solana. Collateral is USDC only. When we measured it, the mainnet carried 20 markets, all in TRADING status, with post-only (ALO) orders available on every one of them.
The specifications matter more than usual here, because they decide whether a small operator can take part at all. BTC-USD is the only market with a $1 minimum notional. The other nineteen sit between $25 and $50. Tick size on BTC-USD is 0.001 and maximum leverage is 40×.
That single fact shapes everything below. The one market cheap enough to test on is not the one worth earning on, and the markets worth earning on demand a position size that makes every experiment cost real money.
- Off-chain matching, Solana settlement, USDC collateral only.
- 20 perpetual markets, all trading, post-only available everywhere.
- BTC-USD: $1 minimum notional. Every other market: $25–50.
What we did, and what it returned
Our first complete round trip on the mainnet happened on 5 September, the day it opened. One maker fill in, a reduce-only maker fill out, position flat, books clean.
Two full bot sessions followed. The first quoted BTC with a $13 clip at 2× leverage and ran just under seven minutes: five fills, $77.71 of turnover, 100% maker, zero fees, −$0.0009 realised, ending flat. The second used a $31 clip at 4× for five minutes: two fills, $61.88 turnover, 100% maker, zero fees, −$0.0005 realised, also flat.
Seven fills. $139.59 of turnover. Fourteen hundredths of a cent of loss. We are publishing that number rather than the round trip that made money, because two sessions of a live bot are the honest sample and a single hand-run cycle is not.
- 7 fills, $139.59 turnover, 100% maker, $0.0000 in fees.
- Net result: −$0.0014. Both sessions ended flat with no open orders.
- Every position was closed and verified before the session was recorded as stopped.
The fee schedule, measured on a live account
We did not take the fee structure from a blog post. We read it off the account after trading: makerBps 0.0, effectiveMakerBps 0.0, takerBps 3.5, at tierIndex 0 with a tier threshold of 0.0. Zero is the base maker rate at the bottom tier, not a promotional discount that expires. Every fill record showed an explicit 0.0 fee, never a null.
Here is the arithmetic that makes this venue interesting at all. Our round trip captured 4.35 basis points of spread on the leg, and both legs filled at exactly the limit price with no slippage. Had both legs crossed as taker at 3.5 bp, the cost would have been $0.000725, more than the trip earned. The zero maker fee is not a nice-to-have here. It is the only reason the economics close.
There is also a market-share rebate that scales with your share of each market, and it had accrued nothing for us: makerSharePpm 0, makerShareRebateBps 0.0. Rebates need volume before they mean anything, and we had none.
- Maker 0.0 bp at tier 0 with a zero threshold: the base rate.
- Taker 3.5 bp. Both legs as taker would have sunk the round trip.
- Market-share rebate exists but had accrued nothing at our volume.
The money identity balanced to zero
A venue that reports pleasant numbers is not the same as a venue whose books close. We checked ours: collateral moved from 40.00000 to 40.00045, realised PnL was +0.00045, fees were zero, funding was zero, and the residual was exactly zero.
The check is not degenerate. Something moved, so this is not zero equalling zero, a mistake we had made on their testnet earlier.
One honest limit on that claim. The exact figure by price was 0.000450619 and the venue recorded 0.00045, so it rounds its accounting at roughly 1e-5 USD and carries that rounding into collateral consistently. The identity is proven to 1e-5 USD, not to eight decimal places. The extra digits come from the output format, not from precision.
- Collateral delta, realised PnL, fees and funding reconcile with zero residual.
- Proven to 1e-5 USD, the venue's own accounting resolution.
- On a $1 clip that quantisation is worth up to about 5 ppm; on $350, 0.014 ppm.
| Collateral before | 40.00000 |
| Collateral after | 40.00045 |
| Realised PnL | +0.00045 |
| Fees | 0.00000 |
| Funding | 0.00000 |
| Residual | 0.00000 |
The uncomfortable finding: BTC is the worst market to earn on
We surveyed all 20 markets on 6 September: read-only, 1,284 requests, no errors. Not one specification was malformed.
BTC-USD, the market we traded, carries a one-tick spread 98.7% of the time. There is nowhere to stand inside it. ETH-USD was worse in a different way: its book did not move for over ten minutes, confirmed across two separate observation windows. SOL-USD sat at 1.46 bp, also collapsed.
The wide spreads are elsewhere. MEGA-USD showed a 23.5 bp median and stayed wider than 5 bp 100% of the time; JTO-USD 29.5 bp on the same terms; MON, JUP and ZEC between 21 and 31 bp. Those are markets with room to quote inside, and a $25–50 minimum notional.
So BTC is valuable for exactly one thing: it is the only book cheap enough to verify that your machinery works. It is not where the money is.
- BTC-USD: one-tick spread 98.7% of the time. Nowhere to stand.
- ETH-USD: book unchanged for 10+ minutes across two windows.
- MEGA, JTO, MON, JUP, ZEC: 21–31 bp median, but a $25–50 minimum notional.
Seventeen of twenty books are one market maker's layout
The pattern is hard to miss once you line the books up side by side. Seventeen of the twenty markets carry roughly $9,400–9,700 per side, in notionals that are near-exact multiples of $395–400 and $1,000, with exactly one order resting at the best level. Only ETH, SOL and partly BTC showed real depth, in the $20–40k range.
That is one participant's grid, not a crowd. Quoting inside a spread like that is not competing with a market. It is playing against a single opponent who can see your order the moment it lands.
And here is what we did not measure, stated plainly: turnover and fill frequency. A wide spread with one market maker and a $9.5k book is explained equally well by "a market with no competition" and by "a market with no flow." Until that is measured, "there is room to quote on MEGA" is a hypothesis about profitability, not a finding.
- 17 of 20 books: about $9.4–9.7k a side, one order at the best level.
- Real depth only on ETH, SOL and partly BTC.
- Turnover was not measured. A wide spread does not prove opportunity.
A 25 ms head start we cannot use
BULK delays taker-capable transactions by 25 milliseconds. Post-only limit orders pass immediately, and so do cancels, including cancel-all. On paper that is built for exactly the kind of passive quoting we do: you get a quarter of a tick of warning before someone can hit you.
Our measured median reaction from touch to re-quote is 5,324 milliseconds. That is three orders of magnitude slower than the window. The head start is real and we cannot take it with our current cycle. A snapshot TTL of three seconds and a loop that thinks in seconds cannot outrun a 25 ms door.
We publish this because it is the kind of thing a venue comparison normally skips. A protective mechanism you are structurally too slow to use is worth nothing to you, whatever the documentation promises.
- Taker orders delayed 25 ms; post-only and cancels pass immediately.
- Our touch-chase median: 5,324 ms, three orders of magnitude slower.
- The mechanism is described as temporary, to be replaced by a protective order type.
What a delegated trading key can and cannot do
This one matters beyond BULK, and we found it by attempting each action on the live mainnet rather than reading the documentation.
The delegated agent key cannot move funds out. Every attempt to withdraw externally, to authorise a second agent, or to divert proceeds returned unauthorized signer: a terminal rejection, not a rate limit.
But it can create a subaccount and transfer between the owner's own accounts. Both actions succeeded. Money cannot leave the owner; it can move around inside. That is a meaningfully different permission boundary from "the key can only trade," and on the testnet it is invisible.
The general lesson: prove a delegated key's permission boundary in the same network you will trade in. A testnet result is not evidence about mainnet, and we have the counter-example to show for it.
- Withdrawals, second-agent authorisation and proceeds diversion: all rejected.
- Subaccount creation and internal transfers: both permitted.
- Testnet permissions did not predict mainnet permissions.
One safety lesson that cost us 143 seconds
We had built the emergency exit as a post-only order, on the reasoning that a maker exit costs nothing. That reasoning is wrong, and the live mainnet showed us why.
A post-only order is rejected precisely when the price has moved away from it, which is exactly the moment an emergency exit exists for. The result was 143 seconds of an unhedged position on a live mainnet account while the exit kept bouncing.
The fix is not clever: an emergency exit crosses the spread. It is now an immediate-or-cancel order, and the response to a protective send is checked rather than assumed. We mention it because anyone building the same machinery will reach for post-only for the same reason we did.
- Post-only exits are rejected exactly when you need them most.
- Cost: 143 seconds of unhedged exposure on a live account.
- Emergency exits must cross, and the venue's response must be checked.
So should you market make on BULK right now?
Our honest read, dated 6 September 2026, from two live sessions and a full survey of the book: the fee structure is unusually favourable and the liquidity is not there yet.
Zero maker at the base tier is rare, and it is what makes small passive quoting arithmetically possible at all. Against that: the liquid markets have no spread to capture, the wide markets carry one participant and unmeasured flow, and the minimum notional on everything except BTC makes each experiment cost real money.
What we would want before committing size, and have not got: measured turnover and fill frequency on the wide markets, and an adverse-selection number from the engine itself rather than from a script. Without a markout, any cost-per-million figure for this venue is an estimate wearing a decimal point.
- In favour: zero base maker fee, clean settlement, books that reconcile.
- Against: no spread where there is liquidity, no measured flow where there is spread.
- Missing: turnover per market and an adverse-selection measurement.
Arcus
Ondo
Perpl
Lighter
Phoenix
RISEx
EntropyShould you trade on BULK right now?
- The fees are as good as it gets: zero for makers, at the base tier, not a promotion.
- The liquidity is not there yet: the busy markets have no gap to earn from; the wide ones have one other trader in them and a $25–50 minimum per order.
- The machinery is safe to build on: books balance to the cent, and the bot key cannot take money out. We will open it to users only after it survives more than one wallet.
Questions
Is BULK's maker fee really zero?
Yes, and we read it off a live account after trading rather than from documentation: makerBps 0.0 and effectiveMakerBps 0.0 at tierIndex 0, whose threshold is also zero. That makes zero the base rate rather than an expiring promotion. Taker is 3.5 basis points. Every fill record we saw carried an explicit 0.0, never a null.
Did you make money market making on BULK?
No. Across two live sessions on 6 September 2026 we did seven fills on $139.59 of turnover, all maker, paid nothing in fees, and finished $0.0014 down. A single hand-run round trip before that made $0.0005. Neither number is worth extrapolating from. They show that the machinery works end to end, not that the strategy earns.
Which BULK market should a market maker choose?
Not BTC-USD, despite it being the obvious choice. Its spread is a single tick 98.7% of the time, so there is no room to quote inside. It is useful only because it is the only market with a $1 minimum notional, which makes it the cheapest place to verify your system works. The wide spreads sit on MEGA, JTO, MON, JUP and ZEC at 21–31 basis points, where the minimum notional is $25–50 and the flow is unmeasured.
Can a delegated trading key withdraw funds on BULK?
No. We tested it directly on mainnet: external withdrawal, authorising a second agent and diverting proceeds all returned unauthorized signer. The key can, however, create a subaccount and transfer between the owner's own accounts. Funds cannot leave the owner, but they can move within. The testnet does not show this: a permission boundary has to be proven in the network you will trade in.
What is BULK's 25 ms speed bump?
Taker-capable transactions are delayed by 25 milliseconds while post-only limit orders and cancels pass through immediately. It is designed to give passive quoters a moment to withdraw before being hit. It did us no good: our measured median reaction from touch to re-quote is 5,324 milliseconds, three orders of magnitude slower than the window. The venue describes the mechanism as temporary.
Can I run Vesper on BULK today?
Not publicly. We have run our own bot there and the machinery works, but a venue is only opened to other people after multi-user isolation and a mainnet-versus-testnet delta review both pass, and neither has. Our own wallet succeeding is not evidence that yours would be safe. When that changes it will be stated on the site with a date.
How did you measure the spreads across all 20 markets?
Read-only sampling of every market's book on 6 September 2026: 1,284 requests with no errors and no orders placed. Stability was sampled across multiple windows for five markets; the remaining fifteen rest on single snapshots, which is why we describe the wide-spread markets as a hypothesis rather than a finding.