While attempting to place a limit order for HASH on Osmosis, I encountered what appears to be a reproducible frontend issue affecting HASH limit orders.
I initially assumed the problem was related to my USDC balance, particularly the ongoing transition from USDC.noble to Alloyed USDC. After testing multiple stablecoins and looking deeper into the underlying HASH liquidity pool and CosmWasm contract, however, the evidence points toward an issue specifically involving the Limit Order interface.
Here is what I found.
The Original Problem
My wallet was connected to Osmosis and my stablecoin balance appeared normally in my portfolio.
When trading HASH using Market mode, Osmosis correctly recognized my available stablecoin balance and allowed me to select it as the payment asset.
The problem appeared when switching from:
Market → Limit
The interface would briefly freeze and then either return an error or incorrectly report:
Insufficient balance
This happened even though Osmosis had just displayed sufficient funds as available.
In one test, Osmosis displayed approximately $1,500. of USDC available. I attempted to create a $100. HASH limit order, which was comfortably below the displayed balance.
Osmosis nevertheless reported “Insufficient balance.”
Was USDC.noble the Problem?
My first suspicion was the recent transition involving USDC.noble and Alloyed USDC.
Osmosis currently recognizes several underlying forms of USDC. My USDC position was composed primarily of:
- USDC.noble
- USDC.inj
- USDC.eth.axl
Approximately 91% of my USDC was USDC.noble.
This seemed particularly relevant because the primary direct HASH/stablecoin liquidity pool on Osmosis is:
Pool #2090 — USDC.noble/HASH
At the time of testing, Pool #2090 contained approximately $11,000 in liquidity.
Therefore, USDC.noble appeared to be exactly the asset I should have been able to use.
But I wanted to rule out the USDC migration as the cause.
Testing the Same Transaction With USDT
I converted a small amount to USDT specifically as a diagnostic test.
The result was revealing.
With HASH selected in Market mode, Osmosis immediately recognized:
$10.00 USDT available
Everything looked normal.
I then changed the exact same HASH transaction from Market to Limit.
The interface froze and the limit-order functionality failed again.
That was important because it reproduced the problem using an entirely different stablecoin.
At this point, the issue no longer appeared to be simply:
USDC.noble vs. Alloyed USDC
Instead, the common denominator was:
HASH + Limit Order
Looking Under the Hood of Pool #2090
I then investigated Pool #2090 — USDC.noble/HASH directly.
Osmosis provides a link from the pool to its underlying CosmWasm contract, viewable through Celatone.
This produced perhaps the most interesting part of the investigation.
The underlying contract exposes explicit orderbook functionality, including:
place_limit
cancel_limit
claim_limit
orders_by_owner
orders_by_tick
orderbook_state
spot_price
ticks_by_id
In other words, the underlying contract appears to contain the functionality necessary to support limit orders.
That creates an interesting discrepancy.
The underlying Pool #2090 orderbook contract exposes limit-order functions, while the app.osmosis.zone frontend fails when I attempt to use the Limit interface.
Reproducing the Issue
At least in my environment, the problem can be reproduced with the following sequence:
app.osmosis.zone
→ Select HASH
→ Select Buy
→ Select Market
→ Choose USDC or USDT
→ Osmosis correctly displays the available balance
→ Switch from Market → Limit
→ Interface freezes, produces an error, or incorrectly reports an insufficient balance
I reproduced this using both USDC and USDT.
USDC test
Osmosis displayed approximately:
$1,500.available
Attempted HASH limit order:
$100.
Result:
Insufficient balance
USDT test
Osmosis displayed:
$10.00 available
The balance was recognized normally in Market mode.
Switching the HASH transaction to Limit reproduced the failure.
Why This Appears to Be a Frontend or Integration Issue
There are several pieces of evidence pointing in that direction.
The wallet connection works.
The assets appear correctly in the portfolio.
Market mode recognizes the balances.
Market trading functionality works.
The HASH/USDC.noble liquidity pool is active.
Pool #2090’s underlying CosmWasm contract exposes limit-order functions.
The failure occurs when the Osmosis interface is changed specifically from Market to Limit.
And, importantly, the failure can be reproduced with both USDC and USDT.
That doesn’t conclusively establish where in the software stack the defect resides. The issue could potentially involve the frontend, routing logic, asset-denomination handling, or the frontend’s integration with the orderbook contract.
But the testing strongly suggests that this is not simply a case of the user holding the wrong version of USDC or having an insufficient wallet balance.
Why This Matters for HASH Traders
HASH currently has relatively limited liquidity on Osmosis.
At the time of my testing, the direct USDC.noble/HASH Pool #2090 had approximately $11,000 of liquidity.
For a thinly traded asset, limit orders are particularly valuable because traders may not want to execute a substantial market order and accept potentially significant price impact.
For example, someone wanting to deploy $100.–$150. into HASH may specifically want to say:
Buy HASH only if the price reaches my predetermined entry price.
If the market-order functionality works but the limit-order interface does not, traders lose an important mechanism for managing execution in a relatively illiquid market.
What I Would Like Osmosis to Confirm
I would like to know whether Osmosis is aware of an issue affecting HASH limit orders, Pool #2090, or the current Limit Order frontend.
It would also be useful to know whether this behavior has any connection to the ongoing transition from USDC.noble to Alloyed USDC, although reproducing the failure with USDT suggests that the problem extends beyond USDC denomination handling.
I have screenshots documenting the tests, including:
USDC balance recognized → HASH limit order reports insufficient balance
USDT balance recognized in Market mode → Limit mode fails
Pool #2090 USDC.noble/HASH liquidity information
The underlying CosmWasm contract and its place_limit, cancel_limit, and other orderbook functions
If this is a known issue, clarification from the Osmosis team would be helpful—particularly for HASH users attempting to place limit orders against Pool #2090.