diff --git a/routes/shepherd.js b/routes/shepherd.js
index d71927d..7b43e41 100644
--- a/routes/shepherd.js
+++ b/routes/shepherd.js
@@ -99,6 +99,67 @@ shepherd.appConfig = {
   }
 };
 
+shepherd.get('/coinslist', function(req, res, next) {
+  if (fs.existsSync(iguanaDir + '/shepherd/coinslist.json')) {
+    fs.readFile(iguanaDir + '/shepherd/coinslist.json', 'utf8', function (err, data) {
+      if (err) {
+        const errorObj = {
+          'msg': 'error',
+          'result': err
+        };
+
+        res.end(JSON.stringify(errorObj));
+      } else {
+        const successObj = {
+          'msg': 'success',
+          'result': data ? JSON.parse(data) : ''
+        };
+
+        res.end(JSON.stringify(successObj));
+      }
+    });
+  } else {
+    const errorObj = {
+      'msg': 'error',
+      'result': 'coin list doesn\'t exist'
+    };
+
+    res.end(JSON.stringify(errorObj));
+  }
+});
+
+shepherd.post('/coinslist', function(req, res, next) {
+  const _payload = req.body.payload;
+
+  if (!_payload) {
+    const errorObj = {
+      'msg': 'error',
+      'result': 'no payload provided'
+    };
+
+    res.end(JSON.stringify(errorObj));
+  } else {
+    fs.writeFile(cache.iguanaDir + '/shepherd/coinslist.json', JSON.stringify(_payload), function (err) {
+      if (err) {
+        const errorObj = {
+          'msg': 'error',
+          'result': err
+        };
+
+        res.end(JSON.stringify(errorObj));
+      } else {
+        const successObj = {
+          'msg': 'success',
+          'result': 'done'
+        };
+
+        res.end(JSON.stringify(successObj));
+      }
+    });
+  }
+});
+
+// TODO: check if komodod is running
 shepherd.quitKomodod = function(chain) {
   // exit komodod gracefully
   console.log('exec ' + komodocliBin + (chain ? ' ac_name=' + chain : '') + ' stop');