Place the peanuts on a tray, then place in the oven to roast until golden.
For the dressing, mix the fish sauce, rice wine vinegar and 2 tablespoons of lime juice in a small bowl. Grate in the palm sugar, stirring, until completely dissolved (you might need to muddle some of the larger bits).
Peel and finely chop the garlic, deseed and finely chop the chilli, then add to the bowl. Taste to make sure the flavours are balanced: it should be zesty, sweet and fresh, with depth from the fish sauce.
Place the chicken in a deep pan, cover with water and bring to the boil. Reduce the heat and simmer for 10 to 15 minutes, or until cooked through.
Coarsely grate or cut the carrots into matchsticks, then halve, deseed and thinly slice the cucumber on an angle. Peel and finely grate or cut the mango into matchsticks, then pick and roughly chop the mint leaves.
Peel and cut the onion into fine wedges, trim and finely dice the spring onions, then halve the tomatoes.
Crush the roasted peanuts in a pestle and mortar.
Transfer the cooked chicken to a bowl of iced water to cool, then drain and shred the meat and place in a large bowl.
Add the chopped vegetables, beansprouts and beancurd (if using) to the bowl with the chicken and toss to combine.
Divide among serving plates and drizzle lightly with the dressing. Sprinkle over the peanuts, then tear over the coriander leaves and serve with finely sliced red chilli, if you like.