Conditions on a shared object type T are given that are both necessary and sufficient for wait-free n-process consensus to be solvable using objects of type T and registers. The conditions apply to two large classes of deterministic shared objects: read-modify-write objects [C. P. Kruskal, L. Rudolph, and M. Snir, ACM Trans. Prog. Lang. Syst., 10 (1988), pp. 579–601] and readable objects, which have operations that allow processes to read the state of the object. These classes include most objects that are used as the primitives of distributed systems. When the sequential specification of T is finite, the conditions may be checked in a finite amount of time to decide the question “Is the consensus number of T at least n?” The conditions are also used to provide a clear proof of the robustness of the consensus hierarchy for read-modify-write and readable objects. Key words. consensus, distributed computing, asynchronous, wait-free, shared memory, readmodify-write, readable, con...