diff --git a/Pipfile b/Pipfile
index 2ab052f1dac0fd87492f3080c111c25b45bd6616..f779e7286eeae7628fcff358affd95068088980e 100644
--- a/Pipfile
+++ b/Pipfile
@@ -11,7 +11,7 @@ toolz = "*"
 maya = "*"
 ujson = "*"
 prettytable = "*"
-jsonrpcserver = "*"
+jsonrpcserver = "4.1.3+8f3437a"
 aiohttp = "*"
 aiopg = "*"
 "psycopg2-binary" = "*"
diff --git a/hive/server/serve.py b/hive/server/serve.py
index ad75d2c0d6634e08e762cef19a314e23b79bb609..b37a25102647bd0d4fb106a2d311aee92cb953d6 100644
--- a/hive/server/serve.py
+++ b/hive/server/serve.py
@@ -11,6 +11,8 @@ from aiohttp import web
 from jsonrpcserver.methods import Methods
 from jsonrpcserver import async_dispatch as dispatch
 
+import simplejson
+
 from hive.server.condenser_api import methods as condenser_api
 from hive.server.condenser_api.tags import get_trending_tags as condenser_api_get_trending_tags
 from hive.server.condenser_api.get_state import get_state as condenser_api_get_state
@@ -35,6 +37,12 @@ from hive.server.db import Db
 
 # pylint: disable=too-many-lines
 
+def decimal_serialize(obj):
+    return simplejson.dumps(obj=obj, use_decimal=True)
+
+def decimal_deserialize(s):
+    return simplejson.loads(s=s, use_decimal=True)
+
 async def db_head_state(context):
     """Status/health check."""
     db = context['db']
@@ -268,10 +276,10 @@ def run_server(conf):
         """Handles all hive jsonrpc API requests."""
         request = await request.text()
         # debug=True refs https://github.com/bcb/jsonrpcserver/issues/71
-        response = await dispatch(request, methods=methods, debug=True, context=app)
+        response = await dispatch(request, methods=methods, debug=True, context=app, serialize=decimal_serialize, deserialize=decimal_deserialize)
         if response.wanted:
             headers = {'Access-Control-Allow-Origin': '*'}
-            return web.json_response(response.deserialized(), status=200, headers=headers)
+            return web.json_response(response.deserialized(), status=200, headers=headers, dumps=decimal_serialize)
         return web.Response()
 
     if conf.get('sync_to_s3'):
diff --git a/requirements.txt b/requirements.txt
index a0c013dbdfa672b2be95af0d7ad8644b61fa1e14..1234f7b2855f4621b35046ecd2ab119ac95b6a61 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -14,7 +14,8 @@ funcy==1.14
 -e git+git@gitlab.syncad.com:hive/hivemind.git@ba54fc07c08c2fd08b37475c9a15d61c64e380c9#egg=hivemind
 humanize==2.4.0
 idna==2.9
-jsonrpcserver==4.0.1
+-e git+https://github.com/bcb/jsonrpcserver.git@8f3437a19b6d1a8f600ee2c9b112116c85f17827#egg=jsonrpcserver-4.1.3+8f3437a
+simplejson
 jsonschema==2.6.0
 Mako==1.1.2
 Markdown==2.4.1
diff --git a/setup.py b/setup.py
index c44312a9490cd7d1406881cc441562accdf34f5a..d3cf416ff8c6f066227c12efd4fce555ce8589d8 100644
--- a/setup.py
+++ b/setup.py
@@ -26,10 +26,14 @@ setup(
     packages=find_packages(exclude=['scripts']),
     setup_requires=['pytest-runner', 'setuptools-git-version'],
     tests_require=tests_require,
+    dependency_links=[
+      'https://github.com/bcb/jsonrpcserver/tarball/8f3437a19b6d1a8f600ee2c9b112116c85f17827#egg=jsonrpcserver-4.1.3+8f3437a'
+    ],
     install_requires=[
         #'aiopg==0.16.0',
         'aiopg @ https://github.com/aio-libs/aiopg/tarball/862fff97e4ae465333451a4af2a838bfaa3dd0bc',
-        'jsonrpcserver==4.0.1',
+        'jsonrpcserver @ https://github.com/bcb/jsonrpcserver/tarball/8f3437a19b6d1a8f600ee2c9b112116c85f17827#egg=jsonrpcserver'
+        'simplejson',
         'aiohttp',
         'certifi',
         'sqlalchemy',