We introduce cluster algebras and identify a special but important subclass of cluster algebras. This class contains those from Riemann surfaces with (possibly empty) boundaries and marked points. The remarkable feature of these algebras is that they are equipped with bases having very nice properties.