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 Group16 (DRD)
Command Code143 (0x8F)
Server functioncmd_drd_delete_user in cmd_drd.c
Request bodyExactly 39 bytes: challenge(16) + DN(1) + SN(4) + AN(16) + terminator(2)
AuthenticationOwner AN, verified against the coin database
Success responseStatus 250, no payload
WarningRe-posting after delete starts a fresh created_at — account age is lost

Request body (39 bytes)

Challenge random (12 bytes, part 1 of 2) 0 7 Challenge random (part 2) 8 11 Challenge CRC32 (BE) 12 15 DN 16 Serial Number (BE) 17 20 AN (part 1 of 3) 21 23 Authenticity Number (part 2 of 3) 24 31 AN (part 3 of 3) 32 36 3E 3E (term) 37 38
Body offsetSizeFieldDescription
0–1516Challenge12 random bytes + big-endian CRC32 of them.
161DenominationCaller’s coin denomination.
17–204Serial NumberCaller’s coin serial number, big-endian.
21–3616Authenticity NumberCaller’s AN for this RAIDA. Mismatch → ERROR_INVALID_AN, nothing deleted.
37–382TerminatorFixed 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

DecimalHexSymbolMeaning
2500xFASTATUS_SUCCESSRecord deleted.
1930xC1ERROR_NO_ENTRYNo record existed for this coin.
160x10ERROR_INVALID_PACKET_LENGTHBody is not exactly 39 bytes.
400x28ERROR_INVALID_SN_OR_DENOMINATIONDenomination/serial is not a coin this RAIDA holds.
2000xC8ERROR_INVALID_ANAN does not match; nothing deleted.
2520xFCERROR_INTERNALDatabase 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.