Mechanism design problems optimize contract offerings from a principal to different types of agents who have private information about their demands for a product or a service. We study the implications of uncertainty in agents’ demands on the principal’s contracts. Specifically, we consider the setting where agents’ demands follow heterogeneous distributions and the principal offers a menu of contracts stipulating quantities and transfer payments for each demand distribution. We present analytical solutions for the special case when there are two distributions each taking two discrete values, as well as a method for deriving analytical solutions from numerical solutions. We describe one application of the model in carbon capture and storage systems to demonstrate various types of optimal solutions and to obtain managerial insights.