# Quantum Keycodes | QMK Firmware
Documentation for QMK Firmware

Skip to content

# Quantum Keycodes ​

Quantum keycodes allow for easier customization of your keymap than the basic ones provide, without having to define custom actions.

All keycodes within quantum are numbers between `0x0000` and `0xFFFF`. Within your `keymap.c` it may look like you have functions and other special cases, but ultimately the C preprocessor will translate those into a single 4 byte integer. QMK has reserved `0x0000` through `0x00FF` for standard keycodes. These are keycodes such as `KC_A`, `KC_1`, and `KC_LCTL`, which are basic keys defined in the USB HID specification.

On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are used to implement advanced quantum features. If you define your own custom keycodes they will be put into this range as well.

## QMK Keycodes ​

Key | Aliases | Description
--- | --- | ---
`QK_BOOTLOADER` | `QK_BOOT` | Put the keyboard into bootloader mode for flashing
`QK_DEBUG_TOGGLE` | `DB_TOGG` | Toggle debug mode
`QK_CLEAR_EEPROM` | `EE_CLR` | Reinitializes the keyboard's EEPROM (persistent memory)
`QK_MAKE` |  | Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held. Puts keyboard into bootloader mode if shift & control are held
`QK_REBOOT` | `QK_RBT` | Resets the keyboard. Does not load the bootloader

WARNING

Note: `QK_MAKE` requires `#define ENABLE_COMPILE_KEYCODE` in your config.h to function.