Add tutorial for jsonrpc proxy app
diff --git a/tutorials/apps/index.md b/tutorials/apps/index.md
index 42b210f..0e737bf 100644
--- a/tutorials/apps/index.md
+++ b/tutorials/apps/index.md
@@ -37,4 +37,11 @@
 
 The `eth-faucet` application is an Ethereum faucet that runs alongside an Ethereum client. The faucet allows to distribute funds.
 
-[More](/tutorials/apps/eth-faucet)
\ No newline at end of file
+[More](/tutorials/apps/eth-faucet)
+
+# jsonrpc
+
+The `jsonrpc` application is a JSON-RPC proxy that can cache, filter, throttle, meter and authenticate requests to a JSON-RPC endpoint.
+
+[More](/tutorials/apps/jsonrpc)
+
diff --git a/tutorials/apps/jsonrpc.md b/tutorials/apps/jsonrpc.md
new file mode 100644
index 0000000..7a71cb7
--- /dev/null
+++ b/tutorials/apps/jsonrpc.md
@@ -0,0 +1,39 @@
+---
+layout: tutorial
+title: JSON-RPC proxy
+description: JSON-RPC proxy
+group: nav-right
+previous: index.md
+categories: [applications]
+---
+
+The `jsonrpc` application is a JSON-RPC proxy that can cache, filter, throttle, meter and authenticate requests to a JSON-RPC endpoint.
+
+The application is configured via a toml file, described below:
+
+## Examples
+
+### Proxy a JSON-RPC endpoint publicly
+
+You set up a node and want to proxy. You expose all JSON-RPC methods on your node but only want to expose the `eth_` namespace publicly, with HTTP Basic authentication:
+
+```toml
+endpointUrl="http://192.168.1.2:8545" # IP of your node
+allowedMethods=["eth_"]
+cacheEnabled=true
+cachedMethods=["eth_"]
+cacheStoragePath="/var/jsonrpccache" # Cache location
+```
+
+### Local development
+
+You have a local development and you're using a service such as Infura or Alchemy, but you want to work without calling the service constantly.
+
+```toml
+endpointUrl="https://example.com:8545/?token=mytoken" # service URL
+cacheEnabled=true
+cachedMethods=[""] # All methods are cached
+cacheStoragePath="/var/jsonrpccache" # Cache location
+allowedMethods=[""] # All methods are enabled
+```
+