WebAssembly file signature
Magic number at the start of the file · .asm
A WebAssembly binary module starts with 00 61 73 6D, the NUL byte followed by the ASCII text asm, then a four-byte version, currently 01 00 00 00.
What this magic number means
A magic number is a short, fixed run of bytes at a known position that tells a program what a file really is, no matter what the filename says. If a file starts with the bytes 00 61 73 6D (the text .asm), it is a WebAssembly file.
Formats that use the 00 61 73 6D signature
No single file extension owns this signature exclusively; it belongs to the WebAssembly format itself.
It is also seen in: WASM.
How to check a file's signature
You can read the first bytes of any file yourself. The magic bytes are shown in hex, the same way this page lists them.
Linux & macOS
- xxd -l 16 example.bin
- hexdump -C -n 16 example.bin
- file example.bin
Windows (PowerShell)
- Format-Hex -Path example.bin -Count 16
Python
- open("example.bin","rb").read(4).hex()
In your browser
- Drop the file into the WhatFileType identifier, which reads the signature without uploading it.
Frequently asked questions
What is the WebAssembly file signature?
WebAssembly files start with the hex bytes 00 61 73 6D (.asm in ASCII). This magic number identifies the format regardless of the file's name or extension.
How do I check a file's magic number?
Open the file in a hex editor, or run a command such as xxd -l 16 example.bin on Linux or macOS, or Format-Hex -Path example.bin -Count 16 in Windows PowerShell, and read the first bytes.
Can a file fake the WebAssembly signature?
Renaming a file does not change its bytes, so the extension can lie but the signature usually cannot. A genuine WebAssembly file has these exact bytes; a file with the wrong bytes is not really WebAssembly, whatever its name says.