{"id":13760058,"url":"https://github.com/commonprefix/kevlar","last_synced_at":"2025-05-10T10:31:15.143Z","repository":{"id":59795025,"uuid":"536835353","full_name":"commonprefix/kevlar","owner":"commonprefix","description":"Light client-based RPC Proxy for PoS Ethereum","archived":false,"fork":false,"pushed_at":"2024-12-03T10:22:05.000Z","size":1720,"stargazers_count":268,"open_issues_count":5,"forks_count":26,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-05-05T16:13:58.504Z","etag":null,"topics":["blockchain","ethereum","lightclient","optimistic","proof-of-stake","superlight","sync-client","sync-committee"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/commonprefix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-15T02:30:38.000Z","updated_at":"2025-05-03T16:40:30.000Z","dependencies_parsed_at":"2023-02-09T20:15:16.584Z","dependency_job_id":"8f6d4605-bbf6-44e6-ab36-8f4a589aecb2","html_url":"https://github.com/commonprefix/kevlar","commit_stats":{"total_commits":115,"total_committers":8,"mean_commits":14.375,"dds":"0.16521739130434787","last_synced_commit":"9c7b36064d52a6158736518cdb1b7fb737a843c7"},"previous_names":["shresthagrawal/kevlar","shresthagrawal/pos-eth-lightclients","lightclients/kevlar"],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commonprefix%2Fkevlar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commonprefix%2Fkevlar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commonprefix%2Fkevlar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commonprefix%2Fkevlar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/commonprefix","download_url":"https://codeload.github.com/commonprefix/kevlar/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253124213,"owners_count":21857612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","ethereum","lightclient","optimistic","proof-of-stake","superlight","sync-client","sync-committee"],"created_at":"2024-08-03T13:01:02.812Z","updated_at":"2025-05-10T10:31:14.536Z","avatar_url":"https://github.com/commonprefix.png","language":"TypeScript","funding_links":[],"categories":["dApps directory"],"sub_categories":["Wallet Security Tools"],"readme":"# Kevlar\n\n[![Join the chat at https://discord.gg/ePV3prSPGW](https://img.shields.io/badge/chat-on%20discord-blue.svg)](https://discord.gg/ePV3prSPGW)\n![KevlarArchitecture](./kevlar-architecture.png)\n\nKevlar 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 server 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: the **Light Sync** based on the light client sync protocol specified by the Ethereum Specification and the **Optimistic Sync** (which is 100x faster than Light Sync) based on construction from the research paper [Proofs of Proof of Stake in Sublinear Complexity](https://arxiv.org/abs/2209.08673).\n\n### Start the RPC Proxy\n\n```bash\nnpm i -g @lightclients/kevlar\nkevlar\n```\n\nThe RPC is now available at `http://localhost:8546`. Add this local network to MetaMask.\n\n```bash\nkevlar --help\nOptions:\n      --help        Show help                                          [boolean]\n      --version     Show version number                                [boolean]\n  -n, --network     chain id to start the proxy on (1, 11155111)        [choices: 1, 11155111]\n  -c, --client      type of the client          [choices: \"light\", \"optimistic\"]\n  -o, --provers     comma separated prover urls\n  -u, --rpc         rpc url to proxy\n  -p, --port        port to start the proxy                             [number]\n  -a, --beacon-api  beacon chain api URL\n```\n\n### Build Locally\n\nClone the repo and perform the following commands\n\n```bash\nyarn install\nyarn build\n```\n\n### Run Server\n\n```bash\ncp .env.example .env\nyarn start\n```\n\n### Deploy Server to Heroku\n\n```bash\nbash src/provers/light-optimistic/deploy-heroku.sh \u003cheroku-app-name\u003e\n```\n\n### Deploy to Docker\n\n```bash\ndocker run -p 8546:8546 --name kevlar shresthagrawal/kevlar\ncurl -X POST --header \"Content-type: application/json\" --data '{\"jsonrpc\":\"2.0\",\"method\":\"eth_blockNumber\",\"params\":[],\"id\":1}' http://localhost:8546/\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommonprefix%2Fkevlar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommonprefix%2Fkevlar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommonprefix%2Fkevlar/lists"}