In Driftveil, there is a lady who will give you one Heart Scale a day if one of your Pokèmon has the move she wants to see. Her house on on the far left, just above the Driftveil Market.
Chat with our AI personalities
one way to get a heart scale in pokemon black is to go to Driftveil city. Use fly to get there and then go left from the pokemon center, there a girl will ask you to show her a pokemon that knows a certain move. Find a pokemon that knows the move and in return she'll give you a heart scale.
you have to use hm rock smash on rocks to find them.
There's a man in Fallabur town who will re-teach a Pokemon a move for a heart scale. But you must find a heart scale, they are in several places on the map but are mostly in or near water.
Heart Scales can be purchased in the Pokeathlon shop for 1000P
Heart scales are only in Pokemon emerald, ruby and sapphire but you can get one if you trade a heart scale from ruby or emerald or sapphire to leafgreen then take it but it will not do anything in the game.