diff --git a/ethutil/common.go b/ethutil/common.go
index 771dfc723c531eab02e123f90357b3c040310884..c7973eb929ce11f36c4ae4cf9917f98737a39da5 100644
--- a/ethutil/common.go
+++ b/ethutil/common.go
@@ -7,13 +7,15 @@ import (
 
 // The different number of units
 var (
-	Ether   = BigPow(10, 18)
-	Finney  = BigPow(10, 15)
-	Szabo   = BigPow(10, 12)
-	Shannon = BigPow(10, 9)
-	Babbage = BigPow(10, 6)
-	Ada     = BigPow(10, 3)
-	Wei     = big.NewInt(1)
+	Douglas  = BigPow(10, 42)
+	Einstein = BigPow(10, 21)
+	Ether    = BigPow(10, 18)
+	Finney   = BigPow(10, 15)
+	Szabo    = BigPow(10, 12)
+	Shannon  = BigPow(10, 9)
+	Babbage  = BigPow(10, 6)
+	Ada      = BigPow(10, 3)
+	Wei      = big.NewInt(1)
 )
 
 // Currency to string
@@ -21,6 +23,10 @@ var (
 // Returns a string representing a human readable format
 func CurrencyToString(num *big.Int) string {
 	switch {
+	case num.Cmp(Douglas) >= 0:
+		return fmt.Sprintf("%v Douglas", new(big.Int).Div(num, Douglas))
+	case num.Cmp(Einstein) >= 0:
+		return fmt.Sprintf("%v Einstein", new(big.Int).Div(num, Einstein))
 	case num.Cmp(Ether) >= 0:
 		return fmt.Sprintf("%v Ether", new(big.Int).Div(num, Ether))
 	case num.Cmp(Finney) >= 0: