A ProofsFor ease of exposition, we report the statement in each Lemma and Proposition from the main text (in italics) before each proof. We start with a couple of preparatory results.Claim 1 In an optimal contract, we have y(z 1 ) = 0; and if h (z 1 ) > 0, then it solvesIn addition, if for some z we have y (z) = 0, then agent z gets the same allocation as type z 1 = 0.Proof. Since z 1 = 0, we must have y(z 1 ) = 0. From the first order conditions of agent z 1 = 0 with respect to c and h, we have v (h(z 1 )) ≤ ω. Since v (0) = 0 and ω > 0, we have h(z 1 ) > 0. If v (1) ≤ ω, utility can be increased strictly by increasing h whenever h(z 1 ) < 1; Hence, it must be that h(z 1 ) = 1. Consider now type z > 0 declaring σ = z 1 . When y(σ) = 0, all agents have the same preferences over c and h and get the same utility when declaring σ = z 1 . Thus, by DIC, agent z must receive at least the same utility as agent z 1 . If y(z) = 0, UIC implies the reverse inequality, so that the utility between z and z 1 must be the same.Since agent z 1 's problem is strictly concave, the allocation designed for z 1 minimizes the budget cost. Hence, we should use for all z with y(z) = 0 the allocation designed for z 1 .Claim 2 Let λ be the multiplier associated to the budget constraint (1). We haveProof. This result is shown by a simple variational exercise. Since we can increase c(z i ) by the same amount for all i without violating the incentive constraints, it must be that ∑ N i=1 π(z i )φ(z i ) ≤ λ. Since we can also decrease all c(z i ) uniformly in an incentive compatible way, it must be that ∑ N i=1 π(z i )φ(z i ) ≥ λ. Combining the two we get the desired equality.