Kevlar

Kevlar is a CLI tool to run a light-client based RPC proxy for PoS Ethereum. Kevlar can be used to make your MetaMask or any RPC-based wallet completely trustless!

Kevlar first syncs to the latest header of the beacon chain and then starts an RPC server. This local RPC can be added to MetaMask or any other RPC-based wallet. Every RPC call made by the wallet is now verified using Merkle inclusion proofs to the latest block header.

Currently Kevlar supports two kinds of sync methods:

  • Light Sync - based on the light client sync protocol specified by the Ethereum Specification
  • Optimistic Sync (which is 100x faster than light sync) - based on the construction from the research paper Proofs of Proof of Stake in Sublinear Complexity

Instructions for use

Install the app using NPM (can also use Yarn to install):

npm i -g @lightclients/kevlar
Yarn equivalent would be yarn global add @lightclients/kevlar

Then start it (with default options):

kevlar
Yes it really is that simple!

Once it is synced (only takes a few seconds) the proxied RPC is available at http://localhost:8546.  Add this local network to MetaMask. (Make sure it is always running whilst you are using MetaMask!)

By default, it uses the optimistic light client with predefined public RPC endpoints and provers. If you want to see advanced options you can try kevlar --help.

Provers

Optimistic clients require special provers. Provers are light clients themselves and are extremely cheap to maintain; anyone can set up and run their own. Provers can be run on free Heroku servers (github.com/shresthagrawal/kevlar#deploy-server-to-heroku).