evstack / evstack/ev-reth

Explorer integration: Blockscout and Atlas support for 0x76 transactions

Open
#130 0 comments 0 reactions 1 assignee Claimed by @pthmas View on GitHub
Dominant language
Rust
Stars
8
Forks
9
Avg merge
2d 13h
Merged PRs (30d)
6

Description

## Summary

Integrate block explorer support for ev-reth chains, targeting both Blockscout (open-source, self-hosted) and Atlas (in-house explorer). Both need custom rendering for Evolve-specific transaction types (0x76 batch calls, fee sponsorship).

## Motivation

Every production chain needs a block explorer. ev-reth's custom transaction type (0x76) with batch calls and fee sponsorship won't render correctly in stock explorers -- it will show as an unknown transaction type with opaque calldata. Both Blockscout (for self-hosted/community deployments) and Atlas (for first-party deployments) need to understand Evolve primitives.

## Scope

### 1. RPC layer (shared by both explorers)

The RPC responses from ev-reth must expose 0x76 fields in a way explorers can consume:

- `eth_getTransactionByHash` must include `feePayer` (address), `calls` (array of {to, value, input}), and `txType: "0x76"`
- `eth_getTransactionReceipt` must indicate effective gas payer and per-call log attribution
- This is the foundation -- get the RPC right and both explorers benefit

### 2. Blockscout integration
- Document archive node configuration for ev-reth
- Docker compose setup for Blockscout + ev-reth
- Verify standard Ethereum transactions (types 0, 1, 2, 3) render correctly
- Verify RPC compatibility (Blockscout's required endpoints vs ev-reth's exposed endpoints)
- Custom 0x76 rendering via Blockscout's plugin/extension system:
- **Batch calls**: Display individual calls within a 0x76 transaction instead of opaque calldata
- **Fee sponsorship**: Show `feePayer` address, distinguish executor vs sponsor
- **Transaction type label**: "EvNode Transaction" instead of "Unknown Type"

### 3. Atlas integration
- Ensure Atlas consumes the extended RPC fields for 0x76 transactions
- Native rendering of batch calls, sponsorship, and Evolve-specific metadata
- Atlas can go deeper than Blockscout since it's in-house: lane attribution, per-call gas breakdown, sponsor history, etc.

### 4. ev-node considerations
- Explorers need to handle ev-reth's block structure (no ommers, modified consensus fields)
- Block finality semantics: ev-node-derived finality vs explorer default assumptions
- If the chain uses ev-node for DA, explorers should ideally link to DA layer block references

## Prior art

- [Blockscout OP Stack Setup](https://docs.optimism.io/chain-operators/tools/explorer)
- [Blockscout GitHub](https://github.com/blockscout/blockscout) -- `production-optimism` branch for OP Stack
- [Blockscout Custom Extensions](https://docs.blockscout.com/)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.