Anonymisation
How the live market hides trader addresses, what that protects against, and what it does not.
The live market shows other people’s trades. The data is public on Hyperliquid, but we still keep addresses and transaction hashes off the page.
All of this happens inside a Web Worker, before anything reaches the page:
- Tags instead of addresses. An address becomes
#plus the first four hex digits ofSHA-256(salt ‖ address). The salt is 16 random bytes, drawn once per page load. - Rounding. Amounts to two significant figures, prices to four, times to the second.
- Dropping. Transaction hashes, trade ids and addresses are never put into the events the page receives.
Example. A trader buys 1.2345 BTC at 61,234.56 at 14:03:07.412. The page shows #3fa1 · buy 1.2 BTC · 61,230 · 14:03:07. After a reload the same trader is #91c0.
What it protects against
Section titled “What it protects against”- Addresses in the page, the DOM, screenshots and screen recordings.
- Following one trader across visits: the tag changes on every reload, and the salt never leaves your browser.
- Looking a tag up: without the salt,
#3fa1maps to no address.
What it does not protect against
Section titled “What it does not protect against”- Matching against the public tape. Hyperliquid publishes every trade. Someone who matches a rounded size, price and second against the public trade stream can often find the trade, and from it the address.
- Collisions. Four hex digits are 65,536 tags. Among 100 traders on screen, the chance that two share a tag is about 7%. That only affects the display.
So: anonymised for display, not secret. The point is not to put names on a page, not to hide what is public.
Addresses you enter
Section titled “Addresses you enter”Backtest and Watch take an address you type. It goes into the requests to Hyperliquid and nowhere else: not stored, not logged, not in a URL, not sent to us. Watch drops it when you stop.
This page as plain Markdown, for people and LLMs: /docs/methods/anonymisation.md