my builder wallet has 174 dollars in it and its down 7.
anyone can look. its onchain, its the same address every user approves.
thats not a bad look, thats the point. i test the money path with my own money
first and i keep it small enough that a bug costs me a coffee instead of a
customer
the day i hide that address is the day something went wrong
A ghost bug that cost me a full afternoon.
I merged, healthcheck went green, I tested in chat, and got behaviour from code that no longer existed.
The container swap lags the healthcheck by one to two minutes. Old process still holds the lock file. Your message routes to the old code while the dashboard says deployed.
So you look at the diff, and the diff is right, and you start doubting a change that was correct the whole time.
Now the rule is: merge, wait two minutes, then test. Deployed is not the same as running.
https://t.co/9vpyfo7422
every trading product eventually has the same conversation with itself.
do we hold the keys because its easier, or do we not hold them because its
right.
easier wins almost every time and the users never find out until it matters
there is a version where you dont have to choose
i run this alone and i still gate every merge behind a plan review.
not because im slow. because the code touches money and money doesnt forgive
a fast tuesday.
the review is the product
the code is just what came out of it
shipped a halt system today with three layers.
one user can stop themselves. i can stop all trading. and there is a third
switch that kills the control plane entirely if the keys ever leak.
three separate hands on three separate brakes
i hope i never touch the third one
What the open interest ratio does not tell you, since I have been quoting it all week.
It does not tell you composition.
One delta neutral desk can hold most of a venues open interest and leave in an afternoon.
It does not tell you the funding regime holding it there.
It tells you one thing.
Whether collateral currently sleeps in that liquidation engine.
DefiLlama publishes two volume numbers for perp DEXs and most people only read one.
Reported is whatever the venue emits.
Normalized is what an outside party is willing to count as economically distinct flow.
Aster shows 849.47m reported today against 656.36m normalized. Hyperliquids two numbers are the same number.
If you are modelling routing economics, normalized is your input. Use reported and your projection is inflated by exactly the amount the aggregator was suspicious of, silently, in a spreadsheet you will re read for weeks.
I know that failure mode because I built the same class of error on my own numbers.
looked at a copytrading product this week that has no execution delay.
which means the leaders own fill and every follower fill land in the same
window, on the same book.
thats not a feature, thats a slippage machine
somebody is paying for that and it isnt the leader
The closest I came to shipping something bad.
I wanted to give a link that opens a read only view of someones own data. Easiest path was to put the auth token in the URL.
Then I read what that token actually gates. Not just reads. It also gates the wallet registration route and the payout claim route.
Put that in a URL and I have built a payout hijack, in a link I would have told people to click.
Fix was a separate signed view token. Read routes only, 24 hour expiry, lives in the URL fragment so it never reaches a server log. Write routes still demand the full token.
I keep a running log of near misses like this in a small private group. If you build on Hyperliquid and want in, DM me at https://t.co/NsQFTitjYZ
the most dangerous thing in a trading bot isnt a wrong price.
its a silent failure. an order that looks placed and isnt. a fill that never
gets journaled. a state file that quietly stops writing.
loud bugs are a gift
the quiet ones are the ones that end you
today was a merge that changed four lines.
three of them were copy. one was a guard.
some days the diff is embarrassing and the week still moves
the small ones are usually the ones you had to think hardest about
@trenchesalpha gm. quick one before anything else. does your group trade on chain perps
at all, or is it all funded account / prop side?
asking because on chain has a completely different fee structure and it
only matters if someone there is actually routing to a dex
@Julian_Trades1 gm. quick one before anything else. does your group trade on chain perps
at all, or is it all funded account / prop side?
asking because on chain has a completely different fee structure and it
only matters if someone there is actually routing to a dex
@GoalGeekHQ@betproiq gm. quick one before anything else. does your group trade on chain perps
at all, or is it all funded account / prop side?
asking because on chain has a completely different fee structure and it
only matters if someone there is actually routing to a dex
@hassyswings gm. quick one before anything else. does your group trade on chain perps
at all, or is it all funded account / prop side?
asking because on chain has a completely different fee structure and it
only matters if someone there is actually routing to a dex
"no resume, no big deposit" is the right filter for this.
the harder part is that trader feedback mostly arrives as "felt slow" or "felt off", which you can't ship against....
the question that fixed it for me was where did you stop, not what did you think.,..
people remember the exact second they closed the tab and almost nobody volunteers it.
Railway /data is ephemeral.
State written there survives until the next deploy, then quietly does not.
Persistent volume, mounted path, and the app has to actually write to that path and not the one you assumed.
I check the mount path now before I check anything else.