DRD Delete User — Group 16, Code 143
Removes the caller’s own directory record. AN-authenticated: only the coin owner can delete their record. White/black list entries owned by the user are not deleted by this command.
Quick reference
| Command Group | 16 (DRD) |
| Command Code | 143 (0x8F) |
| Server function | cmd_drd_delete_user in cmd_drd.c |
| Request body | Exactly 39 bytes: challenge(16) + DN(1) + SN(4) + AN(16) + terminator(2) |
| Authentication | Owner AN, verified against the coin database |
| Success response | Status 250, no payload |
| Warning | Re-posting after delete starts a fresh created_at — account age is lost |
Request body (39 bytes)
| Body offset | Size | Field | Description |
|---|---|---|---|
| 0–15 | 16 | Challenge | 12 random bytes + big-endian CRC32 of them. |
| 16 | 1 | Denomination | Caller’s coin denomination. |
| 17–20 | 4 | Serial Number | Caller’s coin serial number, big-endian. |
| 21–36 | 16 | Authenticity Number | Caller’s AN for this RAIDA. Mismatch → ERROR_INVALID_AN, nothing deleted. |
| 37–38 | 2 | Terminator | Fixed 3E 3E. The body must be exactly 39 bytes. |
Response
Status-only. 250 means the record existed and was deleted on this RAIDA. 193 (ERROR_NO_ENTRY) means authentication succeeded but there was no record to delete — harmless when retrying a partially completed delete across the 25 servers.
Status codes
| Decimal | Hex | Symbol | Meaning |
|---|---|---|---|
| 250 | 0xFA | STATUS_SUCCESS | Record deleted. |
| 193 | 0xC1 | ERROR_NO_ENTRY | No record existed for this coin. |
| 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 does not match; nothing deleted. |
| 252 | 0xFC | ERROR_INTERNAL | Database failure. |
Common mistakes
Expecting the white/black list to vanish too
delete_user removes only the public directory record. List entries owned by the coin remain until removed with list_remove.
Deleting to “edit” a record
Use post_user to change fields — it preserves created_at. Delete + re-post resets the account age that other users rely on as an anti-scam signal.