Pack keys
Last updated September 22, 2026
A pack key is a short piece of text that holds a whole mappool: the pack name and which beatmap goes in which slot. Paste it into packs and you get the same pool back, anywhere, without an account. Keys start with pk1..
Sharing a pack
- On the builder, use Copy key or Copy share link.
- A share link looks like
https://packs.haruhime.moe/k#pk1.…. Everything after/k#is the key. Browsers never send that part to our server. - To open a key, paste it (or a message containing it) into the box on the home page.
A key holds IDs only. Titles, difficulty names, and stats are looked up again when the key is opened, so a key never goes stale, but a map that was updated on osu! shows its current version.
What's inside
A key is pk1. followed by base64url text (letters, digits, - and _, no padding). Decoded, the bytes are:
- Version: one byte,
1. - Name length: a varint (unsigned LEB128), then the name as UTF-8. Names are 1 to 64 characters.
- Slot count: a varint, at most 64.
- Each slot: one byte for the mod bucket, then the slot number as a varint, then the beatmap (difficulty) ID as a varint. Bucket bytes are 0 to 5 for NM, HD, HR, DT, FM, TB, in that order.
- Checksum: two bytes, CRC-16/CCITT-FALSE of everything before it, high byte first.
Slots are always written in bucket order and then slot number, so the same pool always makes the same key. A key that was cut off or mistyped fails the checksum, and packs tells you it's damaged instead of opening the wrong pool.