11# helios-verifiable-api
22
3- ## Usage
3+ A JSON REST API for Ethereum Execution Layer with verifiable responses as a first-class feature.
4+
5+ It wraps and replaces [ Ethereum's execution JSON-RPC] ( https://ethereum.org/en/developers/docs/apis/json-rpc/ ) .
6+
7+ ## API Spec
8+
9+ [ openapi.yaml] ( https://github.com/a16z/helios/blob/master/verifiable-api/server/openapi.yaml )
10+
11+ ## Server Usage
412
513``` bash
614$ cargo run -- --help
@@ -28,22 +36,30 @@ Options:
2836 -h, --help Print help
2937```
3038
31- #### Ethereum
39+ ### Examples
40+
41+ **Ethereum**
3242
3343```bash
3444$ cargo run -- ethereum --execution-rpc https://ethereum-rpc.publicnode.com
3545```
3646
37- #### OP Stack (E.g. Base)
47+ ** OP Stack (E.g. Base)**
3848
3949```bash
4050$ cargo run -- opstack --execution-rpc https://base-rpc.publicnode.com
4151```
4252
53+ ## Client Usage
54+
55+ See [helios-verifiable-api-client](verifiable-api/client) crate.
56+
4357## JSON-RPC to REST API map
4458
4559### Verifiable endpoints
4660
61+ Below is a map of RPC methods to Verifiable-API endpoints that are augmented with relevant proofs for verifiability.
62+
4763| Ethereum JSON-RPC Method | Helios Verifiable API Endpoint |
4864|--------------------------------|-----------------------------------------------------------------------------------------|
4965| `eth_getProof` | `GET /eth/v1/proof/account/{address}?block={}` |
@@ -55,11 +71,14 @@ $ cargo run -- opstack --execution-rpc https://base-rpc.publicnode.com
5571| `eth_getLogs` | `GET /eth/v1/proof/logs?fromBlock={}&toBlock={}&blockHash={}&address={}&topic0={}` |
5672| `eth_getFilterLogs` | `GET /eth/v1/proof/filterLogs/{filter_id}` |
5773| `eth_getFilterChanges` | `GET /eth/v1/proof/filterChanges/{filter_id}` |
58- | `eth_createAccessList` | `POST /eth/v1/proof/createAccessList` |
74+ | `eth_createAccessList` | `POST /eth/v1/proof/createExtendedAccessList` |
5975
6076
6177### Proxy endpoints
6278
79+ Below is a map of RPC methods to Verifiable-API endpoints that cannot be augmented with proofs but still supported
80+ so a client only needs to consume a single data source.
81+
6382| Ethereum JSON-RPC Method | Helios Verifiable API Endpoint |
6483|----------------------------------|---------------------------------------------|
6584| `eth_chainId` | `GET /eth/v1/chainId` |
0 commit comments