Since Diamond and Dybvig (1983), banks have been viewed as inherently fragile. We challenge this view in a general mechanism design framework. Our approach allows for flexibility in the design of banking mechanisms while maintaining limited commitment of the intermediary to future mechanisms. We find that the unique equilibrium outcome is efficient. Consequently, runs cannot occur in equilibrium. Our analysis points to the ultimate sources of fragility: banks are fragile if they cannot collect and optimally respond to useful information during a run, and not because they engage in maturity transformation. We link our banking mechanisms to recent technological advances surrounding ‘smart contracts,’ which enrich the contracting space and can be used to eliminate financial fragility.