Place potatoes and carrots into a large pot and cover with salted water; bring to a boil. Reduce heat to medium-low and simmer until soft but not mushy, 15 to 20 minutes. Drain and grate the potatoes and carrots.
Place eggs in a saucepan and cover with water. Bring to a boil, remove from heat, and let eggs stand in hot water for 15 minutes. Remove eggs from hot water and cool under cold running water. Peel and halve each egg. Separate egg whites and yolks. Finely grate the egg whites and crumble the egg yolks.
Place onion in a bowl and cover with boiling water. Place a plate on top and soak to remove some of the bitterness of the onion, about 5 minutes. Drain.
Remove any bones from salmon, transfer salmon to a bowl, and mash with a fork. Spread an even layer of salmon onto a plate.
Sprinkle onion in an even layer over salmon; top with a layer grated egg whites. Spread a thin layer of mayonnaise over the egg whites. Sprinkle carrot over egg white layer; top with another layer of mayonnaise.
Top carrot layer with grated potato and a final thin layer of mayonnaise. Finish with a layer of crumbled egg yolks.