If you've built Hooks on Xahau, you've been here: staring at a raw HookState entry like 5852504C57696E and trying to figure out what it actually means.
Is it a UInt32? A VarString? A timestamp? A ledger index? Big-endian or little-endian?
You either write a throwaway script, crack open a hex calculator, or just guess. None of these are great when you're in the middle of debugging a Hook at 2am.
That's exactly why we built the
For example, paste 5852504C57696E and you'll instantly see:
VarString XRPLWin
UInt64 32075751449710680
Blob 5852504C57696E
One click to confirm. The tool locks that interpretation and moves on to the remaining bytes. The scan is smart about filtering noise — it suppresses leading null bytes from Null suggestions since those are almost always padding, surfaces VarString matches only when the bytes decode to printable UTF-8, and collapses partial string matches so you see the longest valid string, not every sub-sequence.
Manual byte picking for complex states
If autoscan doesn't nail it, or you're working with a tightly packed multi-field state, the byte picker gives you full control.
Click any byte button to select from byte 1 up to that point. The result panel shows every ABI type that fits that exact byte length — UInt16, UInt16 (BE), Int16 , Timestamp, LedgerIndex — each with the decoded value shown.
Select the type that matches your Hook's logic. The tool locks that segment, advances to the remaining bytes, and a new engine appears for the next segment. You repeat the process until every byte is accounted for.
This chained engine approach means you can decode a 32-byte key that encodes, say, a 4-byte UInt32 flag, a 20-byte AccountID, and 8 bytes of NULL padding — step by step, segment by segment, without losing track of where you are in the buffer.
20+ ABI types supported
| Category | Types |
|---|---|
| Integers | UInt8/16/32/64, Int8/16/32/64 (LE & BE) |
| Floats | XFL (LE & BE) |
| Amounts | Amount, NativeAmount, IOUAmount |
| Strings | VarString |
| Hashes | Hash128/160/256/512 |
| Identity | AccountID |
| Ledger | Timestamp, LedgerIndex |
| Raw | Blob, Null |
Both little-endian and big-endian variants are available for integer and float types, since Hooks developers sometimes store values in BE when interfacing with external systems.
Per-segment options
.
SOCIAL SHARE CARD GENERATOR