PreferencesKad.dat file

From AMule Project FAQ
Jump to: navigation, search


Name: preferencesKad.dat

Location: ~/.aMule/


This file stores the IP and Kademlia ClientID.


The file format is as follows:

  • IP: Stores the [client]]'s IP (4 bytes, LSB first)
  • Deprecated field: This field is no more used, so it's filled with 0s (2 bytes)
  • ClientID: The client's ClientID (16 bytes)
  • End of tags signal: Old eMule clients expected more info to be read on this file. To remain compatible with those clients, this field is set to 0 (1 byte)

Reading and writing the ClientID is somewhat tricky. It is stored as four 32bit little-endian integers, which themselves represent the 128bit value in big-endian order. See the example below.


The following is a hex dump of an hypothetic preferencesKad.dat file:

01 40 52 5B 00 00 B4 F1 52 14 18 17 9A 80 44 57 29 8A B9 3A 2B 6F 00

In the above example, the following data can be seen:

  • IP: (In hex: 0x5B524001)
  • Deprecated field: 0 (In hex: 0x0000)
  • ClientID: 1452F1B4809A17188A2957446F2B3AB9
  • End of tags signal: 0 (In hex: 0x00)


aMule ignores the End of tags signal when reading this file, so it is optional to use it. Anyway, aMule does write it to keep compatibility with old eMule clients.