They do earn pay; "Direct-entry Midshipman Candidates will receive approximately $1,087.80 a month* (before taxes, BAF and Uniform deductions). "
There are other fees taken out to cover other battalion activities like; trip to the Army/Navy game or the stay at the USNA. These fees are also...