Usernotes Shard Pages¶
Each shard is stored at toolbox-nxg/usernotes/<suffix> (e.g. toolbox-nxg/usernotes/s1-00000000). The suffix is chosen by the NXG client when the shard is created; its format is s{gen}-{start_hex_padded_8}, where gen is the manifest generation counter at creation time and start_hex_padded_8 is the shard’s lower-bound hash as an eight-character lowercase hex string.
See Usernotes Schema for the manifest format and an overview of the sharded layout.
Page envelope¶
Each shard is a JSON envelope at schema version 1 containing a compressed payload:
{
"format": "nxg-usernotes",
"ver": 1,
"blob": "<base64(zlib(payload JSON))>"
}
Field |
Type |
Description |
|---|---|---|
|
|
Format marker identifying this page as a shard |
|
|
Shard schema version |
|
string |
|
Payload¶
The decompressed payload is a JSON object mapping lowercase usernames to user records:
{
"someuser": {
"nextIndex": 3,
"notes": [
{
"index": 0,
"note": "Broke rule 1",
"time": 1700000000,
"mod": "moderatorname",
"type": "abusewarn",
"link": "/r/subreddit/comments/abc/-/def/"
},
{
"index": 1,
"note": "Banned for repeated violations",
"time": 1701000000,
"mod": "moderatorname",
"type": "ban",
"archived": { "by": "moderatorname", "at": 1702000000 }
}
]
}
}
User record fields¶
Field |
Type |
Description |
|---|---|---|
|
integer |
Next note index to assign; never reused |
|
|
Array of note entries |
Note entry fields¶
Field |
Required |
Type |
Description |
|---|---|---|---|
|
yes |
integer |
Stable per-user note index |
|
yes |
string |
Note text |
|
yes |
integer |
Creation timestamp (epoch seconds) |
|
yes |
string |
Username of the creating moderator |
|
no |
string |
Note type key; omitted when no type |
|
no |
string |
Subreddit-relative permalink, e.g. |
|
no |
string |
Full URL of an associated removal modmail |
|
no |
object |
Set when archived; contains |
time and archived.at are epoch seconds — the same granularity reddit
itself exposes, and the same unit the classic v6 page stores.
Archive sentinels¶
Two special values may appear in archived.by:
Value |
Meaning |
|---|---|
|
Archived because the note was deleted on the classic wiki page by a 6.x client |
|
Archived automatically by the per-type auto-archive sweep |