Why your Hyperliquid TWAP fills are missing
TWAP slices use a separate source from standard fills. Check that source before drawing a conclusion from a break in your trade history.
TWAP slices use their own endpoint
Fills are trades that execute an order. TWAP means time-weighted average price. A TWAP order executes in smaller slices over time.
Hyperliquid returns these slices through userTwapSliceFills. That endpoint keeps only the latest 2,000. Standard fills history alone does not show those slices. A tool that only reads that history can show a position change with no returned fill to explain it.
A position break does not tell you its cause
Each fill reports the position size before it in startPosition. Our continuity check asks whether each fill starts where the previous one for that coin ended. It first tries to order fills from the same millisecond into a continuous chain.
A break after that step is an unexplained position change. It is not proof that TWAP caused it. Funding between the fills can confirm that the position changed, but does not identify the cause. See the continuity method.
What we found in two wallets
In our tests, we compared two wallets with third-party full-history exports. For one active TWAP wallet, 418,490 of 610,419 export rows were TWAP slice fills. None of the latest 2,000 slices returned by the TWAP endpoint appeared in that wallet's standard fills history.
For that same wallet, adding the export rows closed 1,174 of 1,174 testable position breaks. For the vault wallet, the export rows closed about 97% of testable breaks. Testable means the source timestamps let us check a break under the comparison rule. These percentages are not for all breaks.
This fits TWAP slices being left out of standard fills history. It does not prove the cause of every break. Two wallets are a small sample. Some breaks could not be tested, and neither source was complete on its own.
Check your own records
- Run the free record check to see returned TWAP slices and other account events. Its capped reads do not cover the full account history.
- Run the history coverage check to compare the oldest returned fill with earlier funding. This checks a different gap from breaks between returned fills.
- Compare TWAP slices with standard fills and historical sources. The export guide explains which records to collect.
- Keep unknown fees, realized results and uncertain ordering visible. An empty field is not zero. Review unexplained position changes before relying on a conversion.
The free Koinly converter checks continuity in available perp fills. Conversion does not restore slices outside the source history. Full-record exports and statements require accounts and open with early access.
For tax preparation, see the Hyperliquid tax records guide. This page is not tax advice.
Check what your history covers
Use a public wallet address. The free checks need no account, keys or wallet signature.
Frequently asked questions
Why can my position change without a returned fill?
The source may not show the event that changed it. TWAP slices have a separate endpoint. A break alone does not prove what caused the change.
Does the TWAP endpoint return every old slice?
No. It keeps only the latest 2,000 slices. Compare historical sources if you need earlier activity.
Does no gap found mean all my TWAP history is present?
No. The history coverage check compares funding with the oldest returned fill. It does not prove that every TWAP slice is present.