A method of detecting duplicate addresses in a mesh network, the method comprising: generating, by an end device (502, 510, 518), an address identifier (508, 516, 524; 802, 806, 810) that includes an address and one of time-based information associated with the end device or a random value generated by the end device (502, 510, 518) that is attached to a router device (504, 512, 520, 526) for communication in the mesh network, the address identifier (508, 516, 524; 802, 806, 810) being maintained by the router device (504, 512, 520, 526) as a tuple state (506, 514, 522, 602; 702; 804, 808, 812) of the end device (502, 510, 518), the time-based information including one or more of an attach time (Ta) when the end device attaches to the router device and a last transaction time (Tt) when the end device last communicates with the attached router device, and when including the random value the address identifier (508, 516, 524) further includes a lifetime duration that indicates how long the router device is to maintain the tuple state (506, 514, 522, 602; 702) of the end device; initiating an address query requesting that mesh network devices (102, 502 - 526) in the mesh network having a same address as the address of the end device (502, 510, 518) respond with a tuple state (506, 514, 522, 602; 702; 804, 808, 812) that corresponds to the same address; receiving the tuple state (506, 514, 522, 602; 702; 804, 808, 812) of a mesh network device (102, 502 - 526) having the same address in response to the address query; and detecting a duplicate address of the mesh network device (102, 502 - 526) based on the time-based information or based on the random value that is maintained as part of the tuple state (506, 514, 522, 602; 702; 804, 808, 812) of the mesh network device (102, 502 - 526), wherein initiating the address query, receiving the tuple state of the mesh network device, and detecting the duplicate address of the mesh network device are performed by one of the end device (502, 510, 518) or the router device (504, 512, 520, 526). generating, by an end device (502, 510, 518), an address identifier (508, 516, 524; 802, 806, 810) that includes an address and one of time-based information associated with the end device or a random value generated by the end device (502, 510, 518) that is attached to a router device (504, 512, 520, 526) for communication in the mesh network, the address identifier (508, 516, 524; 802, 806, 810) being maintained by the router device (504, 512, 520, 526) as a tuple state (506, 514, 522, 602; 702; 804, 808, 812) of the end device (502, 510, 518), the time-based information including one or more of an attach time (Ta) when the end device attaches to the router device and a last transaction time (Tt) when the end device last communicates with the attached router device, and when including the random value the address identifier (508, 516, 524) further includes a lifetime duration that indicates how long the router device is to maintain the tuple state (506, 514, 522, 602; 702) of the end device; initiating an address query requesting that mesh network devices (102, 502 - 526) in the mesh network having a same address as the address of the end device (502, 510, 518) respond with a tuple state (506, 514, 522, 602; 702; 804, 808, 812) that corresponds to the same address; receiving the tuple state (506, 514, 522, 602; 702; 804, 808, 812) of a mesh network device (102, 502 - 526) having the same address in response to the address query; and detecting a duplicate address of the mesh network device (102, 502 - 526) based on the time-based information or based on the random value that is maintained as part of the tuple state (506, 514, 522, 602; 702; 804, 808, 812) of the mesh network device (102, 502 - 526), wherein initiating the address query, receiving the tuple state of the mesh network device, and detecting the duplicate address of the mesh network device are performed by one of the end device (502, 510, 518) or the router device (504, 512, 520, 526).