DRD List Get — Group 16, Code 146
Returns the caller’s complete white/black list. Private: lists reveal a user’s social graph, so this command requires the owner’s AN — the same authentication as the write commands. Nobody can read another user’s list.
Quick reference
| Command Group | 16 (DRD) |
| Command Code | 146 (0x92) |
| Server function | cmd_drd_list_get in cmd_drd.c |
| Request body | Exactly 39 bytes: challenge(16) + DN(1) + SN(4) + AN(16) + terminator(2) |
| Authentication | Owner AN — lists are private to their owner |
| Success response | Status 250 + count(2) + count × 6-byte entries |
| Result cap | Server maximum 1000 entries per request |
Request body (39 bytes)
The layout is identical to delete_user: the owner’s PQ and AN, nothing else.
Response
The payload is a 2-byte big-endian count followed by that many 6-byte entries, sorted by listed denomination then serial number:
List payload (2 + 6N bytes)
+-----------+---------------------------+---------------------------+-----+
| count | entry 1 | entry 2 | ... |
| 2 (BE) | LDN(1) LSN(4 BE) TY(1) | LDN(1) LSN(4 BE) TY(1) | |
+-----------+---------------------------+---------------------------+-----+
TY: 00 = whitelisted, 01 = blacklisted
| Payload offset | Size | Field | Description |
|---|---|---|---|
| 0–1 | 2 | Entry count | Big-endian. 0 with status 250 means the list is empty. |
| 2 + 6i | 1 | Listed denomination | Entry i. |
| 3 + 6i | 4 | Listed serial number | Entry i, big-endian. |
| 7 + 6i | 1 | List type | 0x00 white, 0x01 black. |
Status codes
| Decimal | Hex | Symbol | Meaning |
|---|---|---|---|
| 250 | 0xFA | STATUS_SUCCESS | List returned (possibly empty). |
| 16 | 0x10 | ERROR_INVALID_PACKET_LENGTH | Body is not exactly 39 bytes. |
| 40 | 0x28 | ERROR_INVALID_SN_OR_DENOMINATION | Denomination/serial is not a coin this RAIDA holds. |
| 200 | 0xC8 | ERROR_INVALID_AN | AN mismatch — the caller is not the list owner. |
| 252 | 0xFC | ERROR_INTERNAL | Database failure. |
| 254 | 0xFE | ERROR_MEMORY_ALLOC | Server allocation failure. |
Common mistakes
Trying to read someone else’s list
There is no public form of this command. Without the owner’s AN the server returns ERROR_INVALID_AN and reveals nothing — not even whether the list is empty.
Reading the count as one byte
Unlike search_users (1-byte count, capped at 50), list_get uses a 2-byte big-endian count because a list can hold up to 1000 returned entries.