This document proposes and describes Smartocracy, a social software system for collective decision making. Smartocracy uses social networks to represent relationships of trust between individuals and connections between individuals and potential solutions to problems. It employs various algorithms to aggregate individual votes on solutions into a collective ranking or decision. The key networks and algorithms described are the trust-based social network, vote-based decision network, direct democracy algorithm, dynamically distributed democracy algorithm, and proxy vote algorithm. The document concludes by discussing Smartocracy's application of these concepts and algorithms to its own system development decisions.