hadv / hadv/ethaura

feat: Leverage EIP-7917 Based Preconfirmations for Sub-Second Transaction UX

Open
#164 0 comments 0 reactions 0 assignees View on GitHub
enhancement UI/UX
Dominant language
JavaScript
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Summary

Leverage [EIP-7917 (Deterministic Proposer Lookahead)](https://eips.ethereum.org/EIPS/eip-7917) and **based preconfirmations** to provide sub-second transaction confirmation feedback to EthAura users.

**Status Update (Dec 5, 2025):**
- ✅ **Fusaka upgrade live** on Ethereum mainnet (Dec 3, 2025)
- ✅ **EIP-7917 active** - proposer lookahead now available
- ✅ **Research complete** - mev-commit FAST RPC identified as recommended integration path

## Current UX Pain Points

1. **Gas estimation**: 2-5 seconds
2. **Bundler submission**: Variable wait
3. **Block inclusion**: 12+ seconds (best case)
4. **Finality**: 12.8 minutes for full economic finality

Users see a spinning "Pending" state for 12+ seconds minimum.

## Proposed Solution

With EIP-7917 + based preconfirmations:

1. **Preconfirmation**: 100-500ms (proposer commitment)
2. **Block inclusion**: 12 seconds (guaranteed by commitment)
3. **Finality**: 12.8 minutes (unchanged)

**Key insight**: Users get instant feedback that their transaction WILL be included, backed by economic guarantees (slashing via Symbiotic).

## Preconf Ecosystem Status (Dec 2025)

| Protocol | Status | Integration Path |
|----------|--------|------------------|
| **mev-commit (Primev)** | ✅ Live on Mainnet | FAST RPC for wallets ⭐ |
| **Commit-Boost** | ✅ Production Ready | Validator sidecar |
| **Bolt (Chainbound)** | 🔄 Development | Permissionless preconfs |
| Pimlico/Alchemy | ❓ Unknown | No public preconf API |

**Recommended Path**: Integrate with **Primev FAST RPC** - production-ready RPC endpoint designed for wallets/dApps.

## Transaction Flow with Preconfirmations

```mermaid
sequenceDiagram
participant User
participant EthAura
participant FAST_RPC as Primev FAST RPC
participant Proposer
participant Blockchain

User->>EthAura: Submit Transaction
EthAura->>FAST_RPC: Send UserOp
FAST_RPC->>Proposer: Request Preconf
Proposer-->>FAST_RPC: Signed Commitment
FAST_RPC-->>EthAura: Preconf Receipt (100-500ms)
EthAura-->>User: "Preconfirmed ✓"
Note over User: Instant feedback!
Proposer->>Blockchain: Include in Block
Blockchain-->>EthAura: Block Confirmation
EthAura-->>User: "Included ✓"
```

## Implementation Phases

### Phase 1: UI Preparation ✅ Can Start Now
**Issue**: #165
- Build tiered confirmation state UI components
- Add preconfirmation status indicators
- Prepare toast notifications for each state

### Phase 2: Bundler Abstraction ✅ Can Start Now
**Issue**: #166
- Abstract bundler client for preconf support
- Add preconf-aware method signatures
- Implement fallback to standard flow

### Phase 3: Preconfirmation Protocol Integration ✅ Ready (Fusaka Live!)
**Issue**: #167 - **Updated with research findings**
- Integrate with Primev FAST RPC (recommended)
- Alternative: Direct mev-commit integration
- Beacon chain proposer lookahead queries
- Provider signature verification

### Phase 4: Optimistic UI
**Issue**: #168
- Optimistic state updates on preconf receipt
- Rollback handling for broken preconfs (rare)
- Analytics and monitoring

## Draft API Design

```javascript
// Using Primev FAST RPC (simplest)
class PreconfBundlerClient extends BundlerClient {
constructor(bundlerUrl, fastRpcUrl) {
super(bundlerUrl)
this.fastRpcUrl = fastRpcUrl
}

async sendUserOperationWithPreconf(userOp) {
// Send via FAST RPC for automatic preconfirmation
const result = await this.fastRpcProvider.sendUserOperation(userOp)

return {
preconfirmed: true,
preconfHash: result.preconfHash,
targetBlock: result.targetBlock,
userOpHash: result.userOpHash
}
}
}
```

## Dependencies & Timeline

| Dependency | Status | Notes |
|------------|--------|-------|
| EIP-7917 | ✅ Live on Mainnet | Fusaka deployed Dec 3, 2025 |
| Preconf protocols | ✅ Available | mev-commit FAST RPC ready |
| Bundler support | ⏳ Via FAST RPC | Use Primev instead of waiting for Pimlico/Alchemy |

## Next Steps

1. ✅ Research complete (see #167 for details)
2. **Contact Primev** for FAST RPC access
3. **Start Phase 1** - UI components can be built now
4. **Test FAST RPC** on testnet

## Resources

- [EIP-7917 Specification](https://eips.ethereum.org/EIPS/eip-7917)
- [Primev mev-commit Docs](https://docs.primev.xyz/)
- [Commit-Boost Docs](https://commit-boost.github.io/commit-boost-client/)
- [Based Preconfirmations - Vitalik](https://ethresear.ch/t/based-preconfirmations/17353)

## Sub-Issues

- #165 - Phase 1: UI Preparation
- #166 - Phase 2: Bundler Abstraction
- #167 - Phase 3: Protocol Integration (includes ecosystem research)
- #168 - Phase 4: Optimistic UI

## Labels
`enhancement` `ux` `preconfirmations` `eip-7917`

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.