I recently created an ethereum account using metamask and registered a public/private eos key pair on it. I bought some eos on an exchange and i am not sure which address to send my eos to. Do i send it to the contract address or ethereum address of my account?
You need to send the tokens to the account in which you want them and where you can access them, so it should be an account to which you have the password or the private key.
Note that different wallets do recognize some tokens by default, but not all, of course. If your wallet does not recognize the EOS token, you should add the token to the wallet before you transfer any tokens. For this you need the contract address of the token.