diff --git a/ethutil/list.go b/ethutil/list.go
index 0aa657a147494092a82f80d24a9d6709ee4a5ae9..9db96cf1840cf5cd0833d5074974928752518c7f 100644
--- a/ethutil/list.go
+++ b/ethutil/list.go
@@ -1,6 +1,9 @@
 package ethutil
 
-import "reflect"
+import (
+	"encoding/json"
+	"reflect"
+)
 
 // The list type is an anonymous slice handler which can be used
 // for containing any slice type to use in an environment which
@@ -44,3 +47,15 @@ func (self *List) Append(v interface{}) {
 func (self *List) Interface() interface{} {
 	return self.list.Interface()
 }
+
+// For JavaScript <3
+func (self *List) ToJSON() string {
+	var list []interface{}
+	for i := 0; i < self.Length; i++ {
+		list = append(list, self.Get(i))
+	}
+
+	data, _ := json.Marshal(list)
+
+	return string(data)
+}