---
# System prepended metadata

title: Final Dev Update
tags: [execution-api, REST, JSON, '#ethereum', '#rpc']

---

This is final dev update **concluding developments** of `ethRPCtoREST` **occurred during Fellowship period**.
Goal was to create a simplified REST API interface for interacting with Execution layer APIs of Ethereum. Or simply, a REST Wrapper around JSON-RPC APIs. 
It started with deciding a rough structure through [project proposal](https://github.com/eth-protocol-fellows/cohort-four/blob/master/projects/REST-wrapper.md).

There were mainly two sub-missions under this proposal. 
One was **specing out all APIs** in REST format and another was **implementing them**.
I started with OPENAPI specifications on a `.yaml` file and after specing out 10 of the methods I moved on with implementation. After some time, there were multiple methods and OPENAPI specs got lagged. 
Jordan had also shown intent for working on REST wrappers and he took the responsibility of docs generation.

Till now, in total there are 17 REST endpoints with around 18 execution layer methods wrapped. Their relation isn't one-to-one. In some cases, one REST endpoint acts as an umbrella over multiple methods, automatically figuring out appropriate methods depending upon input. In other cases, multiple endpoints are wrapped around single method with default values as input parameters. 

for example: 
- `/eth/block/:identifier` wraps `eth_getBlockByNumber` and `eth_getBlockByHash` both while
- `/eth/balance/:address` & `/eth/balance/:address/:identifier` wrap around single method `eth_getBalance` with `latest` as block number to be balance checked at.

After project proposal, a new repository [`ethRPCtoREST`](https://github.com/amit0617/ethRPCtoREST), a markdown for [weekly development updates](https://hackmd.io/G9pCMf4aRHCtt2PjHR-N7A), [proposal presentation slides](https://drive.google.com/file/d/1RoFP3nbU8xhzfa7nP6B5SioDfrzaMao-/view?usp=sharing) & [EPF Day Presentation slides upto 14th slide.](https://docs.google.com/presentation/d/143BqE-tjYD8ZfKp98Fi598ITvoSdr2gakmLEQfdrfRU/edit?usp=sharing) were created during fellowship period.

Apart from that I found some inconsistencies in documented specs of execution APIs sitting unnoticed from such a long time, [one of them is currently in review](https://github.com/ethereum/ethereum-org-website/pull/11673).

- Overall, I had targeted for 20 methods comprising of Gossip, State and History methods. I reached quite close to intended goal. 
- Post EPF, I intend to merge documentations and implementation with Jordan. Also, release another version of `ethRPCtoREST` with all of 20 methods supported. 
- Initially, REST wrapper was pictured to be just a REST interface server with responses identical to RPC APIs. With time, in discussion with our mentor(lightclient) it was finally decided that responses are also desired to be simplified. So many of them have simplified responses and some methods still need that.

I am overall grateful for such a great experience through Ethereum protocol Fellowship. I had started as a permissionles contributor and later got accepted as official fellow. I ended up learning an entirely new language(Golang) which I was intending to learn from such a long time but haven't been able to find out time or say an excuse or purpose for learning it. I am thankful to JoshD and Mario for driving the whole program with amazing excitement and energy. I am proudful for being able to make substantial contribution to ethereum ecosystem. Thanks, to our mentor - lightclient who supported and suggested changes as required on my small updates and proposals through out this period, in our telegram group. Also, can't miss to thank all those office hours guests that were inspirational for exploring other parts of ethereum ecosystem.