President Pranab Mukherjee has approved a giant programme to provide subsidised food to two-thirds of the population of India.
Under the new law approved by the cabinet on Wednesday, 5kg of cheap grain is to be provided every month to nearly 800 million people.
The National Food Security Bill will cost 1.3 trillion rupees ($US23.9 billion) per year. It was an election promise made by the ruling Congress party.
Critics say the plan is a political move to win votes and will drain India's finances. Supporters say it will help reduce poverty.
The BBC reports the bill proposes to provide 1kg of rice at three rupees (six US cents), wheat at two rupees and millet at one rupee.
The measure will apply to 75% of Indians living in rural areas and 50% of the urban population.