diff --git a/blockchain-rest-service/config.json b/blockchain-rest-service/default-config.json
similarity index 100%
rename from blockchain-rest-service/config.json
rename to blockchain-rest-service/default-config.json
diff --git a/blockchain-rest-service/package.json b/blockchain-rest-service/package.json
index 29561cad4458ac4a4a027ef031d8d35d94f77f70..ccd5a8aa575a4cc223f1413b0c26813ff0f01505 100644
--- a/blockchain-rest-service/package.json
+++ b/blockchain-rest-service/package.json
@@ -10,11 +10,12 @@
   "license": "ISC",
   "dependencies": {
     "body-parser": "1.18.2",
+    "change-case": "3.0.1",
     "ethers": "2.1.2",
     "express": "4.15.5",
     "http-status-codes": "^1.3.0",
     "morgan": "1.9.0",
-    "nconf": "0.8.5",
+    "nconf": "git+https://github.com/indexzero/nconf.git",
     "web3": "1.0.0-beta.22",
     "winston": "2.3.1"
   }
diff --git a/blockchain-rest-service/utils/config.js b/blockchain-rest-service/utils/config.js
index 59104fc9cc65aa1af3547e1ea5ea65e4408c3834..038ca58b4ffaab7b51f2e5e185e25a54dd5deb85 100644
--- a/blockchain-rest-service/utils/config.js
+++ b/blockchain-rest-service/utils/config.js
@@ -1,6 +1,26 @@
 const nconf = require('nconf');
+const changeCase = require('change-case');
 
-nconf.argv().env();
-nconf.file({ file: 'config.json' });
+const ENV_VARIABLES_PREFIX = 'PFR_APP_';
+
+function transformEnvVariable(keyValueObj) {
+    const { key, value } = keyValueObj;
+    const minKeyLength = ENV_VARIABLES_PREFIX.length + 1;
+    if (!key || !key.startsWith(ENV_VARIABLES_PREFIX) || key.length < minKeyLength) {
+        return false;
+    }
+
+    return {
+        key: changeCase.camelCase(key.slice(ENV_VARIABLES_PREFIX.length)),
+        value
+    };
+}
+
+nconf.argv().env({
+    transform: transformEnvVariable,
+    parseValues: true
+}).file({
+    file: 'default-config.json'
+});
 
 module.exports = nconf;