What is the SB3 file format?
Projects created in Scratch 3 are saved as .sb3 files. This file format was developed at MIT (Massachusetts Institute of Technology) for a block-based programming learning platform. Scratch projects can take the form of a story, animation, or simple game, and the whole project is saved as a ZIP archive with a renamed extension.
The .sb3 format replaced .SB2 files used by Scratch 2.0, and the original .SB format introduced with the first Scratch release. The experimental ScratchX version used .sbx for its projects.
What data can .sb3 files hold?
Project files created with Scratch 3.0 and higher contain complete project data and can hold such objects as:
- scripts in JSON format (all blocks, sprites, and variables),
- graphics, icons, costumes and other sprite images (PNG and SVG),
- audio files (WAV and MP3), each named by its MD5 content hash inside the archive.
To access .sb3 data without Scratch, a user can unpack the archive using any tool that supports ZIP format. Sometimes it may be necessary to rename the .sb3 extension to .zip before the extraction tool recognises it.
Managing .sb3 files in Scratch
.sb3 is the default project file format used by Scratch 3.0, available both as an online application and as Scratch Desktop for Windows and macOS. When using the online version, select File → Download to your computer to save the project to disk. To open a .sb3 file from disk, choose File → Upload from your computer from the same menu.
Security & safety
RISK: LOWSB3 is a ZIP of JSON and media files with no executable code; it cannot run outside the Scratch environment. The Scratch VM sandboxes project execution. No known exploits via malicious SB3 files. Safe to share and inspect.
Format details
in a nutshellPrograms that open SB3 files
Technical details
deep spec| Container format | ZIP archive (magic bytes 50 4B 03 04 at offset 0, same as any `.zip` file) |
| Root manifest | `project.json` - complete project data (all blocks, sprites, variables, stage) |
| Asset naming convention | Costumes and sounds stored as `{md5hash}.{ext}` (e.g., `.png`, `.svg`, `.wav`, `.mp3`) |
| Compression | DEFLATE per ZIP entry |
| Encoding | Binary ZIP container with UTF-8 JSON inside |
| Stage dimensions | Fixed at 480 × 360 px |
| MIME type | `application/x.scratch.sb3` |
| Integrity | ZIP CRC-32 per entry; asset filenames are MD5 hashes of file content |
| Typical file size | 10 KB - 50 MB (depends on sprite costumes and sound assets) |
| Maximum asset entries | ZIP-constrained (up to 65,535 files without ZIP64 extension) |
| Format version | Scratch 3.0 JSON schema (sb3); incompatible with Scratch 2.0 (.sb2) without conversion |
| Introduced | 2 January 2019 (Scratch 3.0 public launch) |
| Backward compatibility | Scratch 3.0 opens .sb2 files with auto-conversion; cannot open Scratch 1.x `.sb` files |
| OS compatibility | Windows, macOS, Linux, ChromeOS, Android, iOS (via web browser) |
| Released | January 2, 2019 (Scratch 3.0 public launch) |
| Latest version | Scratch 3.0 (ongoing; format stable since 2019) |
| Specification | en.scratch-wiki.info |