DRD List Remove — Group 16, Code 145
Removes entries from the caller’s white/black list, in batches of one or more 5-byte listed-user identifiers. Removal works for both entry types — the type byte is not needed to remove.
Quick reference
| Command Group | 16 (DRD) |
| Command Code | 145 (0x91) |
| Server function | cmd_drd_list_remove in cmd_drd.c |
| Request body | challenge(16) + owner DN(1) SN(4) AN(16) + N × entry(5) + terminator(2). Minimum 44 bytes (N = 1). |
| Authentication | Owner AN — only the list owner can modify it |
| Success response | Status 250, no payload |
| Semantics | Idempotent: removing an entry that is not on the list is not an error |
Request body
Identical to list_set except each entry is 5 bytes — the listed user’s denomination and serial number with no type byte. Diagram shows a single-entry request (44 bytes).
Request body layout, N entries
+-------------------+------------------------------+------------------------+------------+
| challenge/CRC | owner identity + auth | N x 5-byte entries | terminator |
| 16 bytes | DN(1) SN(4) AN(16) | LDN(1) LSN(4) | 2 bytes |
+-------------------+------------------------------+------------------------+------------+
| body[0..15] | body[16..36] | body[37..37+5N-1] | 3E 3E |
+-------------------+------------------------------+------------------------+------------+
total = 39 + 5N bytes
Response
Status-only. 250 means the batch was processed; entries that existed were removed and entries that did not exist were skipped silently. This makes retries across all 25 RAIDAs safe.
Status codes
| Decimal | Hex | Symbol | Meaning |
|---|---|---|---|
| 250 | 0xFA | STATUS_SUCCESS | Batch processed. |
| 16 | 0x10 | ERROR_INVALID_PACKET_LENGTH | Body under 44 bytes. |
| 39 | 0x27 | ERROR_COINS_NOT_DIV | Entry region is not a multiple of 5 bytes. |
| 40 | 0x28 | ERROR_INVALID_SN_OR_DENOMINATION | Owner denomination/serial is not a coin this RAIDA holds. |
| 200 | 0xC8 | ERROR_INVALID_AN | Owner AN mismatch. Nothing removed. |
| 252 | 0xFC | ERROR_INTERNAL | Database failure. |
Common mistakes
Including the type byte
Remove entries are 5 bytes, not 6. Appending the type byte shifts every following entry and usually triggers ERROR_COINS_NOT_DIV.
Treating a missing entry as failure
Unlike single-entry commands, batch remove does not report which entries actually existed. Read back with list_get if you need to verify the final list state.