I would like to know if its possible to Airdrop to all holders of a specific erc20 token.
Lets say i want to sent my etc token to all holders of the Monaco tokens:
If there is 1.000.000 MyTokens to devied:
Then someone that keeps 10% off all Monaco will get 100.000 of my Mytokens
Someone that keeps 0.01% off all Monaco will get 100 of Mytokens!
Is there an option to do this with a smart contract? And has it ever been done?
There is no need of a smart contract. You could simply take a snapshot of the balances at a specific block height and then issue a new token and distribute it to the adresses proportionally. This is a usual procedure. Most of legit crypto airdrops out there work this way. For example Stellar (XLM), OmiseGo (OMG) or Byteball (GBYTE) distributed tokens poportionally to address holding BTC/ETH tokens.